Quando um processo irá para o estado 'D'?

21

Estou usando "Linux hostname 2.6.28-15-generic # 49-Ubuntu SMP ter 18 de agosto 18:40:08 UTC 2009 i686 GNU / Linux"

Todas as máquinas clientes usarão o Thin Client, usarei meu laptop para trabalhar e montarei meu diretório pessoal do servidor para o meu laptop.

Se eu abrir o firefox no meu laptop, a janela do firefox não abrirá porque o processo está no estado 'D' e todas as outras máquinas dos usuários foram desligadas e o processo de bloqueio está no estado 'D',

ps ajx | grep firefox

1  6187  4313  4313 ?   -1 D<    1030   3:16 /usr/lib/firefox-3.5b4pre/firefox-3.5

   7610  7622  7621  7610 pts/3      7621 S+    1030   0:00 grep firefox

se eu verificar o syslog

13 de julho 10:35:56 kernel do nome do host: [222583.872059] lockd: não pode monitorar o laptop

13 de julho 10:35:57 kernel do nome do host: [222583.872059] lockd: não pode monitorar o laptop

ps ajx | grep lockd

raiz 9178 0,0 0,0 0 0? D <13:35 0:00 [bloqueado]

raiz 11039 0,0 0,0 3340 796 pts / 3 S <+ 14:18 0:00 grep lockd

A mesma mensagem para todas as máquinas clientes.

Quando um processo vai para o estado 'D'?

Quando o processo lockd irá para o estado 'D'?

Qual é o objetivo do processo lockd.

ungalnanban
fonte

Respostas:

16

Dcódigo de estado significa que o processo está em suspensão ininterrupta e isso pode significar coisas diferentes, mas geralmente é de E / S. lockdé um daemon no kernel que gerencia o bloqueio do NFS. Seu problema realmente precisa de mais depuração, mas no geral parece estar na comunicação NFS.


fonte
como evitar isso? o processo lockd não deve ir para o estado 'D', o que preciso fazer?
Ungalnanban
@ungalnanban: É impossível, os processos sempre entram e saem do 'D' se estiverem usando E / S. Portanto, no seu caso, o processo está tentando, por exemplo, ler ou gravar alguns dados, adquirir um bloqueio, não pode fazer isso e continua esperando. Você precisa depurar o que está esperando etc. Não sou especialista em NFS para dizer isso, desculpe.
15

Significa "sono ininterrupto" .

D    Uninterruptible sleep (usually IO)

Nesse estado, um processo não é ativado imediatamente para processar sinais. Ao fazer o dispositivo I/O, é o único caminho a percorrer (caso contrário, poderá resultar em corrupção de dados).

Comunidade
fonte