Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z apache - zawieszanie
Kazaan
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 17.07.2008

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował Kazaan 17.03.2013, 00:29:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
cepa
post
Post #2





Grupa: Zarejestrowani
Postów: 125
Pomógł: 7
Dołączył: 27.01.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 06:24