Quando un processo passerà allo stato 'D'?


21

Sto usando "Linux hostname 2.6.28-15-generic # 49-Ubuntu SMP mar 18 ago 18:40:08 UTC 2009 i686 GNU / Linux"

Tutte le macchine client useranno Thin-client, userò il mio laptop per lavorare e monterò la mia directory home dal server al mio laptop.

Se apro firefox sul mio laptop, la finestra di firefox non si aprirà perché il processo è nello stato 'D' e tutte le macchine degli altri utenti sono state bloccate e il processo di blocco è nello stato '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 controllo il syslog

13 luglio 10:35:56 nome host kernel: [222583.872059] lockd: impossibile monitorare il laptop

13 luglio 10:35:57 kernel hostname: [222583.872059] lockd: impossibile monitorare il laptop

ps ajx | grep lockd

radice 9178 0,0 0,0 0 0? D <13:35 0:00 [bloccato]

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

Lo stesso messaggio per tutte le macchine client.

Quando un processo passerà allo stato "D"?

Quando il processo di blocco passerà allo stato "D"?

Qual è lo scopo del processo di blocco.

Risposte:


16

Dil codice di stato indica che il processo è in modalità di sospensione ininterrotta e ciò può significare cose diverse ma di solito è I / O. lockdè un demone nel kernel che gestisce il blocco NFS. Il tuo problema ha davvero bisogno di più debug, ma nel complesso sembra essere nella comunicazione NFS.


come evitarlo? il processo di blocco non dovrebbe passare allo stato "D", cosa devo fare?
ungalnanban,

@ungalnanban: è impossibile, i processi vanno sempre dentro e fuori dalla 'D' se si usa l'I / O. Quindi nel tuo caso il processo sta provando, ad esempio, a leggere o scrivere alcuni dati, acquisire un blocco, non può farlo e continua ad aspettare. Devi eseguire il debug di ciò che sta aspettando ecc. Non sono un esperto di NFS a dirlo, scusa.

15

Significa "sonno ininterrotto" .

D    Uninterruptible sleep (usually IO)

In questo stato, un processo non si sveglia immediatamente per elaborare i segnali. Quando si esegue il dispositivo I/Oè l'unico modo per procedere (altrimenti potrebbe verificarsi il danneggiamento dei dati).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.