procesos zombies

De Wikicima
Saltar a: navegación, buscar

Un proceso zombie se entiende cómo ese proceso que fue lanzado dentro de la cola PBS de gestión de trabajos, que ocupa espacio en el sistema del clúster, pero que actualmente no está en curso.

Esta situación suele ocurrir cuando el clúster se apaga de una manera no controloda, el espacio en el 'home' del clúster se llena.

Es importante que se paren estos procesos, puesto que suponen un sobre esfuerzo para los nodos en los cuáles estos procesos zombies están ejecutándose.

NOTA: este es el único caso en el cuál está permitido entrar en los nodos de cálculo del clúster.

Pasos a seguir

  1. Itendificar los procesos de la cola del sistema del usuario (ej. lluis.fita)
$ qstat
Job id                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
4426.hydra                 wrf_control      lluis.fita      1699:08: R larga          
4427.hydra                 ...nsSFC-control lluis.fita             0 H larga          
4432.hydra                 wrf_control50k   pzaninelli      649:09:3 R larga          
4433.hydra                 run_experiment   pzaninelli             0 H larga          
4438.hydra                 wrf_phy1         pzaninelli      645:40:5 R larga          
4439.hydra                 run_experiment   pzaninelli             0 H larga          
4440.hydra                 WRF17O           victoria.gallig 603:42:2 R larga          
4441.hydra                 WRF17O           victoria.gallig 600:18:4 R larga          
4443.hydra                 WRF17O           lluis.fita             0 Q larga  
  1. El proceso 4426 es una simulación de WRF.
$ qstat -f 4426
Job Id: 4426.hydra
    Job_Name = wrf_control
    Job_Owner = lluis.fita@node48
    resources_used.cput = 1700:00:37
    resources_used.mem = 6264020kb
    resources_used.vmem = 15322976kb
    resources_used.walltime = 72:40:26
    job_state = R
    queue = larga
    server = hydra
    Checkpoint = u
    ctime = Sat Apr  7 10:47:06 2018
    depend = beforeany:4427.hydra@hydra
    Error_Path = node48:/home/lluis.fita/estudios/WRFsensSFC/simulations/contr
	ol/wrf_control.e4426
    exec_host = node48/23+node48/22+node48/21+node48/20+node48/19+node48/18+no
	de48/17+node48/16+node48/15+node48/14+node48/13+node48/12+node48/11+no
	de48/10+node48/9+node48/8+node48/7+node48/6+node48/5+node48/4+node48/3
	+node48/2+node48/1+node48/0+node51/23+node51/22+node51/21+node51/20+no
	de51/19+node51/18+node51/17+node51/16+node51/15+node51/14+node51/13+no
	de51/12+node51/11+node51/10+node51/9+node51/8+node51/7+node51/6+node51
	/5+node51/4+node51/3+node51/2+node51/1+node51/0
    exec_port = 15003+15003+15003+15003+15003+15003+15003+15003+15003+15003+15
	003+15003+15003+15003+15003+15003+15003+15003+15003+15003+15003+15003+
	15003+15003+15003+15003+15003+15003+15003+15003+15003+15003+15003+1500
	3+15003+15003+15003+15003+15003+15003+15003+15003+15003+15003+15003+15
	003+15003+15003
    Hold_Types = n
    Join_Path = oe
    Keep_Files = n
    Mail_Points = ae
    Mail_Users = lluis.fita@cima.fcen.uba.ar
    mtime = Sat Apr  7 10:48:06 2018
    Output_Path = node48:/home/lluis.fita/estudios/WRFsensSFC/simulations/cont
	rol/wrf_control.o4426
    Priority = 0
    qtime = Sat Apr  7 10:47:06 2018
    Rerunable = True
    Resource_List.mem = 30gb
    Resource_List.nodect = 2
    Resource_List.nodes = 2:ppn=24
    Resource_List.vmem = 30gb
    Resource_List.walltime = 168:00:00
    session_id = 19561
    Variable_List = PBS_O_QUEUE=larga,PBS_O_HOST=node48,
	PBS_O_HOME=/home/lluis.fita,PBS_O_LANG=en_US.UTF-8,
	PBS_O_LOGNAME=lluis.fita,
	PBS_O_PATH=/usr/local/bin:/opt/intel/composerxe-2011.3.174/bin/intel6
	4:/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:
	/usr/local/maui/bin:/usr/local/maui/sbin:/usr/local/bin:/opt/intel/com
	poserxe/bin:/usr/local/maui/bin:/usr/local/maui/sbin:/home/lluis.fita/
	bin:/opt/intel/composerxe-2011.3.174/mpirt/bin/intel64:/usr/local/maui
	/bin:/usr/local/maui/sbin,PBS_O_MAIL=/var/spool/mail/lluis.fita,
	PBS_O_SHELL=/bin/bash,PBS_SERVER=hydra,
	PBS_O_WORKDIR=/home/lluis.fita/estudios/WRFsensSFC/simulations/contro
	l
    etime = Sat Apr  7 10:47:14 2018
    submit_args = -W depend=afterany:4425 /home/lluis.fita/estudios/WRFsensSFC
	/simulations/control/run_WRF.pbs
    start_time = Sat Apr  7 10:47:14 2018
    Walltime.Remaining = 343110
    start_count = 1
    fault_tolerant = False
    submit_host = node48
    init_work_dir = /home/lluis.fita/estudios/WRFsensSFC/simulations/control
  1. La variable PBS_O_WORKDIR contiene el path de ejecución del job. Se tiene que cercionar que el proceso (simulación WRF en este caso), está ejecutándose (en este caso si los rsl.out/error.[nnnn] se están actualizando). En este caso la ejecución del WRF se halla en $PBS_O_WORKDIR/run
