Optymalizacja Apache i MySQL na Linux Xen VPS

10

Mam wirtualny prywatny serwer Xen (VPS) z systemem Ubuntu 8.10 z 128 MB pamięci RAM.

Znalazłem kilka stron „jak zoptymalizować Apache i MySQL pod kątem VPS o niskiej pamięci” za pośrednictwem Google, ale zawierają one sprzeczne informacje. Pytam więc o błąd serwera: jak zoptymalizować Apache i MySQL pod kątem konfiguracji VPS z małą ilością pamięci?


Kilka osób zasugerowało użycie nginx zamiast Apache. Przyjrzę się temu, ale wolę trzymać się Apache, jeśli to możliwe, aby uniknąć konieczności uczenia się wszystkiego o konfigurowaniu stosów aplikacji na nieznanym (dla mnie) serwerze sieciowym.

Kristopher Johnson
źródło

Odpowiedzi:

7

Nginx jest świetny, ale jeśli chcesz pozostać przy Apache, możesz go nieco zmniejszyć w stosunku do ustawień domyślnych:

  • Używaj roboczego MPM zamiast prefork (w przypadku roboczego MPM Apache nie ma już modelu „proces na połączenie”).
  • Spójrz na wszystkie współdzielone moduły, które ładujesz, pozbywaj się tych, których nie potrzebujesz.
  • Unikaj osadzania serwerów aplikacji w Apache (tj. Mod_python, mod_php itp.), Jeśli możesz tego uniknąć. Zamiast tego uruchamiaj serwery aplikacji w osobnym procesie i miej do nich serwer proxy Apache (tj. W przypadku kodu Python użyj mod_wsgi w trybie demona). W ten sposób wątki Apache, które po prostu wyświetlają zawartość statyczną, nie zostaną niepotrzebnie nadęte.
  • W konfiguracji Apache zmniejsz ustawienia StartServers, MaxClients, MinSpareThreads i MaxSpareThreads. W zależności od oczekiwanego obciążenia można czasami zmniejszyć je pięciokrotnie lub więcej w stosunku do ustawień domyślnych.
Carl Meyer
źródło
2

Jeśli masz ograniczenia pamięci, polecam użycie nginx jako alternatywy, jeśli to w ogóle możliwe. Zużywa znacznie mniej pamięci niż Apache i w zależności od potrzeb może być wszystkim, czego potrzebujesz.

Jako bonus, nginx jest zwykle znacznie szybszy niż Apache. =)

Jauder Ho
źródło
2

Porzuć Apache, jego proces na model połączenia nie będzie odtwarzany z twoim niskim VPS pamięci.

Sugeruję nginx jako zamiennik.

Dave Cheney
źródło
4
To tylko problem dla 1.3. Apache 2.x umożliwia podłączanie modułów procesowych, w tym MPM, który uruchamia wiele wątków w niewielkiej liczbie procesów. Wszystko
przestrojone
Tak, ale nginx nadal będzie procesem mniejszym
Dave Cheney
2
Tak, ale nie to powiedziałeś