Оптимизация Apache и MySQL в Linux Xen VPS

10

У меня есть виртуальный частный сервер (VPS) Xen под управлением Ubuntu 8.10 с 128 МБ ОЗУ.

Я нашел несколько страниц «Как оптимизировать Apache и MySQL для VPS с низким объемом памяти» через Google, но они предоставляют противоречивую информацию. Поэтому я спрашиваю Server Fault: как оптимизировать Apache и MySQL для конфигурации VPS с низким объемом памяти?


Несколько человек предложили использовать nginx вместо Apache. Я рассмотрю это, но я бы предпочел придерживаться Apache, если это возможно, просто чтобы избежать необходимости изучать все настройки стеков приложений поверх незнакомого (для меня) веб-сервера.

Кристофер Джонсон
источник

Ответы:

7

Nginx великолепен, но если вы хотите придерживаться Apache, его можно немного уменьшить по сравнению с настройками по умолчанию:

  • Используйте рабочий MPM, а не prefork (с рабочим MPM у Apache больше нет модели «процесс на соединение»).
  • Посмотрите на все общие модули, которые вы загружаете, избавьтесь от любых ненужных вам модулей.
  • Избегайте встраивания серверов приложений в Apache (то есть mod_python, mod_php и т. Д.), Если вы можете избежать этого. Вместо этого запускайте серверы приложений в отдельном процессе и используйте для них прокси-сервер Apache (т.е. для кода Python используйте mod_wsgi в режиме демона). Таким образом, ваши потоки Apache, которые просто обслуживают статический контент, не будут излишне раздуты.
  • В настройках Apache уменьшите параметры StartServers, MaxClients, MinSpareThreads и MaxSpareThreads. В зависимости от ожидаемой нагрузки вы можете иногда уменьшить их в пять или более раз по сравнению с настройками по умолчанию.
Карл Мейер
источник
2

Если у вас есть ограничения памяти, я бы порекомендовал использовать nginx в качестве альтернативы, если это вообще возможно. Он потребляет гораздо меньше памяти, чем Apache, и в зависимости от ваших потребностей может быть все, что вам нужно.

В качестве бонуса, nginx имеет тенденцию быть значительно быстрее, чем Apache. знак равно

Джодер Хо
источник
2

Ditch apache, процесс для каждой модели подключения не будет работать с вашим VPS с низким объемом памяти.

Я предлагаю nginx в качестве замены.

Дейв Чейни
источник
4
Это только проблема для 1.3. apache 2.x поддерживает подключаемые модули процессов, включая MPM, который запускает множество потоков в небольшом количестве процессов. Все настраивается по вкусу
Vagnerr
Да, но nginx все равно будет меньшим процессом
Дейв Чейни
2
Да, но это не то, что вы сказали