Как показать текущий список процессов и потоков, находящихся в очереди на выполнение?
То есть, если средняя загрузка моего сервера составляет 32,1, то в среднем было около 32 процессов или потоков, готовых к запуску в любой момент времени за последние несколько минут. Хотелось бы узнать, что это такое.
Что-то вроде ps axHr
должен работать, но на сервере со средней нагрузкой в диапазоне 80 он показывает только 3 или 4 элемента.
Лучшее, что я придумал, это ps axH | grep -v " S"
, но это кажется неуклюжим и хрупким, и даже не совсем правильно.
ps -A -o pid,state,command | awk '{ if ($2 == "R") print }'
1605 R /usr/bin/skype
30655 R ps -A -o pid,state,command
или используйте htop и отсортируйте (F6) по "S"
или для устранения проблем с высокими значениями нагрузки:
while [ 1 ] ; do ps -A -o pid,state,command | \
awk '{ if ($2 != "S") print }' | \
grep -v "ps -A -o pid,state,command" ; sleep 3 ; done
Вы можете добавить часы в командную строку:
watch -n 1 "(ps aux | awk '\$8 ~ /D/ || \$8 ~ /R/ { print \$0 }')"