Когда процесс перейдет в состояние «D»?

21

Я использую "Linux hostname 2.6.28-15-generic # 49-Ubuntu SMP Tue 18 Aug 18:40:08 UTC 2009 i686 GNU / Linux"

Все клиентские машины будут использовать Thin-client, я буду использовать свой ноутбук для работы и подключу свой домашний каталог с сервера на мой ноутбук.

Если я открою firefox на моем ноутбуке, окно firefox не откроется, потому что процесс находится в состоянии «D», а все другие пользовательские машины зависают, а процесс lockd находится в состоянии «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

если я проверю системный журнал

13 июля 10:35:56 имя хоста ядро: [222583.872059] lockd: не может контролировать ноутбук

13 июля 10:35:57 имя хоста ядро: [222583.872059] lockd: не может контролировать ноутбук

ps ajx | Греп Локд

корень 9178 0,0 0,0 0 0? D <13:35 0:00 [lockd]

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

Одно и то же сообщение для всех клиентских машин.

Когда процесс перейдет в состояние «D»?

Когда процесс lockd перейдет в состояние «D»?

Какова цель процесса lockd?

ungalnanban
источник

Ответы:

16

DКод состояния означает, что процесс находится в непрерывном режиме сна, и это может означать разные вещи, но обычно это ввод / вывод. lockdвстроенный демон, управляющий блокировкой NFS. Ваша проблема действительно нуждается в большем количестве отладки, но в целом она, кажется, связана с NFS.


источник
как этого избежать? процесс lockd не должен переходить в состояние «D», что мне нужно сделать?
ungalnanban
@ungalnanban: Это невозможно, процессы всегда входят и выходят из 'D', если используются операции ввода-вывода. Таким образом, в вашем случае процесс пытается, например, прочитать или записать некоторые данные, получить блокировку, не может этого сделать и продолжает ждать. Вы должны отладить то, что он ожидает, и т. Д. Я не эксперт по NFS, чтобы сказать это, извините.
15

Это означает «непрерывный сон» .

D    Uninterruptible sleep (usually IO)

В этом состоянии процесс не сразу просыпается для обработки сигналов. При использовании устройства I/Oэто единственный путь (в противном случае может произойти повреждение данных).

Сообщество
источник