Ваш вопрос:Как в этом случае рассчитывается средняя нагрузка?
Ответ:эти три цифры представляют собой экспоненциально -затухающие скользящие средние различных временных рядов (1, 5 и 15 минут ). Этот расчет основан на процессах, размещенных в очередях процессоров, а не на реальной загрузке процессора, которую все привыкли видеть в процентах (, как в Windows )
.
Но я думаю, что это не тот ответ, который вы хотите увидеть, чтобы понять, что происходит в вашей системе в текущий момент времени.
Средняя нагрузка отражает «системную» нагрузку, учитывающую загрузку ЦП и ожидание операций ввода-вывода. И это самый распространенный параметр, с которого нужно начинать устранение проблем с производительностью. Используйте разные метрики (загрузку диска )и инструменты (, например. iostat из пакета sysstat )для анализа производительности системы.
И Второй ответ на ваш вопрос:
для расчета использования ЦП
grep 'cpu ' /proc/stat | awk '{usage=100-($5*100)/($2+$3+$4+$5+$6+$7+$8)} END {print usage}'
Смотрите тему и читайте статью .
И я настоятельно рекомендую использовать системы мониторинга (, например. Zabbix с )по
Если это список, вы можете прочитать список, если это каталог, вы можете просмотреть файлы.
while read -r file; do
grep -q PATTERN "$file" && echo "$file contains PATTERN"
done < file.txt
Вы можете добавить шаблон as may и вызов grep или использовать оператор if.
for file in./*; do
grep -q PATTERN "$file" && echo "$file contains PATTERN"
done
Вы можете добавить тест, чтобы вы искали только файлы, и добавить больше grep или использовать оператор if внутри цикла. Этот цикл не является рекурсивным, вам нужно использовать подстановку оболочки, например globstar и, возможно, nullglob . Утилита find на самом деле может сделать это быстрее. Конечно, для приведенного выше решения требуется, чтобы вы находились внутри каталога, в котором находятся файлы.
Как указал @steeldriver, вариант -l
для grep
является кратчайшим решением:
grep -l Pattern Directory
выведет каждый файл, содержащий данный Pattern
.