zriadkavy problem s naviazanim TCP spojenia

Miroslav Lachman 000.fbsd at quip.cz
Wed Feb 6 13:46:56 CET 2008


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



More information about the Users-l mailing list