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

Как я могу устранить проблемы с медленным Apache?

Я запускаю apache2 (2.2) в Ubuntu на VPS с 768 МБ ОЗУ. Почему-то загрузка любой страницы (даже статического html) занимает несколько секунд. Единственный компонент, который я могу винить, - это Apache. Однако я понятия не имею, почему это так. Я даже установил NewRelic, чтобы посмотреть, может ли это помочь мне диагностировать проблему в более наглядном и понятном формате. Я вижу, что apache2 использует около 400 МБ ОЗУ, что кажется много, но общий объем все еще значительно ниже 100%. Я все еще не понимаю, в чем настоящая проблема и как ее правильно диагностировать.

Использование памяти согласно верхнему (по запросу ответчика):

Mem:    768848k total,   753380k used,    15468k free,    39792k buffers
Swap:   262140k total,    92696k used,   169444k free,   432888k cached

Результаты для "free -m":

             total       used       free     shared    buffers     cached
Mem:           750        733         17          0         35        414
-/+ buffers/cache:        282        467
Swap:          255         90        165
  1. Установите mod_status и предоставьте доступ к URL-адресу /server_status для вашего IP - чтобы вы могли видеть, что именно делает Apache - возможно, кто-то забивает ваш сервер запросами
  2. Посмотрите на pstree, чтобы убедиться, что общее количество процессов apache ниже 250 - 250 - это магический предел
  3. Обзор error.log и access.log
  4. Использовать top и введите "C" или "M", чтобы получить подробное представление о том, что делает ваша система.

возможно, ваш apache вызывает подкачку - посмотрите вверху, сколько памяти он использует.

если вы обслуживаете только статический контент - пропустите диагностику проблем с apache и замените его на nginx, mathopd или lighttpd. они обеспечат гораздо лучшую производительность при меньшем объеме памяти.

если вы обслуживаете как статический, так и динамический контент - вы все равно можете запускать apache на другом IP-адресе или другом порту и использовать nginx в качестве обратного прокси для динамических частей, одновременно обслуживая статические активы непосредственно из nginx.