Назад | Перейти на главную страницу

Три серверных процесса потребляют не более 50% двухъядерного процессора

У меня три процесса работают на процессоре Intel Core 2 Duo. Наблюдая за выводом «вершины» и графиками загрузки ЦП (нарисованными MRTG, сбором данных через SNMP), я вижу, что загрузка ЦП никогда не превышает 50%, и большую часть дня, когда эти процессы заняты, загрузка ЦП снижается. потолок на 50%. Я имею в виду, что загрузка ЦП с утра доходит до 50% и держится до позднего вечера.

Моя первая мысль заключалась в том, что только одно ядро ​​было использовано на 100%, что дает 50% обоих процессоров. Но, поскольку есть три процессы запущены и сверху я вижу, что загружаются оба ядра, так что это не так. schedtool показывает, что соответствие ЦП для этих трех процессов по умолчанию равно 0x03, что позволяет им использовать оба ядра. Если я принудительно подключу один процесс к одному ядру (schedtool -a 0x01), а два других - ко второму (schedtool -a 0x02), совокупное использование превысит 50%.

Почему кажется, что три процесса потребляют только 50% двух ядер? Почему принуждение их к разным процессорам позволяет увеличить использование? Есть подсказки?

P.S. Речь идет о серверах Counter-Strike.

С привязкой к ЦП ОС может избежать некоторых переключений контекста и привести к более высокой загрузке ЦП. Я сомневаюсь, что выигрыш будет значительным, если у вас нет большого количества операций ввода-вывода в сети или на диске.

Также вверху суммируются данные по нескольким ядрам, и я видел странные ошибки округления / математические ошибки. Вверху попробуйте просмотреть каждое ядро ​​(нажмите 1, находясь наверху). Это даст вам лучшее представление о том, как используется каждый процессор.

От мужчины

Доля задачи в затраченном времени ЦП с момента последнего обновления экрана, выраженная в процентах от общего времени ЦП. В настоящей среде SMP, если для параметра «Irix mode» установлено значение «Выкл.», Top будет работать в «режиме Solaris», где использование ЦП задачей будет делиться на общее количество ЦП. Вы переключаете режимы «Irix / Solaris» с помощью интерактивной команды «I».

Возможно, вы захотите проверить с помощью sysstat более подробную информацию о показателях ЦП. Здесь вам поможет команда mpstat:

mpstat -P ALL 
01:06:12 PM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
01:06:12 PM  all    0.06    0.00    0.02    1.84    0.00    0.00    0.03   98.05     96.39
01:06:12 PM    0    0.06    0.00    0.02    1.84    0.00    0.00    0.02   98.05     50.98
01:06:12 PM    1    0.58    0.00    0.67    1.81    0.00    0.00    4.10   92.85     50.98
01:06:12 PM    2    0.35    0.00    0.73    1.85    0.00    0.00    4.10   92.98     50.98
01:06:12 PM    3    0.12    0.00    0.38    1.06    0.00    0.00    4.09   94.35     50.98

все ядра выплюнет.