¿Cómo descubrir el motivo por el cual los procesos ssh se bloquean?

¿Cómo descubrir el motivo por el cual los procesos ssh se bloquean?

Cuando ejecuto un comando como iostat -dkx 2 2a través de ssh, obtengo el resultado esperado, pero los procesos en la computadora local dicen estar vivos en estado "suspensión interrumpible". ¿Por qué está pasando esto? ¿Hay alguna manera de descubrir el motivo de ese comportamiento?

comando completo:

$ ssh -o ConnectTimeout=4 -o ChallengeResponseAuthentication=no -o PasswordAuthentication=no <user>@host> iostat -dkx 2 2

salida de ps:

$ ps aux | grep 11893 && ps aux | grep PID
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
1000       10273  0.0  0.0 103280   904 pts/0    S+   12:09   0:00 grep PID
1000       11893  0.0  0.0 158732  3892 ?        S    Feb17   0:00 ssh -o ConnectTimeout=4 -o ChallengeResponseAuthentication=no -o PasswordAuthentication=no <user>@<host> iostat -dkx 2 2
1000       10285  0.0  0.0 103280   904 pts/0    S+   12:09   0:00 grep 11893

rastro:

$ strace -p 11893
Process 11893 attached - interrupt to quit
select(8, [5], [], NULL, NULL^C <unfinished ...>

qué:

$ cat /proc/11893/wchan 
poll_schedule_timeout

seguimiento de pila:

$ cat /proc/11893/stack 
[] poll_schedule_timeout+0x39/0x60
[] do_select+0x6bb/0x7c0
[] core_sys_select+0x18a/0x2c0
[] sys_select+0x47/0x110
[] system_call_fastpath+0x16/0x1b
[] 0xffffffffffffffff

Respuesta1

Parece que no pasa nada. El proceso que está viendo (ssh) simplemente no tiene nada que hacer en el momento en que toma su estadística de proceso.

Mientras no haya salida del comando iniciado remotamente, la "selección" se bloquea y el proceso se envía a suspensión.

Respuesta2

¿Tienes ControlMasteren tu configuración ( ~/.ssh/config) por casualidad? Si lo hace, entonces el sshproceso no podrá salir si es la conexión maestra para otra conexión. Si ese es el problema, no está relacionado con la ejecución iostat, la conexión que permanece abierta es la primera que realiza a este servidor en particular mientras no haya ninguna conexión activa.

información relacionada