Задачи на сервере оставаться в спящем

Я вошел на сервер с мультипроцессорами и запустил 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.

Другие вопросы по тегам