<div dir="ltr">Tohle jsem řešil nedávno taky. Uprav počet pm.max_requests na cca 10x až 100x vyšší číslo, nebo ho nastav na nulu pokud víš, že ti v aplikaci neleakuje paměť. Fpm se chová tak, že po splnění limitu requestů ten child zabije, ale nginx se na něj zkusí stejně připojit a skončí to touhle chybou.<div><br></div><div>Tomáš</div><br><div class="gmail_quote"><div dir="ltr">st 2. 12. 2015 v 11:21 odesílatel <<a href="mailto:skrivy@skrivy.net" target="_blank">skrivy@skrivy.net</a>> napsal:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">To je jako zavolat doktorovi, ze ti je spatne. :) Na to neni obecna odpoved. Vsechny aplikace jsou jine a potrebuji trochu neco jineho.</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;font-family:'NokiaPureTextLight'"><br></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Jak uz bylo zmineno - opcode cache, vyhnout se zamkum na memcache, atd. S temi procesy bych byl opatrny - php casto ceka na vnejsi zdroje, takze se jich tam da spustit vic.</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;font-family:'NokiaPureTextLight'"><br></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Monitoring delam by default scenarem v zabbixu, aby byla nejaka dlouhodoba data + samozrejne nginx server status a php status.</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;font-family:'NokiaPureTextLight'"><br></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">U problemovych webu sbirame i data z aplikacni urovne - tzn. jak dlouho trvaji volani do ..., sql dotazy, http kody a vsechno to sypu do grafu, abych videl dlouhodobe zmeny.</span></p></div></div><div style="word-wrap:break-word"><div>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">--</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Sent from my Nokia N9</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p></div></div><div style="word-wrap:break-word"><br><div><p>On 02.12.2015 11:03 Zlatko Fedor wrote:<br></p></div><div><div>Velmi rad pocujem ze niekomu to funguje spravne. </div><div>Vies prosim napisat viac informacii pripadne prilozit svoj config?</div><div>Rad si aspon spatne precitam co som robil zle.</div><div><br></div><div>Nasledujucu otazku si prosim neber osobne:</div><div>Monitoruju tvoje weby uplne kazdy vypadok a chybu alebo sa len spoliehas na to ze to ide ked napises stranku do browsera pripadne na pingdom ktoremu vela veci ujde.</div><div><br></div><div>Dakujem za odpoved</div><div><br></div><div><br></div><br><div><blockquote type="cite"><div>On 02 Dec 2015, at 10:36, <a href="mailto:skrivy@skrivy.net" target="_blank">skrivy@skrivy.net</a> wrote:</div><br><div><div style="word-wrap:break-word"><div><div style="margin:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Proti tomu se musim ohradit.</span></div><div style="margin:0px;text-indent:0px;font-family:NokiaPureTextLight"><br></div><div style="margin:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Hostuju weby z alexa 15 000 a se spravnou konfiguraci a slusne napsanou aplikaci s tim neni jedinej problem.</span></div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p><div style="margin:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">--</span></div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p><div style="margin:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'">Sent from my Nokia N9</span></div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="font-family:'NokiaPureTextLight'"> </span></p></div><br><div><p>On 02.12.2015 10:23 Zlatko Fedor wrote:<br></p></div><div>Ahoj.<div><br></div><div>Pred par mesiacmi som mal podobny problem.</div><div>Skusil som naozaj vsetko. Milion nastaveni no stale to robilo to iste s mensim alebo vecsim opakovanim.</div><div>Skusal som unix sockery, tcp sokety, rozne cache, dynamic/static childs proste setko co som nasiel. Precital som celu dokumentaciu takze som presne vedel co robim.</div><div>Po pol roku som to vzdal a prepisal vsetko do node.js. Podla mojho nazoru je PHP-FPM uplne zabagovane.</div><div>Predtym som pouzival apache s php a nemal som jediny problem. Ale asi ako ty aj ja som narazil vtedy na jeho limity.</div><div><br></div><div>Viem ze som ti asi nepomohol len ta chcem pripravit aj na moznost ze PHP FPM nieje kvalitny softver.</div><div><br></div><div>S pozdravom </div><div>Zlatko Fedor</div><div><br><div><blockquote type="cite"><div>On 02 Dec 2015, at 09:56, Branislav Viest <<a href="mailto:info@branoviest.com" target="_blank">info@branoviest.com</a>> wrote:</div><br><div><div><div style="font-family:arial,helvetica,sans-serif;font-size:12pt"><div>tohle je vytezek z php-fpm logu<br></div><div><br></div><div>[02-Dec-2015 09:54:39.867720] WARNING: pid 5043, fpm_request_check_timed_out(), line 269: [pool web1] child 24945, script 'xxxwww//index.php' (request: "GET /index.php") executing too slow (5.799737 sec), logging # to je jasny<br>[02-Dec-2015 09:54:39.867981] DEBUG: pid 5043, fpm_got_signal(), line 76: received SIGCHLD<br>[02-Dec-2015 09:54:39.868499] NOTICE: pid 5043, fpm_children_bury(), line 227: child 24945 stopped for tracing<br>[02-Dec-2015 09:54:39.868508] NOTICE: pid 5043, fpm_php_trace(), line 144: about to trace 24945<br>[02-Dec-2015 09:54:39.868731] NOTICE: pid 5043, fpm_php_trace(), line 172: finished trace of 24945<br>[02-Dec-2015 09:54:39.869145] NOTICE: pid 5043, fpm_children_bury(), line 227: child 28359 stopped for tracing<br>[02-Dec-2015 09:54:39.869161] NOTICE: pid 5043, fpm_php_trace(), line 144: about to trace 28359<br>[02-Dec-2015 09:54:39.869415] NOTICE: pid 5043, fpm_php_trace(), line 172: finished trace of 28359<br>[02-Dec-2015 09:54:39.869893] NOTICE: pid 5043, fpm_children_bury(), line 227: child 33445 stopped for tracing<br>[02-Dec-2015 09:54:39.869904] NOTICE: pid 5043, fpm_php_trace(), line 144: about to trace 33445<br>[02-Dec-2015 09:54:39.870101] NOTICE: pid 5043, fpm_php_trace(), line 172: finished trace of 33445<br>[02-Dec-2015 09:54:39.870602] NOTICE: pid 5043, fpm_children_bury(), line 227: child 36581 stopped for tracing<br>[02-Dec-2015 09:54:39.870615] NOTICE: pid 5043, fpm_php_trace(), line 144: about to trace 36581<br>[02-Dec-2015 09:54:39.870884] NOTICE: pid 5043, fpm_php_trace(), line 172: finished trace of 36581<br>[02-Dec-2015 09:54:39.871187] NOTICE: pid 5043, fpm_children_bury(), line 227: child 37001 stopped for tracing<br>[02-Dec-2015 09:54:39.871195] NOTICE: pid 5043, fpm_php_trace(), line 144: about to trace 37001<br>[02-Dec-2015 09:54:39.871460] NOTICE: pid 5043, fpm_php_trace(), line 172: finished trace of 37001<br>[02-Dec-2015 09:54:39.872162] DEBUG: pid 5043, fpm_got_signal(), line 76: received SIGCHLD<br>[02-Dec-2015 09:54:39.872582] DEBUG: pid 5043, fpm_got_signal(), line 76: received SIGCHLD<br>[02-Dec-2015 09:54:39.872950] DEBUG: pid 5043, fpm_got_signal(), line 76: received SIGCHLD<br>[02-Dec-2015 09:54:39.873295] DEBUG: pid 5043, fpm_got_signal(), line 76: received SIGCHLD<br>[02-Dec-2015 09:54:39.873616] DEBUG: pid 5043, fpm_event_loop(), line 424: event module triggered 1 events<br></div><div><br></div><div>S pozdravem<br>Branislav Viest<br><br></div><br><hr><div><b>Od: </b>"Věroslav Kaplan" <<a href="mailto:veros.kaplan@gmail.com" target="_blank">veros.kaplan@gmail.com</a>><br><b>Komu: </b>"vpsFree.cz Community list" <<a href="mailto:community-list@lists.vpsfree.cz" target="_blank">community-list@lists.vpsfree.cz</a>><br><b>Odoslané: </b>streda, 2. december 2015 9:48:22<br><b>Predmet: </b>{Disarmed} [vpsFree.cz: community-list] {Disarmed} Re: php pro nginx high load<br></div><br><div><div dir="ltr"><div class="gmail_default" style="font-size:small">Ahoj,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Tohle vypadá, že PHP-FPM z nějakého důvodu zavře to fcgi spojení. Dokážeš vytáhnout nějaké podezřelé logy z toho PHP-FPM a zkusit uhodnout, proč to dělá ?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">--Věroš Kaplan</div><div class="gmail_default" style="font-size:small"><a href="http://veroskaplan.cz/" target="_blank">http://veroskaplan.cz/</a></div><div class="gmail_default" style="font-size:small">Školíme Ansible: <a href="http://ansible.cz/" target="_blank">http://ansible.cz/</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-12-02 8:25 GMT+01:00 Branislav Viest <span dir="ltr"><<a href="mailto:info@branoviest.com" target="_blank">info@branoviest.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-family:arial,helvetica,sans-serif;font-size:12pt"><div>Ahoj,</div><br><div>mám tady jeden server kde je cca 35k lidí za vteřinu. Běží tu nginx + php fpm a mysql db. V nginxu jsem rozjel microcache, což hodně ulevilo zátěži serveru. Nicméně, mám problém s PHPkem. FPM běží přes TCP (zkoušel jsem i unix socket nicméně bylo to pomalější a docházelo ke stejnému problému). Dle error logu dochází k těmto chybám:</div><br><div>2015/12/01 23:26:56 [error] 27043#0: *122476 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 188.114.98.51, server: xxx request: "GET /xxx/xxxx/xxx HTTP/1.1", upstream: "fastcgi://<a href="http://127.0.0.1:9000/" target="_blank"><span style="color:red"><b>MailScanner has detected a possible fraud attempt from "127.0.0.1:9000" claiming to be</b></span> <span style="color:red"><b>MailScanner warning: numerical links are often malicious:</b></span> 127.0.0.1:9000</a>", host: "xxxx", referrer: "<a href="http://xxxxx/" target="_blank"><span style="color:red"><b>MailScanner has detected a possible fraud attempt from "xxxxx" claiming to be</b></span> http://xxxxx</a>"<br>2015/12/01 23:26:56 [error] 27032#0: *124368 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 188.114.99.50, server: xxxxxx, request: "GET /xxxxx/xxxxx HTTP/1.1", upstream: "fastcgi://<a href="http://127.0.0.1:9000/" target="_blank"><span style="color:red"><b>MailScanner has detected a possible fraud attempt from "127.0.0.1:9000" claiming to be</b></span> <span style="color:red"><b>MailScanner warning: numerical links are often malicious:</b></span> 127.0.0.1:9000</a>", host: "xxxxx", referrer: "xxxxx"</div><br><div>a sype to tam docela drsně. Jak vypnu kešování v nginxu load vyskočí, třeba i na 500, těch chyb PHPka je méně ale jsou tam pořád. </div><br><div>Konfigurace FPM pro pool toho webu je:</div><br><div>[web1]<br><br>listen = <a href="http://127.0.0.1:9000/" target="_blank"><span style="color:red"><b>MailScanner has detected a possible fraud attempt from "127.0.0.1:9000" claiming to be</b></span> <span style="color:red"><b>MailScanner warning: numerical links are often malicious:</b></span> 127.0.0.1:9000</a><br>listen.allowed_clients = 127.0.0.1<br>listen.owner = web1<br>listen.group = client0<br>listen.mode = 0660<br>listen.backlog = 65536<br><br>user = web1<br>group = client0<br><br>request_slowlog_timeout = 5s<br>slowlog = /var/log/php-fpm/slowlog-web1.log<br><br>pm = dynamic<br>pm.max_children = 7000<br>pm.start_servers = 4000<br>pm.min_spare_servers = 2000<br>pm.max_spare_servers = 4000<br>pm.max_requests = 100<br><br>request_terminate_timeout = 60s<br>rlimit_files = 500000<br>rlimit_core = unlimited<br>catch_workers_output = yes<br><br>pm.status_path = /php-status<br><br>chdir = /<br></div><br><div>+ openbasedir, sessions save path. atp.</div><br><div>S těma hodnotama jsem se zkoušel různě hrát, nicméně to k vyřešení tohoto problému nepomohlo. Zkoušel jsem upravit i nějaké parametry jádra (local port range, tcp ack timeouty atp.) ale výsledek stejný. Dělá to i u unix socketu, což je mi právě zvláštní. Nginx konfigurace je:</div><div>user www-data;<br>worker_processes 80;<br>pid /run/nginx.pid;<br># set open fd limit to 50000<br>worker_rlimit_nofile 100000;<br><br>events {<br> worker_connections 1024;<br> multi_accept on;<br> use epoll;<br>}<br></div><br><div>ve vhostu nic zvlastniho, jenom pro php:</div><br><div> fastcgi_split_path_info ^(.+\.php)(/.+)$;<br> fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;<br> include /etc/nginx/fastcgi_params;<br> fastcgi_pass <a href="http://127.0.0.1:9000/" target="_blank"><span style="color:red"><b>MailScanner has detected a possible fraud attempt from "127.0.0.1:9000" claiming to be</b></span> <span style="color:red"><b>MailScanner warning: numerical links are often malicious:</b></span> 127.0.0.1:9000</a>;<br> fastcgi_index index.php;<br> fastcgi_intercept_errors on;<br> fastcgi_read_timeout 4m;<br></div><br><div>Dnes bude k tomuto server nový, pro rozdělení zátěže, ale jako fakt nevím jestli to má smysl ve stejné konfiguraci, kvůli těm php chybám. Nenapadá Vás kluci, co s tím? Nebo případně návrh řešení, kterým bych nahradil tohle, při dvou serverech ? Přemýšlím nad MySQL M - M replikací, v DNS round robin a GlusterFS pro data. Ale to phpko mi nedá spát. A dnes večer to už další nápor asi nedá.</div><br><div>Díky za rady a konzultace.</div><br><div>S pozdravem<span><span style="color:#888888"><br>Branislav Viest<br></span></span></div></div></div><br>_______________________________________________<br>
Community-list mailing list<br>
<a href="mailto:Community-list@lists.vpsfree.cz" target="_blank">Community-list@lists.vpsfree.cz</a><br>
<a href="http://lists.vpsfree.cz/listinfo/community-list" rel="noreferrer" target="_blank">http://lists.vpsfree.cz/listinfo/community-list</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div><div dir="ltr">--V.Kaplan</div></div>
</div>
<br>_______________________________________________<br>Community-list mailing list<br><a href="mailto:Community-list@lists.vpsfree.cz" target="_blank">Community-list@lists.vpsfree.cz</a><br><a href="http://lists.vpsfree.cz/listinfo/community-list" target="_blank">http://lists.vpsfree.cz/listinfo/community-list</a><br></div></div></div>_______________________________________________<br>Community-list mailing list<br><a href="mailto:Community-list@lists.vpsfree.cz" target="_blank">Community-list@lists.vpsfree.cz</a><br><a href="http://lists.vpsfree.cz/listinfo/community-list" target="_blank">http://lists.vpsfree.cz/listinfo/community-list</a><br></div></blockquote></div><br></div></div><br></div>_______________________________________________<br>Community-list mailing list<br><a href="mailto:Community-list@lists.vpsfree.cz" target="_blank">Community-list@lists.vpsfree.cz</a><br><a href="http://lists.vpsfree.cz/listinfo/community-list" target="_blank">http://lists.vpsfree.cz/listinfo/community-list</a><br></div></blockquote></div><br></div><br></div>_______________________________________________<br>
Community-list mailing list<br>
<a href="mailto:Community-list@lists.vpsfree.cz" target="_blank">Community-list@lists.vpsfree.cz</a><br>
<a href="http://lists.vpsfree.cz/listinfo/community-list" rel="noreferrer" target="_blank">http://lists.vpsfree.cz/listinfo/community-list</a><br>
</blockquote></div></div>