В * nix, что вызывает «спящий» режим в верхней команде?

Что вызывает этиsleeping процессы, которые я вижу вtop? Если бы я назвал PHPsleep() функция, это добавит кsleeping рассчитывать я вижу вtop? Есть ли недостатки в том, чтобы иметь большое количество вsleeping?

 some04 окт. 2010 г., 11:06
Процессы спят, потому что им нечего делать в данный момент.

Ответы на вопрос(4)

прямо сейчас, Это не обязательно плохо.

Если у вас огромное количество (например, 10 000 в серверной системе) процессов, находящихся в спящем режиме, объем памяти и т. Д., Используемый для их отслеживания, может сделать систему менее эффективной для процессов, которые не спят.

В противном случае это нормально.

В большинстве обычных серверных систем большую часть времени проводят от 100 до 1000; это не имеет большого значения.

То, что они сейчас ничего не делают, не означает, что они не будут, очень скоро. Хранение их в памяти, готово, уменьшает задержки, когда они необходимы.

когда:

Это делает операцию ввода / вывода (блокировка для ввода / вывода)
Когда вы приказываете спать по сну ()

Статус любого процесса может быть:

Готов: когда он готов к выполнению и находится в очереди, ожидая вызова процессора с определенным приоритетомСпящий режим: когда он был запущен и был заблокирован для операции ввода-вывода или при выполнении режима сна ()Выполнение: когда процессор выполняет процесс, он становится запущенным.

Статус Значение

R Runnable

Т остановлен

P Ожидание на Pagein

D Ожидание ввода / вывода

S спать <20 секунд

Я бездействую - сплю> 20 секунд

Z Zombie или несуществующий

Решение Вопроса

когда он заблокирован, ожидая чего-то. Например, это могло бы вызватьread() и ожидает поступления данных из сетевого потока.

sleep() это действительно один из способов, чтобы ваш процесс поспал некоторое время. Спящий режим, однако, является нормальным состоянием всех процессов, кроме сильно связанных с вычислениями. Спящий режим - это, по сути, процесс, который больше ничего не делает. Это нормальное положение вещей, когда большинство ваших процессов спят - если этоне В этом случае это указывает на то, что вам нужно больше мощности процессора.

S состояние означает, что процесс ожидает на таймере или медленном устройстве, в то время какD состояние означает, что оно ожидает на быстром устройстве.

То, что представляет собой быстрое устройство по сравнению с медленным устройством, не очень хорошо определено, но, как правило, все последовательные, сетевые и оконечные устройства являются медленными устройствами, а диски - быстрыми устройствами.

Ваш ответ на вопрос