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

Ядро Linux и проблема производительности apache 2.2 на двух разных веб-серверах

У меня есть 2 apache с веб-серверами mod_php за балансировщиком нагрузки, ОС - CentOS 6.x. Они должны быть ИДЕНТИЧНЫМИ. Предполагается, что они будут получать примерно одинаковые запросы с использованием циклического перебора. Один из них выступал намного хуже другого.

Мне почему-то казалось, что он получает больше запросов:

  1. Это не относится к делу.
  2. Запросы были примерно одинаковыми URL-адресами и примерно одинаковым количеством запросов примерно в одно и то же время. Тем не менее, производительность хуже.
  3. Что ж, я решил помочь серверу, пока нашел решение. поэтому я перенастраиваю балансировщик нагрузки.
  4. Мое изменение конфигурации балансировщика нагрузки заключалось в отправке запросов на сервер с меньшим количеством открытых соединений. После этого сервер стал получать меньше запросов, чем второй сервер, и производительность по-прежнему была плохой по сравнению с другим сервером. Чтобы подчеркнуть разницу, на данный момент запросы распределяются от ~ 35 до ~ 65%. В целом примерно одинаковое соотношение запросов URL.
  5. Теперь я подумал, что у нас есть другая разница в уровне пользовательского программного обеспечения между двумя серверами. Этого не было.
  6. Мы автоматически управляем конфигурациями и кодом. В PHP загружены те же модули, что и в apache. Никакой разницы между кодом.
  7. железо такое же.
  8. В качестве дополнительной информации у нас НЕТ липких сессий. Запросы случайным образом направляются на оба сервера. Мы это тоже проверили. Теперь разница после изменения конфигурации заключается в том, что сервер, на котором возникла проблема, получает гораздо меньше запросов.
  9. У серверов нет значимой разницы во времени при обработке запросов или подключении к другим компонентам, таким как БД.

Учитывая этот фон, проверьте текущие образы процессора. Сервер с проблемой: производительность процессора изображений web1 Замечание КРАСНЫЙ означает, что процессорное время системы, а не пользовательское, apache - это пользовательское пространство. Также обратите внимание, что эти изображения получены после внесения изменений, чтобы получать меньше запросов к web1 (с проблемой). Прежде, чем у нас возникнут серьезные проблемы с процессором и средней нагрузкой, тогда вот другой сервер.Производительность процессора изображений Web2. Никаких проблем с вводом-выводом, ОЗУ или другим оборудованием не обнаружено.

Это заставило меня заподозрить проблемы с ядром. top вроде говорит то же самое.Лучшая производительность изображений Web1 и Web2

Потом заметил, что в ядра почему-то загружены разные модули.

Как то другой разницы найти не могу. На самом деле мне достаточно этой информации, поскольку серверы должны быть одинаковыми. БОСС хочет, чтобы я мог связать это с реальной проблемой перед удалением модулей ядра. Я попробовал несколько вещей, включил перфоманс, но не смог. Perf (perf record -F 99 -a -g -- sleep 30) дает такой результат, но я действительно не понимаю, как его использовать и как он может помочь мне определить результаты.web1 слева и web2 справа. если вы видите, он перечисляет вызовы, которые занимают процессорное время / процент, но я действительно не знаю, что это такое.

Согласны ли вы, что это, вероятно, должно быть связано с модулями ядра? Почему да или нет?

Может ли кто-нибудь дать мне некоторое представление о том, как получить статистику использования модулей и времени / процента использования ЦП на модуль и т. Д.?

Есть еще что-нибудь, о чем я не думаю?