Как просмотреть исторические показатели использования по каждому процессу?

Как просмотреть исторические показатели использования по каждому процессу?

Моя первая склонность здесь была бы чем-то встроенным в SAR или пакет sysstat в целом. Однако, если это действительно так, я не могу найти это решение.

Что я хотел бы увидеть, и, безусловно, желательно через sysstat, если это возможно, так это исторический журнал использования процесса (памяти, ЦП и т. д.) во многом в том же формате, что и журналы SAR (если он еще не доступен напрямую через файлы SAR). Я знаю, что программное обеспечение для мониторинга доступно, но я больше ищу в основном неинтрузивный пакет и на самом деле что-то, что можно было бы анализировать относительно интуитивно через statsd/collectd.

решение1

Запустите команду sar как фоновый процесс. Синтаксис для этого:

sar -o datafile interval count >/dev/null 2>&1 &

Все данные собираются в двоичной форме и сохраняются в файл (файл данных). Затем данные можно выборочно отображать с помощью команды sar с использованием параметра -f. Установите параметры интервала и количества, чтобы выбрать записи количества с интервалом в секунды. Если параметр количества не установлен, будут выбраны все записи, сохраненные в файле. Сбор данных таким образом полезен для характеристики использования системы за определенный период времени и определения часов пикового использования.

решение2

Вы можете использовать простой цикл while, который каждые 5 минут выводит данные об использовании ресурсов основными процессами.

while true; do
  date;
  ps -eo pid,ppid,cmd,%mem,%cpu --sort=-pcpu | head;
  echo;
  sleep 300;
done

Вышеуказанное выведет 9 лучших процессов, которые используют больше всего процессора. Чтобы получить 9 лучших процессов, которые используют больше всего памяти, используйте:

while true; do
  date;
  ps -eo pid,ppid,cmd,%mem,%cpu --sort=-pmem | head;
  echo;
  sleep 300;
done

Пример

Следующий пример вывода показывает, что Apache, несомненно, является нашим самым ресурсоемким процессом.

Sun Jan 28 23:46:28 UTC 2024
  PID  PPID CMD                         %MEM %CPU
25130 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.7
12878 11432 /usr/sbin/httpd -DFOREGROUN  0.2  2.5
23903 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.4
  898 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
  902 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
  910 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
 8397 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
 9263 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
23911 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2

Sun Jan 28 23:51:28 UTC 2024
  PID  PPID CMD                         %MEM %CPU
25130 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.6
12878 11432 /usr/sbin/httpd -DFOREGROUN  0.2  2.4
23903 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.4
  898 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
  902 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
  910 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
 8397 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
 9263 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2
23911 11432 /usr/sbin/httpd -DFOREGROUN  0.1  2.2

Ограничения

Очевидно, это отстой, потому что это скажет вам толькомгновенныйиспользование ресурсов в момент выполнения команды (каждые 5 минут).

В идеале он должен показывать среднее использование ресурсов за периодинтервалвремени между выходами. Но, учитывая, что этот ответ открыт уже 7 лет и нет хорошего ответа — это лучше, чем ничего.

Оставьте его включенным на ночь screen, и к утру у вас будет более глубокое понимание (с минимальными усилиями).

Связанный контент