Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z apache - zawieszanie
Forum PHP.pl > Forum > Serwery WWW
Kazaan
Witam
Mam portal na ktorym po pewnej akcji wszyscy nagle wychodzą na inną podstrone, i ten moment jest dla serwera bolesny, przy 100 osobach na raz czesto bywa ze apache totalnie sie zawiesza, probowalem różnych konfiguracji i dalej nic :/
może ktos z Was zauwazy blad w php.ini :
Cytat
<IfModule mpm_prefork_module>
StartServers 700
MinSpareServers 500
MaxSpareServers 800
ServerLimit 8000
MaxClients 8000
MaxRequestsPerChild 300
</IfModule>


konfiguracja dedyka:

Technologia Sandy Bridge E
Procesor Intel Xeon E5-1620
Intel Smart Cache: 10MB
Rdzenie 4
Wątki 8
Zegar 3.6GHz
Turbo Boost 3.8GHz
Wirtualizacja tak
Pamięć RAM 64 GB DDR3 ECC
Dysk twardy Intel SSD 320
2x 120GB SSD

Ruch na stronie dochodzi do 1500 osob online, najlepsze ze na 4x slabszym dedyku z praktycznie defaultowym apache nie bylo problemu nawet z 4k online, a tu takie klocki :/ Jesli ktos ma jakis pomysł bede wdzieczny za rady smile.gif
cepa
Apache z mod php na prefork dziala w ten sposob ze kazdy request tworzy "kopie" php w systemie ktora zajmuje duzo pamieci przez co przy zbyt duzej liczbie uzytkownikow bardzo szybko skoncza sie zasoby na serwerze.

Na szybko mozesz sprobowac zwiekszyc limity dla procesow w serwerze:

nano /etc/security/limits.conf
Kod
root        hard    nofile    40000
root        soft    nofile    40000
www-data    hard    nofile    40000
www-data    soft    nofile    40000


nano /etc/sysctl.conf
Kod
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 16384 16777216
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_congestion_control = cubic


Do tego przydalby sie jakis cache, zarowno dla php (php-apc) jak i dla samego http (varnish).

Jeżeli powyzsze nie pomoze, to polecam przejscie na Nginx z PHP-FPM, podstawowa roznica to to, ze odgornie ustalasz ile "php" mozna uruchomic naraz i dzieki temu masz pewnosc ze serwer nie dostanie zadyszki.
Z takiej konfiguracji spokojnie wyciagniesz ponad tysiac requestow na sekunde z aplikacji PHP. Wiecej na: http://lukasz.cepowski.com/devlog/43,high-...inx-and-php-fpm
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.