Виртуализированные ядра процессора по сравнению с потоками

Я держу пари, что womble корректен и что Вам настроили сервер для принятия почты для domain.com. Лучший параметр отладки состоял бы в том, чтобы отправить вывод postconf-n здесь, а также фактический домен и имя хоста. Кроме того, выполненный mailq, чтобы видеть, находится ли почта все еще там в очереди. Если это не, включайте вывод "хвоста/var/log/maillog (или mail.log на Ubuntu)". Постфикс присваивает случайным образом сгенерированный идентификатор каждому сообщению, поскольку это проходит через систему, которая смотрит таким образом:

Aug  4 00:13:37 fjdx421 postfix/smtp[26029]: 930C317B539:

Это делает очень легким найти весь вывод журнала относительно электронного письма с

grep 930C317B539 /var/log/maillog

Это делает супер легким видеть точно, что система делает с сообщением:

[root@fjdx421 postfix]# grep 930C317B539 /var/log/maillog
Aug  4 00:13:37 fjdx421 postfix/smtpd[26361]: 930C317B539: client=unknown[an.ip.add.ress]
Aug  4 00:13:37 fjdx421 postfix/cleanup[26024]: 930C317B539: message-id=<122424845.1249362817685.JavaMail.SYSTEM@WEB55>
Aug  4 00:13:37 fjdx421 postfix/qmgr[9519]: 930C317B539: from=<java@testing.somedomain.com>, size=4189, nrcpt=1 (queue active)
Aug  5 00:13:37 fjdx421 postfix/smtp[26029]: 930C317B539: to=<npg_error@somedomain.com>, relay=momail.somedomain.cfx[another.ip.add.ress], delay=0, status=sent (250 2.6.0  <122424845.1249362817685.JavaMail.SYSTEM@WEB55> Queued mail for delivery)
Aug  4 00:13:37 fjdx421 postfix/qmgr[9519]: 930C317B539: removed

btw... Я люблю постфикс...

8
задан 25 April 2010 в 04:22
4 ответа

Определите самый низкий номер vCPUs, Ваши серверы должны выполнить свою функцию, не сверхвыделяйте их, или Вы могли легко замедлить свой VMs.

8
ответ дан 2 December 2019 в 22:47
  • 1
    Это походит на мудрый подход. Однако, I' m любопытный, как, выделяя VCPUs на поток, а не на базовое выполнение влияния. Но я видел некоторые очень плохие вещи, которые могут произойти от сверхвыделения и использования того же количества VCPUs, как в негиперпоточном хосте кажется обработке загрузки соответственно для гостей, таким образом, I' ll оставляют достаточно хорошо одними и планируют экспериментировать на непроизводственном поле когда-то. –  nedm 15 April 2010 в 22:45
  • 2
    +1, ответ также зависит от Вашей рабочей нагрузки. Для VMs, которые являются в большой степени Зависящими от ЦП, считайте их как взятие целого ядра для VMs, которые неактивны, или связанные IO считают их как взятие потока. Но в целом, всегда выделяйте так мало, как можно сойти с рук и you' ll избегают больших головных болей. –  Chris S 25 April 2010 в 06:36

Как правило, HT работает хорошо над рабочими нагрузками, которые более тяжелы на IO - ЦП может запланировать в большем количестве задач обработки от очереди другого виртуального ЦП, в то время как первый виртуальный ЦП ожидает на IO. Действительно все подсистемы HT получают Вас, аппаратно ускоренное контекстное переключение - который является шаблоном рабочей нагрузки, который это также используется при переключении между VMs. Так, HT будет (обычно) уменьшать замедление немного, когда у Вас будет больше VMs затем ядра, если каждая VM получает одно виртуальное ядро.

Присвоение нескольких vCPUs к VM может улучшить производительность, если приложения в VM записаны для поточной обработки, но это также делает жизнь тяжелее для гипервизора; это должно выделить время на 2 или 4 центральных процессорах сразу - поэтому, если у Вас будут четырехъядерный ЦП и квадратический-vCPU VM, то только один VM может быть запланирован во время того интервала (тогда как это может выполнить 4 различных единственных-vCPU VMs сразу).

5
ответ дан 2 December 2019 в 22:47
  • 1
    @Chris, @techieb0y: Спасибо, это - точно вид понимания, которое я искал. –  nedm 25 April 2010 в 07:50

Я думаю уточнить ответ Chopper3: если системы в основном простаивают по ЦП, не назначайте группу виртуальных ЦП, если они интенсивно загружают ЦП, будьте очень осторожны, чтобы не превышайте доступность. Вы должны иметь возможность выделить в общей сложности 8 виртуальных ЦП без конфликтов. Вы можете увеличить доступность, но если вы это сделаете, убедитесь, что ни у одного гостя, особенно у гостя, интенсивно использующего ЦП, нет 8 виртуальных ЦП, иначе возникнет конфликт. Я не знаю, чтобы механизм планировщика KVM был более конкретным, чем это.

Вышеизложенное основано на следующем понимании vCPU по сравнению с закрепленным процессором, но также на предположении, что KVM позволит одному гостю (или нескольким гостям) работать забрать весь фактический процессор у других, если вы выделите ему (/ им) достаточно потоков. vCPU ~ поток хоста, гостевой процессор ЦП = ядро ​​хоста, гостевой ЦП (Я не играл со смешанными виртуальными ЦП и закрепленными ЦП на одном госте, потому что у меня нет Hyperthreading.)

2
ответ дан 2 December 2019 в 22:47

Это довольно сложно. В зависимости от нагрузки HT может увеличить производительность примерно на 30% или снизить ее. Обычно я советую не выделять больше виртуальных ЦП, чем у вас есть физических ядер, для одной виртуальной машины, но если виртуальная машина довольно простаивает (и, конечно, такая виртуальная машина не требует слишком много процессоров), ее можно передать как много виртуальных ЦП, поскольку у вас есть потоки. Вы действительно не хотите давать одной виртуальной машине больше vCPU, чем у вас есть планируемых ядер - вот что я имею в виду. И в любом случае совет @ Chopper3 верен - не давайте виртуальной машине больше v-CPU, чем ей абсолютно необходимо.

Итак, в зависимости от того, насколько загружены и критичны ваши виртуальные машины, вы либо вообще не превышаете доступность, придерживаться количества физических ядер или увеличивать количество потоков на виртуальную машину.

Теперь, переходя к вопросу о HT, это, как правило, хорошая вещь, особенно когда вы выделяете на свои виртуальные машины больше виртуальных ЦП, чем у вас есть физических ядер или даже потоков, потому что это упрощает планировщику Linux планирование эти виртуальные ЦП.

И последнее: с kvm виртуальный ЦП, назначенный виртуальной машине, - это просто процесс на хосте, запланированный планировщиком Linux, так что все обычные оптимизации, которые вы можете здесь сделать, легко применимы. Более того, настройка ядер / сокетов - это просто способ, которым этот процесс будет отображаться для гостевой ОС виртуальной машины, на хосте это все еще просто процесс, независимо от того, как его видит виртуальная машина.

4
ответ дан 2 December 2019 в 22:47

Теги

Похожие вопросы