web-dev-qa-db-fra.com

Processus bloqué en permanence sur l'état D

J'ai un problème avec certains processus bloqués dans un état D sur Ubuntu 10.04.3 LTS.

Ils sont dans cet état depuis le 5 novembre (aujourd'hui le 6 décembre). Je comprends que ce sont des états de veille sans interruption souvent liés à l'attente de données à partir de matériel tel qu'un disque dur. Il s'agit d'un serveur de production, donc le redémarrage est un tout dernier recours, est-ce que quelqu'un peut faire la lumière sur ce que pourraient être ces processus?

Il s'agit de la sortie des éléments d'état D de ps -aux

www-data 22851  0.0  0.0      0     0 ?        D    Nov05   0:00 [2637.64]
www-data 26306  0.0  0.0   4008    12 ?        D    Nov05   0:00 ./2.6.37
www-data 26373  0.0  0.0   4008    12 ?        D    Nov05   0:00 ./n2
www-data 26378  0.0  0.0   4008    12 ?        D    Nov05   0:00 ./n2

C'est la sortie de ps axl | awk '$10 ~ /D/' pour un peu plus d'informations.

0    33 22851     1  20   0      0     0 econet D    ?          0:00 [2637.64]
1    33 26306     1  20   0   4008    12 ec_dev D    ?          0:00 ./2.6.37
1    33 26373     1  20   0   4008    12 ec_dev D    ?          0:00 ./n2
1    33 26378     1  20   0   4008    12 ec_dev D    ?          0:00 ./n2

Y a-t-il un moyen de les tuer? Le fait d'avoir des processus dans cet état lors du redémarrage cause-t-il des problèmes?

31
Dr Craig

C'est l'état redoutable non interruptible (TASK_UNINTERRUPTIBLE) d'un processus. Il s'agit de l'état où le processus ne réagit pas aux signaux jusqu'à ce que ce qu'il a commencé à attendre soit terminé. Malheureusement, c'est un mal nécessaire. Voir ici et ici Qu'est-ce qu'un processus ininterrompu? .

Ma réponse est de redémarrer le système.
Le redémarrage cause-t-il des problèmes?
Difficile à dire, peut-être que non. Le processus qui est à l'état D peut avoir à faire des mises à jour cruciales qu'il ne fera pas si vous redémarrez.
.

21
Deepthought

Non - vous ne pouvez pas les tuer, point final. kill -9 ne fonctionne pas non plus. Et ce n'est pas un bug du noyau, c'est par conception. Tous les signaux sont bloqués jusqu'à ce que ces processus quittent l'état D. Ils quittent l'état D ou le système est redémarré. Non, le redémarrage n'a aucun problème avec ces gars-là.

Les coupables habituels pour ce type de problème sont les périphériques de supports amovibles comme un cdrom. L'appareil est peut-être défectueux ou quelqu'un a trouvé un moyen de faire quelque chose de stupide.

5
jim mcnamara