Смотря на вывод вершины на нашем сервере, один из моих коллег сказал мне, что то, что некоторые процессы получили меньше чем 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
Старое правило ползунков, которые я использую:
Приемлемое среднее число загрузки ≤ количество ядер +1
Это гарантирует, что никогда нет, чем одно ожидание процесса при наличии ресурсов, полностью используемых. Однако загруженный тот путь, машина могла бы казаться немного безразличной при интерактивном использовании Вы могли бы рассмотреть для освобождения некоторых ресурсов с этой целью.
Отбрасывание, которое Вы видите в %cpu больше чем для 6 параллельных процессов, могло бы быть вызвано большим количеством различных факторов (CPU не являются единственным совместно используемым ресурсом...), для знания, какой (s) необходимо было бы сделать некоторое профилирование на программе.
Так или иначе, поскольку эта машина кажется общей между несколькими пользователями для цели вычисления, я настоятельно советовал бы для установки некоторой формы планирования задания, даже для доступа оболочки (можно также представить некоторое выравнивание нагрузки тот путь). Существует довольно много инструментов для включения этого, двумя, которые я использую, является Крутящий момент/PBS и Механизм Сетки Sun (оба проекта OSS).
Из того, что я вижу в top
произведите Вас отправленный, я думаю mltest
не может съесть больше циклов, чем это. Это использует почти 8x 100%. Я не специалист по архитектуре ЦП, но я думаю Вы поражающий предел той многоядерной технологии. Сколько ядер на ЦП имеет Ваш сервер?
BTW, у Вас есть загрузка 10 или 11 на Вашей "Квадратическо-квадратической Машине"? Или это - среднее число "%CPU", Вы видите? load
количество процессов, ожидающих цикла ЦП, таким образом, 10 довольно высоко.
Обновление после комментария:
Спасибо за переформатирование top
вывод и для разъяснения относительно load
значение. Я отчасти не соглашаюсь со своими коллегами здесь - загрузка 10 довольно высока, неважно, сколько ядер Вы имеете. Но Вы выполняете сравнительный тест или отбраковочное испытание ЦП, не так ли?
Для дальнейших ответов посмотрите перекрестную рассылку на ServerFault: https://serverfault.com/questions/71510/cpu-for-a-process.