Quand un processus passera-t-il à l'état «D»?

21

J'utilise "Linux hostname 2.6.28-15-generic # 49-Ubuntu SMP Tue Aug 18 18:40:08 UTC 2009 i686 GNU / Linux"

Toutes les machines clientes utiliseront le client léger, j'utiliserai mon ordinateur portable pour travailler et je monterai mon répertoire personnel du serveur sur mon ordinateur portable.

Si j'ouvre le firefox dans mon ordinateur portable, la fenêtre du firefox ne s'ouvrira pas car le processus est dans l'état 'D', et toutes les autres machines des utilisateurs se sont bloquées et le processus lockd est dans l'état '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

si je vérifie le syslog

13 juillet 10:35:56 noyau du nom d'hôte: [222583.872059] lockd: impossible de surveiller l'ordinateur portable

13 juillet 10:35:57 noyau du nom d'hôte: [222583.872059] lockd: impossible de surveiller l'ordinateur portable

ps ajx | grep lockd

racine 9178 0,0 0,0 0 0? D <13:35 0:00 [lockd]

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

Le même message pour toutes les machines clientes.

Quand un processus passe-t-il à l'état «D»?

Quand le processus lockd passera-t-il à l'état «D»?

Quel est le but du processus lockd.

ungalnanban
la source

Réponses:

16

Dle code d'état signifie que le processus est en veille sans interruption, et cela peut signifier différentes choses, mais il s'agit généralement d'E / S. lockdest un démon intégré au noyau qui gère le verrouillage NFS. Votre problème a en effet besoin de plus de débogage, mais dans l'ensemble, il semble être dans la communication NFS.


la source
comment éviter cela? le processus lockd ne doit pas passer à l'état «D», que dois-je faire?
ungalnanban
@ungalnanban: C'est impossible, les processus entrent et sortent toujours de 'D' si vous utilisez les E / S. Donc, dans votre cas, le processus essaie, par exemple, de lire ou d'écrire des données, d'acquérir un verrou, ne peut pas le faire et continue d'attendre. Vous devez déboguer ce qu'il attend, etc. Je ne suis pas un expert NFS pour le dire, désolé.
15

Cela signifie "sommeil sans interruption" .

D    Uninterruptible sleep (usually IO)

Dans cet état, un processus ne se réveille pas immédiatement pour traiter les signaux. Lors de l'utilisation de l'appareil, I/Oc'est la seule façon de procéder (sinon une corruption des données pourrait en résulter).

Communauté
la source