Marian Cerny wrote: > Zdravim, > > zacalo to tym, ked som si vsimol, ze sa mi v logoch z casu na cas > objavuje warning: > > PHP Warning: mysql_connect(): Can't connect to MySQL server on 'claire' (4) > > Chyba (4) znamena EINT, ktoru mysql pouziva, ak vyprsi timeout na > pripojenie (u mna v PHP 30 sekund). > > Spojenie na databazu sa vytvara v PHP skriptoch na front-end serveri > (mohinder, FreeBSD 6.2R, pf) a databaza je na back-end serveri (claire, > FreeBSD 6.3R, pf). > > Snazil som sa tento problem analyzovat. Vytvoril som si testovaci > skript, ktory sa snazi opakovane pripajat na MySQL server. Zistil som, > ze bezne trva pripojenie 3-4 ms, ale obcas pripojenie trva niekolko > sekund (1-30 sekund) a niekedy sa spojenie vobec nepodari (timeout po 30 > sekundach). Napriklad z 2626 spojeni (kazdu sekundu) trvalo 7 spojeni > viac ako 0.1 sekundy (3, 3, 9, 9, 9, 9, 13, 23 sekund) a jedno spojenie > sa nepodarilo (timeoutovalo po 31 sekundach). Vypadkom konektivity to > nie je - pocas trvania timeoutu je mozne vytvorit nove spojenie. > > Tak som pustil tcpdump na backend serveri a zachytil taketo dlhotrvajuce > spojenie a timeoutujuce spojenie. Zistil som, ze k tomuto problemu > dochadza, ked sa pouzije rovnaky zdrojovy port, aky bol pouzity pred > chvilou. > > Ja TCP na tolko nerozumiem, aby som dokazal posudit, ci ten druhy pokus > o spojenie je OK, alebo je v nom nejaky zadrhel. Predpokladam ale, ze > doslo k jednemu z nasledujucich problemov: > 1) zdrojovy port este nemal byt pouzity (teda chyba zdroja), alebo > 2) na cieli nebolo spojenie korektne ukoncene (chyba cliela). > > Prosim o radu. Nizsie este posielam tcp dump zo spominanych spojeni.
Dochazi k tomu i v pripade vypnuti PF? Zkusil byl nejaky tuning v pf.conf s volbami set timeout set limit viz manual http://www.freebsd.org/cgi/man.cgi?query=pf.conf&manpath=FreeBSD+6.2-RELEASE#OPTIONS Mirek -- FreeBSD mailing list (users-l@freebsd.cz) http://www.freebsd.cz/listserv/listinfo/users-l