%CPU для процесса

Смотря на вывод вершины на нашем сервере, один из моих коллег сказал мне, что то, что некоторые процессы получили меньше чем 100 "%CPU", было то, потому что я выполнял слишком много процессов. Он добавил, что на основе его опыта, если бы я выполняю меньше чем 6 процессов, затем вероятно, все процессы имели бы 100 "%CPU".

Я не хочу быть раздражением другим пользователям, но я сомневаюсь относительно того, что он сказал, корректно. Сервер имеет 16 ядер, и текущее среднее число загрузки между 10 и 11. Из того, что я учился, это не перегружается. Но я не знаю, почему некоторые процессы просто получают меньше чем 100 "%CPU"? Это действительно из-за меня?

Спасибо и всего наилучшего!

Здесь прибывает вывод вершины:

top - 16:34:13 up 32 days,  1:36, 12 users,  load average: 10.61, 10.39, 10.22
Tasks: 380 total,  10 running, 370 sleeping,   0 stopped,   0 zombie
Cpu(s): 55.0%us,  1.7%sy,  0.0%ni, 42.2%id,  0.5%wa,  0.1%hi,  0.4%si,  0.0%st
Mem:  130766620k total, 39859784k used, 90906836k free,   849412k buffers
Swap: 47351548k total,   279456k used, 47072092k free, 19792956k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                        
17197 tim    18  -2 1315m 1.3g 1504 R  100  1.0   4510:11 MLtest                                                                                       
28762 tim    18  -2 1315m 1.3g 1504 R  100  1.0   4633:01 MLtest                                                                                       
29249 tim    18  -2 1315m 1.3g 1504 R  100  1.0   4623:03 MLtest                                                                                       
29560 tim    18  -2 1315m 1.3g 1504 R  100  1.0   4626:59 MLtest                                                                                       
 4904 tim    18  -2 1315m 1.3g 1504 R  100  1.0   4757:12 MLtest                                                                                       
 5143 tim    18  -2 1315m 1.3g 1504 R  100  1.0   4759:40 MLtest                                                                                       
29389 tim    18  -2 1315m 1.3g 1504 R   99  1.0   4622:11 MLtest                                                                                       
 5285 tim    18  -2 1315m 1.3g 1504 R   97  1.0   4758:49 MLtest                                                                                       
 4763 tim    18  -2 1315m 1.3g 1504 R   93  1.0   4754:22 MLtest                                                                                       
 9456 zma    18  -2  206m  85m  11m S   48  0.1  60:46.78 dropbox                                                                                         
 7527 vals   18  -2 1266m 436m  42m S    4  0.3 613:57.10 MATLAB                                                                                          
 2903 root   15  -5     0    0    0 S    1  0.0  19:00.01 rpciod/0                                                                                        
19133 vals   18  -2 1380m 503m  42m S    1  0.4 798:47.99 MATLAB                                                                                          
12454 tim    18  -2 19248 1588 1024 R    1  0.0   0:48.88 top                                                                                             
   12 root   RT  -5     0    0    0 S    1  0.0  35:01.05 migration/3                                                                                     
 2924 root   15  -5     0    0    0 S    1  0.0  27:20.92 nfsiod                                                                                          
12690 jun    18  -2  913m  84m 2684 S    1  0.1 121:55.65 MATLAB                                                                                          
19650 jun    18  -2 19244 1600 1028 S    1  0.0   6:5
3
задан 06.10.2009, 00:07

2 ответа

Старое правило ползунков, которые я использую:

Приемлемое среднее число загрузки ≤ количество ядер +1

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

Отбрасывание, которое Вы видите в %cpu больше чем для 6 параллельных процессов, могло бы быть вызвано большим количеством различных факторов (CPU не являются единственным совместно используемым ресурсом...), для знания, какой (s) необходимо было бы сделать некоторое профилирование на программе.

Так или иначе, поскольку эта машина кажется общей между несколькими пользователями для цели вычисления, я настоятельно советовал бы для установки некоторой формы планирования задания, даже для доступа оболочки (можно также представить некоторое выравнивание нагрузки тот путь). Существует довольно много инструментов для включения этого, двумя, которые я использую, является Крутящий момент/PBS и Механизм Сетки Sun (оба проекта OSS).

2
ответ дан 08.12.2019, 01:12

Из того, что я вижу в top произведите Вас отправленный, я думаю mltest не может съесть больше циклов, чем это. Это использует почти 8x 100%. Я не специалист по архитектуре ЦП, но я думаю Вы поражающий предел той многоядерной технологии. Сколько ядер на ЦП имеет Ваш сервер?

BTW, у Вас есть загрузка 10 или 11 на Вашей "Квадратическо-квадратической Машине"? Или это - среднее число "%CPU", Вы видите? load количество процессов, ожидающих цикла ЦП, таким образом, 10 довольно высоко.

Обновление после комментария:
Спасибо за переформатирование top вывод и для разъяснения относительно load значение. Я отчасти не соглашаюсь со своими коллегами здесь - загрузка 10 довольно высока, неважно, сколько ядер Вы имеете. Но Вы выполняете сравнительный тест или отбраковочное испытание ЦП, не так ли?

Для дальнейших ответов посмотрите перекрестную рассылку на ServerFault: https://serverfault.com/questions/71510/cpu-for-a-process.

1
ответ дан 08.12.2019, 01:12

Теги

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