$ ls -l /home/lluis.fita/estudios/WRFsensSFC/simulations/control/run/rsl.error.0000
rw-r--r-- 1 lluis.fita cima 1204224 Apr  8 19:07 /home/lluis.fita/estudios/WRFsensSFC/simulations/control/run/rsl.error.0000
$ date
Tue Apr 10 11:32:35 ART 2018
  1. Está claro que el WRF no está ejecutándose adecuadamente. Así que se tendrá que entrar en el nodo en dónde se está ejecutando y parar el job, ya que el sistema de colas PBS no controla este proceso. El WRF se ejecuta en el nodo (valores de exec_host) node48 y node51.
[lluis.fita@hydra ~]$ ssh node48
[lluis.fita@node48 ~]$ top
top - 11:35:40 up 5 days, 47 min,  0 users,  load average: 23.00, 22.99, 23.03
Tasks: 246 total,  24 running, 198 sleeping,   0 stopped,  24 zombie
Cpu(s): 87.4%us,  8.4%sy,  0.0%ni,  4.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  32942908k total, 18055956k used, 14886952k free,     3972k buffers
Swap:        0k total,        0k used,        0k free, 12102316k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                       
21531 lluis.fi  20   0  508m 256m  28m R 100.0  0.8   4360:00 wrf.exe                                                                                                      
21532 lluis.fi  20   0  503m 248m  23m R 100.0  0.8   4358:44 wrf.exe                                                                                                      
21537 lluis.fi  20   0  503m 247m  23m R 100.0  0.8   4359:53 wrf.exe                                                                                                      
21540 lluis.fi  20   0  507m 252m  23m R 100.0  0.8   4359:52 wrf.exe                                                                                                      
21545 lluis.fi  20   0  503m 249m  24m R 100.0  0.8   4359:35 wrf.exe                                                                                                      
21546 lluis.fi  20   0  503m 247m  22m R 100.0  0.8   4359:51 wrf.exe                                                                                                      
21547 lluis.fi  20   0  507m 253m  23m R 100.0  0.8   4360:04 wrf.exe                                                                                                      
21548 lluis.fi  20   0  507m 254m  24m R 100.0  0.8   4359:52 wrf.exe                                                                                                      
21549 lluis.fi  20   0  495m 241m  23m R 100.0  0.7   4359:44 wrf.exe                                                                                                      
21550 lluis.fi  20   0  507m 251m  23m R 100.0  0.8   4359:47 wrf.exe                                                                                                      
21552 lluis.fi  20   0  501m 249m  27m R 100.0  0.8   4359:49 wrf.exe                                                                                                      
21529 lluis.fi  20   0  507m 252m  24m R 99.7  0.8   4359:42 wrf.exe                                                                                                       
21530 lluis.fi  20   0  500m 246m  25m R 99.7  0.8   4360:05 wrf.exe                                                                                                       
21533 lluis.fi  20   0  507m 253m  23m R 99.7  0.8   4359:55 wrf.exe                                                                                                       
21534 lluis.fi  20   0  507m 254m  24m R 99.7  0.8   4360:04 wrf.exe                                                                                                       
21535 lluis.fi  20   0  507m 252m  24m R 99.7  0.8   4359:40 wrf.exe                                                                                                       
21536 lluis.fi  20   0  503m 250m  24m R 99.7  0.8   4359:37 wrf.exe                                                                                                       
21539 lluis.fi  20   0  507m 252m  24m R 99.7  0.8   4359:01 wrf.exe                                                                                                       
21541 lluis.fi  20   0  503m 248m  23m R 99.7  0.8   4360:07 wrf.exe                                                                                                       
21542 lluis.fi  20   0  500m 250m  27m R 99.7  0.8   4359:49 wrf.exe                                                                                                       
21543 lluis.fi  20   0  500m 244m  23m R 99.7  0.8   4359:43 wrf.exe                                                                                                       
21544 lluis.fi  20   0  507m 251m  23m R 99.7  0.8   4359:34 wrf.exe                                                                                                       
21551 lluis.fi  20   0  507m 257m  27m R 99.7  0.8   4360:02 wrf.exe        
[lluis.fita@node48 ~]$ killall wrf.exe
[lluis.fita@node48 ~]$ top
top - 11:37:32 up 5 days, 49 min,  0 users,  load average: 19.46, 22.23, 22.79
Tasks: 199 total,   1 running, 197 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  32942908k total, 12665572k used, 20277336k free,     3972k buffers
Swap:        0k total,        0k used,        0k free, 12048020k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                       
   10 root      20   0     0    0    0 S  0.3  0.0  39:27.92 kworker/0:1                                                                                                   
  262 root      20   0     0    0    0 S  0.3  0.0   0:18.40 kpktgend_13                                                                                                   
  272 root      20   0     0    0    0 S  0.3  0.0   0:18.47 kpktgend_23                                                                                                   
