Я регулярно вижу высокую среднюю нагрузку на одном из моих сайтов. У меня есть настройки предупреждений, но не очевидно, что вызывает высокую нагрузку, поэтому я хотел бы зафиксировать состояние системы, когда предупреждение сработает.
Какой хороший способ собрать соответствующую информацию, чтобы я мог постфактум определить причину нагрузки?
Это linux / ubuntu, apache, mod_python / django, mysql.
Мне нравится использовать программу под названием поверх. http://www.atoptool.nl/ Подобно верхнему, но он также делает снимки верхнего окна через определенные пользователем интервалы. Устанавливать INTERVAL=60
в /etc/atop/atop.daily
чтобы получить моментальные снимки за 1 минуту. Бегать atop -r /var/log/atop/atop_20100214
для просмотра 1-минутных интервалов для определенной даты. Использовать т и Т клавиши для просмотра вперед и назад во времени. Эти пути к файлам предназначены для CentOS, ваши могут немного отличаться.
Если в Ubuntu есть sar, то он может фиксировать использование системного диска, активность виртуальной машины и т. Д. После настройки компьютера для сбора данных вы можете запускать отчеты как для занятого, так и для незанятого времени, чтобы сравнить активность. У Apache есть mod_status, а у mysql есть некоторые инструменты статистики, вы, вероятно, могли бы периодически получать что-то от них через cron.
NewRelic имеет отличные инструменты для отслеживания причин загрузки сервера. И с точки зрения приложения, и с точки зрения сервера.
Мониторинг приложений такие как медленные запросы SQL, частота ошибок и т. д.
Мониторинг сервера такие показатели, как загрузка сети / диска / ОЗУ / ЦП
Мониторинг пользователей например, производительность по страницам, местоположению, браузеру; и разбивка времени загрузки между приложением, сетью, DOM и рендерингом.
Мы используем его здесь уже почти 12 месяцев, и это бесценно. И вы получаете бесплатную рубашку.