Tcp spojenie na localhoste pre php mysql

Jozef Drahovsky freebsdcz2 at jozef.drahovsky.sk
Sat Feb 25 01:20:51 CET 2017


Testoval rozdiel dvoch druhov spojenia Apache+PHP servera s MySQL 
serverov v ramci localhostu

Pri tychto testoch som narazil na jednu zvlastnost a to, ze na FreeBSD 11.0

ostava visiet polovica tcp spojenia na localhoste.

Davam sem vysledok celeho testu lebo odhadujem, ze viacerych zaujme 
samotny test.

Regulerne jedine tcp spojene (su tu dva riadky lebo oba konce spojenie 
su na tom istom pocitaci)
127.0.0.1.3306         127.0.0.1.27804        ESTABLISHED
127.0.0.1.27804        127.0.0.1.3306         ESTABLISHED

Po ukonceni spojenia jeden smer konketene z PHP na SQL zostane visiet, 
kym nevytimeoutuje.
127.0.0.1.27804        127.0.0.1.3306         TIME_WAIT

Tusi niekto dovod tohto ukazu?

Kym som to napisal, uz som prisiel na dovod preco to tak je :)

Jozef


Cely test a komentarmi:
--- Pred testom - vsetko ok ziazne vysiace spojenie ----------------------
sockstat | grep mysql.sock 2>&1
mysql    mysqld     1820  34 stream /tmp/mysql.sock

netstat -n -a | grep 3306 2>&1
tcp4       0      0 127.0.0.1.3306         *.* LISTEN

--- aktivne spojenie cez sokety vsetko 
ok-------------------------------------
Connect: $mysqli1 = new mysqli("localhost", $sql_user, $sql_pass, $sql_db");
typ: Localhost via UNIX socket

sockstat | grep mysql.sock 2>&1
www      grep       7549  20 stream -> /tmp/mysql.sock
www      sockstat   7548  20 stream -> /tmp/mysql.sock
www      sh         7547  20 stream -> /tmp/mysql.sock
www      httpd      7478  20 stream -> /tmp/mysql.sock
mysql    mysqld     1820  34 stream /tmp/mysql.sock
mysql    mysqld     1820  45 stream /tmp/mysql.sock

netstat -n -a | grep 3306 2>&1
tcp4       0      0 127.0.0.1.3306         *.* LISTEN

--- ukoncenie spojenia cez skoety znova vsetko ok 
---------------------------
sockstat | grep mysql.sock 2>&1
mysql    mysqld     1820  34 stream /tmp/mysql.sock

netstat -n -a | grep 3306 2>&1
tcp4       0      0 127.0.0.1.3306         *.* LISTEN



---- aktvine spojenie cez tcp na localhoste je tiez ok 
-------------------------
Connect: $mysqli2 = new mysqli("127.0.0.1", $sql_user, $sql_pass, 
$sql_db, 3306);
typ: 127.0.0.1 via TCP/IP

grep mysql.sock 2>&1
mysql    mysqld     1820  34 stream /tmp/mysql.sock
netstat -n -a | grep 3306 2>&1
tcp4       0     11 127.0.0.1.3306         127.0.0.1.27804 ESTABLISHED
tcp4       0      0 127.0.0.1.27804        127.0.0.1.3306 ESTABLISHED
tcp4       0      0 127.0.0.1.3306         *.* LISTEN


---  ukoncenie spojenia cez tcp ma problem polovica spojenie zastala visiet
sockstat | grep mysql.sock 2>&1
mysql    mysqld     1820  34 stream /tmp/mysql.sock

netstat -n -a | grep 3306 2>&1
tcp4       0      0 127.0.0.1.27804        127.0.0.1.3306 TIME_WAIT
tcp4       0      0 127.0.0.1.3306         *.* LISTEN



--- kontrola po dalsich 10 sekund --- bez zmeny visi dalej a caka na timeout
sockstat | grep mysql.sock 2>&1
mysql    mysqld     1820  34 stream /tmp/mysql.sock

netstat -n -a | grep 3306 2>&1
tcp4       0      0 127.0.0.1.27804        127.0.0.1.3306 TIME_WAIT
tcp4       0      0 127.0.0.1.3306         *.* LISTEN



More information about the Users-l mailing list