У меня есть веб-сервер Centos 6 (Apache-itk, PHP, MySQL) с ISPconfig. У меня на этом сервере около 100 сайтов, все они принадлежат мне. Я должен иметь возможность отслеживать, сколько ресурсов (трафик, ЦП, ОЗУ) потребляет каждый сайт, и, возможно, способ ограничить ресурсы некоторых сайтов или отдать приоритет другим сайтам. Как лучше всего это сделать без использования виртуализации? Как общие веб-хосты управляют своими ресурсами?
редактировать:
трафик: ISPconfig показывает использование трафика (Сайты-> веб-трафик). Мне этого достаточно.
ЦП и ОЗУ от Apache: Поскольку каждый виртуальный хост apache работает под другим пользователем (MPM-itk), мне просто нужно знать, сколько каждый пользователь потребляет ресурсы сверхурочно. (Я пробовал поверх, но еще не понял, как его использовать)
ЦП и оперативная память от mysql: Это самая сложная часть! Все экземпляры mysql запускаются под пользователем mysql. Как мне отслеживать использование ресурсов mysql каждым пользователем mysql?
CloudLinux и BetterLinux кажутся очень интересными, есть ли им бесплатные альтернативы?
Использовать cgroups, cpuacct и объем памяти контроллеры в частности. Они предоставят вам подробную статистику использования ресурсов. Однако вам может потребоваться скорректировать настройку, чтобы ваши процессы были привязаны к соответствующим группам управления (поскольку ваши сайты работают под разными системными учетными записями, это не должно быть сложно реализовать).
Если использование cgroups не подходит, вы также можете установить psacct упаковка и использование sa -m
команда (предварительно включите учет с помощью accton
). Однако этот метод учитывает только завершенные процессы. С другой стороны, это не потребует каких-либо изменений в вашей системе, кроме настройки пакета и включения учета.
Это самый сложный. Поскольку все ваши сайты обслуживаются одним экземпляром MySQL (если я вас правильно понимаю), вы не можете полагаться на статистику по процессам / пользователям, как описано выше. Тем не менее некоторые решения существуют: оба MariaDB и Сервер Percona можно использовать как замену традиционному MySQL. Либо продукты включают статистику пользователей: в MariaDB и в Percona Server. Эта статистика может дать вам краткий обзор того, как ваши базы данных используются разными пользователями.
Также не стоит игнорировать традиционные подходы:
show full processlist
) когда вы замечаете, что производительность вашей базы данных перегружена;mysqldumpslow
скрипт (он включен в дистрибутив MySQL) на регулярной основе.