% ЦП для процесса

1097
Tim

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

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

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

А вот и вывод top:

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
16 ядер и 128G физической памяти? Это довольно машина. Doug Harris 14 лет назад 3
Это сервер, используемый для вычислений в нашей школе. Tim 14 лет назад 0
Спасибо, Даг! Вы печатали каждый пробел, чтобы верхний вывод выровнялся так хорошо? Tim 14 лет назад 0
Интересная вещь в этом вопросе заключается в том, что я чувствую, что Тим пытается довести этот сервер до предела. Многие из нас, работающих с сервисами, используемыми реальными людьми (вместо вычислений), беспокоятся об отзывчивости и, таким образом, стремятся к обратному. Как только сервер достигнет более 60% емкости, пора начинать добавлять другой сервер в список. Я не говорю, что взгляды Тима неверны - это правильно для этого варианта использования. Просто интересно это все что я говорю. Doug Harris 14 лет назад 0
Тим - нет, я использовал emacs, чтобы сделать пару быстрых правок. Doug Harris 14 лет назад 0
@Doug: если вы считаете, что я делаю не правильно с точки зрения обмена и эффективности, пожалуйста, дайте мне знать. Вы используете org-mode под emacs, что я слышал на прошлой неделе? Tim 14 лет назад 0

2 ответа на вопрос

2
avelldiroll

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

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

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

Падение, которое вы видите в% cpu для более чем 6 одновременных процессов, может быть вызвано множеством различных факторов (cpus - не единственный общий ресурс ...), чтобы узнать, какой из них вам понадобится для профилирования ваша программа

В любом случае, поскольку эта машина, по-видимому, используется несколькими пользователями для расчетов, я настоятельно рекомендую настроить некоторые формы планирования заданий, даже для доступа к оболочке (вы также можете ввести некоторую балансировку нагрузки таким образом). Для этого есть несколько инструментов, я использую Torque / PBS и Sun Grid Engine (оба проекта OSS).

1
PEra

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

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

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

Дополнительные ответы см. В перекрестном сообщении на ServerFault: https://serverfault.com/questions/71510/cpu-for-a-process .

Сервер имеет 16 ядер. Средняя нагрузка отображается в конце первой строки. Это то, что вы спросили? Tim 14 лет назад 0
Мое понимание средней нагрузки - это среднее число процессов, ожидающих ЦП. С 16 ядрами я не думаю, что 10 или 11 слишком высоки. На моих 4 основных серверах я счастлив, если нагрузка ниже 4. Doug Harris 14 лет назад 0
Аналогичное мнение о сбое сервера: «Если ваш уровень нагрузки ниже вашего процессора, то вы в целом в порядке». http://serverfault.com/questions/63319/acceptable-load-average Doug Harris 14 лет назад 0
Спасибо, Даг! Вы думаете, что некоторые процессы просто получают менее 100% процессорного времени из-за меня? Кстати, в чем разница между SuperUSsr и SeverFault на этих двух сайтах? Должен ли я разместить свои вопросы там? Tim 14 лет назад 0
re SuperUser v. ServerFault: http://superuser.com/about http://serverfault.com/about SuperUser ориентирован на компьютерных энтузиастов, а Serverfault - на системных администраторов и ИТ-специалистов. Если достаточное количество людей считает, что переезд оправдан, ваш вопрос может быть перенесен в ту или иную тройку (эти два, плюс StackOverflow, для программирования). JMD 14 лет назад 0

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