27134 lluis.fi  20   0 15280 1256  888 R  0.3  0.0   0:00.01 top                                                                                                           
    1 root      20   0 25660 1736 1428 S  0.0  0.0   0:05.71 init                                                                                                          
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                                      
    3 root      20   0     0    0    0 S  0.0  0.0   0:01.17 ksoftirqd/0  
[lluis.fita@node48 ~]$ exit
  1. Se repite el procedimiento en tantos nodos cómo ocupe el job (en este caso también node51)
[lluis.fita@hydra ~]$ ssh node51
[lluis.fita@node51 ~]$ top
[lluis.fita@node51 ~]$ killall wrf.exe
[lluis.fita@node51 ~]$ top
[lluis.fita@node51 ~]$ exit
  1. El job re-aparece cómo cancelled (letra C)
[lluis.fita@hydra ~]$ qstat
Job id                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
4426.hydra                 wrf_control      lluis.fita      1703:44: C larga          
4427.hydra                 ...nsSFC-control lluis.fita             0 R larga          
4432.hydra                 wrf_control50k   pzaninelli      654:14:4 R larga          
4433.hydra                 run_experiment   pzaninelli             0 H larga          
4438.hydra                 wrf_phy1         pzaninelli      650:46:2 R larga          
4439.hydra                 run_experiment   pzaninelli             0 H larga          
4440.hydra                 WRF17O           victoria.gallig 608:46:5 R larga          
4441.hydra                 WRF17O           victoria.gallig 605:22:5 R larga          
4443.hydra                 WRF17O           lluis.fita             0 R larga     
  1. Otros jobs que estabn en la cola PBS, ahora ya se están ejecutándose al liberarse los nodos! Se observa en el [ganglia] del sistema cómo los nodos 48 y 51, se descargan de carga de cálculo
(thumbnail)
Ejemplo de descarga de los nodos 48 y 51 después de matar un proceso 'zombie'
Herramientas personales