Задачи на сервере оставаться в спящем
Я вошел на сервер с мультипроцессорами и запустил 20 программ на Python, каждая из которых обрабатывала часть моих данных.
Однако, это стоило слишком много времени, поэтому я проверил top
и обнаружил, что все процессы ipython находятся в спящем режиме. В чем дело?
$ top -u calc
top - 13:36:27 up 31 days, 4:48, 1 user, load average: 0.13, 0.21, 0.20
Tasks: 335 total, 1 running, 334 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 66003900 total, 11998508 used, 54005392 free, 694584 buffers
KiB Swap: 0 total, 0 used, 0 free, 3192728 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
105953 calc 20 0 13676 1568 980 R 1 0.0 1:04.91 top
92380 calc 20 0 507m 107m 18m S 0 0.2 248:47.52 ipython
92379 calc 20 0 507m 108m 18m S 0 0.2 244:19.90 ipython
92378 calc 20 0 510m 111m 18m S 0 0.2 257:01.33 ipython
92377 calc 20 0 510m 110m 18m S 0 0.2 252:13.59 ipython
92376 calc 20 0 514m 114m 18m S 0 0.2 247:35.26 ipython
92375 calc 20 0 503m 104m 18m S 0 0.2 222:48.84 ipython
92374 calc 20 0 514m 114m 18m S 0 0.2 247:16.59 ipython
92373 calc 20 0 508m 108m 18m S 0 0.2 252:58.08 ipython
92372 calc 20 0 516m 116m 18m S 0 0.2 241:42.16 ipython
92364 calc 20 0 511m 110m 18m S 0 0.2 229:59.30 ipython
92363 calc 20 0 507m 107m 18m S 0 0.2 255:22.32 ipython
92362 calc 20 0 516m 116m 18m S 0 0.2 238:59.80 ipython
92361 calc 20 0 506m 107m 18m S 0 0.2 253:45.55 ipython
92360 calc 20 0 510m 110m 18m S 0 0.2 250:11.67 ipython
92359 calc 20 0 507m 108m 18m S 0 0.2 240:12.78 ipython
88737 calc 20 0 12832 5192 1568 S 0 0.0 0:00.16 bash
88735 calc 20 0 9248 1340 1120 S 0 0.0 0:00.00 bash
Некоторая информация о процессорах:
$ grep 'physical id' /proc/cpuinfo|sort -u|wc -l
выходы 2
grep 'core id' /proc/cpuinfo|sort -u|wc -l
выходы 10
grep 'processor' /proc/cpuinfo|sort -u|wc -l
выход 40
1 ответ
У вас есть только снимок системы, и в этот конкретный момент все ваши процессы находятся в состоянии "S". Это то, что означает состояние "S"
S прерывистый сон (ожидание завершения события)
Если вы посмотрите на столбец TIME+, то увидите, что все процессы потребляют процессорное время, и они в целом потребляют одинаковое количество.
Это вроде нормально для меня.
Что заставляет процесс переходить в состояние "S"? Ну, много чего на самом деле, обычно ввод / вывод, ожидание семафоров и т. Д.
Если вам действительно важно, вы можете использовать strace, чтобы присоединиться к процессу и посмотреть, что он делает.
strace -p 92376
будет отслеживать ваш процесс 92376.