Как измерить нагрузку на веб-сервер (LAMP), создаваемую каждым отдельным сайтом?

Здравствуйте. Есть более или менее стандартный LAMP-сервер на Ubuntu Server, на котором крутится десяток сайтов.


Каждый сайт живёт как отдельный виртуальный хост Apache2 с модулем php5, Apache работает от одного юзера www-data. MySQL-база у каждого сайта отдельная и доступ к ней сделан через отдельного MySQL-юзера.


Вопрос к знатокам: каким образом померить моментальную (или за небольшой период) нагрузку, создаваемую каждым сайтом (понять сколько памяти, процессора, а может быть даже и диска он съедает)?
  • Вопрос задан
  • 5366 просмотров
Решения вопроса 1
Dzuba
@Dzuba
Варианты:
1. apachetop
2. Поставить nginx на фронтенд, заставить писать в логи $upstream_response_time и небольшим скриптом парсить хвост лога.
3. Статья.
4. Банальный путь: поставить mpm-itk, разделить сайты, дав каждому своего системного юзера. Созерцать top.
5. Для mysql: mytop.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 7
SEObomj
@SEObomj
Отключить остальные =) В идеале отключить все сайты и посмотреть, сколько ресурсов съедается на холостых, а потом включить нужный сайт. На все про все уйдет минут 10 (возможно дольше, если хотите более точные результаты). Еще можно задействовать loadimpact.com/
Ответ написан
Комментировать
SergeyGerasimov
@SergeyGerasimov
munin-monitoring.org/ как раз дял такого и создан. Примеры статистики по разным сайтам наодном сервере: munin.ping.uio.no/
Ответ написан
merlin-vrn
@merlin-vrn
mpm-itk + acct (встроенный аккаунтинг) учтёт нагрузку от вебсервера и интерпретатора (если это mod_*), но не учтёт нагрузку от БД, которая во всех случаях крутится от имени mysql.

Если вам нужно найти виновного, то этот вариант — идеально подходит.
Ответ написан
Комментировать
akuklev
@akuklev
По крайней мере, частично эти задачи можно решить при помощи Apache2::Profiler.
Ответ написан
Комментировать
holyorb2
@holyorb2
никак в том виде что вы написали
по статистике нужно выяснить теоретически кто может грузить сервер и их перенести на VPS (как вариант что бы отделить нагрузку) и далее мерять нагрузку от отдельного сайта
Ответ написан
@bondbig
Парсить вывод server-status
Ответ написан
charon
@charon
когда я работал в суппорте провайдера, то у нас разные виртуальные хосты работали от разных пользователей. И тогда нагрузку можно считать по пользователям
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы