Получите среднее число загрузки, исключая процессы niced

Я не уверен, что хвост-f работы метода (хотя он, вероятно, делает, если файл является текстом). Причина состоит в том, что я не знаю, как хвост-f и sftp передают и полагаются на метаинформацию.

Если sftp передает метаинформацию сначала, и хвост-f полагается на метаинформацию, чтобы сказать этому, что больше нет файла, то хвост может плохо конец с EOFs или аннулирует.

Если Вы не заботитесь о пути загрузки т.е. Компьютера о 1 загрузке на компьютер 2 загрузки на компьютер 3, то Вы могли бы попробовать главное использование bittorent вместо sftp. Это кажется тем, для именно это это было разработано.

5
01.09.2011, 18:34
2 ответа

Можно описать собственный сценарий, который использует ps перечислять все процессы в выполнении, состояния / выполнимом состояния без хорошего значения, больше, чем 0. Определенный синтаксис, который необходимо использовать, будет отличаться на основе версии ps. Что-то вроде этого может работать:

ps -eo state,nice | awk 'BEGIN {c=0} $2<=0 && $1 ~ /R/ { c++ } END {print c-2}'

Это работает ps сбор state и nice уровень всех процессов и каналов вывод к awk который устанавливает переменную количества c и инкременты он каждый раз, когда второй (хороший) столбец меньше чем или равен 0 и первый столбец, включает R (для выполнимого). После того как это сделало это, распечатывает значение c после вычитания 2. Я вычитаю 2, потому что PS и команды awk будут почти всегда считать выполнимыми на время выполнения команды. Конечным результатом будет единственное число, которое представляет количество процессов, которые были выполнимы в то время, когда сценарий выполнился, исключая себя и выполненные процессы nicely, который является по существу мгновенной нагрузкой на машине. Необходимо было бы периодически выполнять это и насчитывать его более чем 1, 5, и 15 минут для определения типичных средних чисел загрузки машины.

6
27.01.2020, 20:39
  • 1
    Спасибо за этот ответ. У меня не было шанса протестировать его все же, но я планирую к и возвращусь к Вам. –  Banjer 27.09.2011, 20:58

Мне просто нужно было что-то подобное. Мне помог ответ от мкомитее .

Но команда ps -e перечисляет только процессы. При загрузке необходимо учитывать, что у процесса может быть много параллельных потоков. Я предлагаю добавить параметр -L к вызову ps , чтобы вывести список всех потоков:

ps -eLo state,nice | awk 'BEGIN {c=0} $2<=0 && $1 ~ /R/ { c++ } END {print c-2}'
0
27.01.2020, 20:39

Теги

Похожие вопросы