Назад | Перейти на главную страницу

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

Меня просят исследовать предупреждение о высокой загрузке ЦП, которое произошло сегодня утром. я использовал sar -p и увидел высокую загрузку ЦП в то время

Далее я использовал ps -eo pcpu,pid,user,args | sort -r -k1 | less чтобы составить список 10 самых требовательных к памяти в этот час

Теперь как мне узнать, какие процессы вызвали «узкое место» в это конкретное время утром. Я разработчик java, а не специалист по Linux.

Это вообще возможно?

Есть несколько вариантов:

  1. используйте сценарий, который регулярно записывает необходимые данные в файл журнала. Вы можете использовать cron для записи вывода ps (и других команд) каждые x минут в файл журнала.
  2. Лучше было бы использовать специализированную программу, которая сделает это за вас. atop очень хорош в этом, поскольку он заботится о сохранении лог-файлов.

atop доступен через репозиторий EPEL для CentOS / RHEL / Fedora и через репозитории Debian / Ubuntu по умолчанию.

Вы можете использовать поверх, как обычную верхнюю утилиту в реальном времени, с немного другим поведением (см. Справочную страницу о нажатии клавиш).

Более интересная часть: после установки демон начинает регистрировать данные в / var / log / atop, и вы можете снова читать эти файлы с помощью atop:

atop -r /var/log/atop/atop_20160128

После этого у вас будет доступ ко всем функциям типа «top» (сортировка / просмотр использования памяти / ЦП / ввода-вывода и т. Д.), И вы можете перейти на 10 минут вперед по времени с помощью «t» и на 10 минут назад с помощью «T» или перейти на определенное время через 'b'.

Посмотрите верхнюю страницу руководства, и у Google есть много советов по этому поводу.

Могут быть и другие решения, но поверх его легко понять и использовать, и это хорошее начало, прежде чем делать еще несколько индивидуальных настроек.