Um processo em suspensão de disco ou em modo ininterrupto de espera geralmente está aguardando alguma operação de E / S para ser concluída. Neste estado, ele não pode ser acordado por sinais, portanto, o processo não pode ser terminado usando o sinal SIGKILL.
Minha compreensão limitada do que acontece é isso: O escalonador de CPU no kernel mantém uma fila de execução, que é a lista de processos que estão prontos para serem executados. Quando um processo pega a CPU, ou
- Utiliza o período de tempo integralmente e é agendado ou
- Ele precisa aguardar a resposta de uma operação, normalmente E / S, e solicita a transferência para a fila de espera, aguardando o evento.
Os processos que agendam o prazo devido a # 2 também indicam ao agendador se devem ser interrompidos ou não enquanto aguardam o evento. Quando eles não podem continuar a operação adequada se forem interrompidos por um sinal (geralmente drivers de dispositivo), eles indicarão que devem ser acordados apenas pelo evento. Eles estão em estado de suspensão ininterrupta e serão movidos para a fila de espera.
Se você está experimentando o congelamento regular do sistema devido ao sono em disco, ele pode ser um dos
- Driver de dispositivo com bugs
- Falhas no seu hardware (unidade de disco?)
- Sistemas de arquivos montados que demoram a responder.
Eu já vi essa e outra vez com sistemas de arquivos NFS. Se por algum motivo a resposta do dispositivo for perdida, o processo permanecerá no estado de suspensão, tornando quase impossível usar a montagem / dispositivo até uma reinicialização.
Se você acha que seu acesso ao disco rígido está causando o congelamento de E / S, talvez seja prudente verificar se há blocos ou setores defeituosos na unidade.