У меня есть потенциальный клиент, у которого есть php-сайт, который большую часть времени работает нормально. Однако примерно раз в неделю будет происходить задержка (медленная загрузка страницы). Я уверен, что существует множество причин, которые могут вызвать это (проблемы с сетью, неправильная установка, определенный файл php, повышенная нагрузка трафика). Однако мне нужен способ выяснить, что это вызывает. Есть ли какое-нибудь программное обеспечение для мониторинга серверов, специально разработанное для таких ситуаций?
PS: Сервер Linux
Я бы узнал следующее:
Если замедление всегда происходит в пятницу во время выхода, и приложение используется для ввода пользователями данных своих табелей учета рабочего времени за неделю, возможно, серверу просто требуется больше ЦП / памяти и / или пропускной способности, чтобы принять на себя нагрузку всех последних. минутные пользователи. Достаточно сказать, что эти типы шаблонов будет сложно отследить, не зная тонкостей приложения, его пользователей и способов использования.
Чтобы рекомендовать инструменты, нам нужно знать, на какой ОС работает ваше приложение? Windows / IIS, Linux / Apache? Однако, по моему неофициальному опыту, замедление работы сайта вызвано одной из следующих причин:
SELECT * FROM TableXYZ
Чаще всего проверять (на предмет проблем, связанных с производительностью):
Для нас, работающих в среде MSSQL, включение опции Auto-Grow DB на загруженном сервере БД также может вызвать случайное замедление. Во время автоматического увеличения дисковый ввод-вывод очень тяжелый, так как файл расширяется, поэтому любые транзакции в реальном времени, происходящие в течение этого времени, будут заметно медленнее, особенно если этот сервер уже работает на предельных значениях ввода-вывода.
Чтобы решить эту проблему, мы просто увеличили объем автоматического увеличения БД в МБ до смехотворно большого числа, так что теперь это происходит только раз в год. Все еще замедление, но теперь это происходит не каждую неделю.
Действительно отличный маленький инструмент для системного мониторинга (либо специального в командной строке, либо для отслеживания тенденций, если вы настроили его для работы в фоновом режиме и регистрации данных) - это dstat. Это лучший инструмент для командной строки, который я нашел.
Одно из преимуществ состоит в том, что его единственная зависимость - от Python, поэтому вы можете запускать его прямо из дома в системе, к которой у вас ограниченный доступ, и для большинства функций не требуется root.
Вот любимый псевдоним, который дает вам информацию об использовании основных компонентов (и наиболее часто используемых процессов) каждую секунду в реальном времени:
> which dstat-long dstat-long dstat -cdngm --top-cpu --top-mem
Как измерить замедление? Вы используете внешние инструменты веб-мониторинга, такие как keynote или alertfox? Это было бы полезно сравнить с внутренними журналами.
У вас есть доступ к оболочке?
Установлен ли sysstat?
Если у вас есть доступ к оболочке, убедитесь, что sysstat установлен и включен. Подождите около часа, пока он соберет данные, и введите в командной строке "sar" от имени пользователя root. Если вы видите данные - отлично. А теперь оставь это. А пока прочтите руководства по sysstat или sar. Когда вы снова увидите задержку, подключитесь, запустите sar, посмотрите, что именно и когда тормозит. Увидев, когда именно и чего не хватает (ЦП / память / ввод-вывод / сеть), вы сможете лучше понять, на что смотреть.