Hallo,
ich habe ein nervendes Problem mit meiner MySQL-Datenbank. Nach einem Zugriff auf irgendwelche Tabellen, werden die Dateihandles vom System nicht geschlossen. Mit jeder so offenen Tabelle steigt der numfiles-Wert um 2 an.
Bei 100 Tabellen macht das 200 "numfiles". Bei 10 Webseiten sind das schon 2000 :-( Auch wenn gar nicht auf die Tabellen zugegriffen wird. Die Dateihandles sind immer vorhanden.
Ich habe das auf mehreren virtuellen Servern ausprobiert.
Debian 4-Confixx-Bundle von vanager
Debian 4-Minimal mit installiertem MySQL-Server 5
Am Webserver liegt es nicht - der ist heruntergefahren.
Auch konnte ich gleiches bei einem physikalischen Ubuntu 8.10 Server feststellen. Bei einem physikalischen Debian 3 Server mit identischem MySQL-Server wie unter Debian 4 (gleiche Version, gleiche Config) werden hingegen die Dateihandles nach wenigen Minuten entfernt...
Testscript (php5 -f test.php):
Weiß jemand einen Rat?
ich habe ein nervendes Problem mit meiner MySQL-Datenbank. Nach einem Zugriff auf irgendwelche Tabellen, werden die Dateihandles vom System nicht geschlossen. Mit jeder so offenen Tabelle steigt der numfiles-Wert um 2 an.
Bei 100 Tabellen macht das 200 "numfiles". Bei 10 Webseiten sind das schon 2000 :-( Auch wenn gar nicht auf die Tabellen zugegriffen wird. Die Dateihandles sind immer vorhanden.
Ich habe das auf mehreren virtuellen Servern ausprobiert.
Debian 4-Confixx-Bundle von vanager
Debian 4-Minimal mit installiertem MySQL-Server 5
Am Webserver liegt es nicht - der ist heruntergefahren.
Auch konnte ich gleiches bei einem physikalischen Ubuntu 8.10 Server feststellen. Bei einem physikalischen Debian 3 Server mit identischem MySQL-Server wie unter Debian 4 (gleiche Version, gleiche Config) werden hingegen die Dateihandles nach wenigen Minuten entfernt...
lsof | grep web0
mysqld 24115 mysql 100u REG 0,222 1024 286408764 /var/lib/mysql/usr_web0_1/asdfasdf.MYI
mysqld 24115 mysql 101u REG 0,222 40 286408766 /var/lib/mysql/usr_web0_1/asdfasdf.MYD
Testscript (php5 -f test.php):
<?php
error_reporting(E_ALL);
$c = mysql_connect("localhost","root","PASSWORD");
mysql_selectdb("usr_web0_1");
$d = mysql_query("select * from asdfasdf");
echo mysql_num_rows($d);
mysql_close($c);
?>
Weiß jemand einen Rat?