phpbar.de logo

Mailinglisten-Archive

Open_files zu =?ISO-8859-1?Q?gro=DF?=

Open_files zu groß

Oliver Six mysql-de_(at)_lists.bttr.org
Thu, 3 Jan 2002 10:23:15 +0100


"Markus Smigelskis" <maillisten_(at)_basesolution.de> wrote on 02.01.2002 
23:33:02: 

>Nun habe ich aber ein update auf mySQL 3.23.46 gemacht und alle
>Tabellen auf MYISAM gesetzt. Nun schmiert er mir nach einer weile ab
>mit 
>Error in accept: Too many open files
>
>Sprich er kommt über 150 und nicht geht mehr. Das einzige was hilft
>ist ein restart von mySQL und das im Moment so alle 20 bis 24 Stunden.
>Nicht wirklich sehr schön ;-(
>
>Iregndwie bekomme ich es aber auch nicht in den Griff. Nach 2 -3
>Sekunden laufzeit habe ich sofort unter phpmyadmin 2.2
>open files=129.
>Was dafür das fast nichts los ist einfach viel zu viel ist.
>
>Wer kann mir helfen oder wenigstens einen Tip geben.
>
>Danke Markus
>
>PS.: Alles unter FreeBSD 4.2. Im Moment starte ich ohne my.cnf mit
>folgender Zeile. /usr/local/bin/daemon -f /usr/local/bin/virtual
>/usr/local/mysql/bin/safe mysqld --basedir=/usr/local/mysql
>--datadir=/usr/local/var --language=german
>--err-log=xxx/mysql.err --log=xxx/stats/mysql log.txt
>--pid-file=xxx/mysql/var/mwldrp.pid -O max connections=60 -O
>wait timeout=1800 -O interactive timeout=1800 -O back log=15
>
Hallo Markus,

in dieses open-files-limit bin ich auch schon hineingelaufen (bei mir 
allerdings unter Linux Kernel 2.2.16, ca. 100 Usern und 8000 offenen files).
 Ich habe vorlaeufig die Variable open_files_limit in der my.cnf (muesste 
 auch ueber Kommandozeilenparameter --set-variable bzw. -O funktionieren) 
 auf einen niedrigeren Wert gesetzt und gleichzeitig die max. Anzahl 
 geoeffneter Dateien pro Prozess (was bei Dir ja ausfaellt) erhoeht. Bis 
 jetzt laeuft das allerdings auch noch nicht wirklich toll, koennte aber 
 ein Ansatzpunkt sein. 

In der englischen Mailingliste zum MySQL gibt es auch diverse Threads zu 
dem Problem, eine richtige Loesung habe ich aber dort leider auch nicht 
gefunden. Anscheinend versucht der Server, bereits gelaufene Queries in 
temporaeren Dateien zu cachen, die er dann nicht wieder schliesst. Entweder 
ist das ein Bug (der 3.22 hat das meines Erachtens nicht gemacht oder nicht 
so agressiv) und/oder ein Feature (es beschleunigt manche Abfragen schon 
gewaltig). Vielleicht kann sich 'mal jemand aeussern, der den 
entsprechenden Teil des Quellcodes kennt; vielleicht gibt es ja einen 
Workaround, um das Verhalten der 3.22.x-Versionen wiederherzustellen. 

Ciao Oliver
--
Good programming is 40% experience, 30% skill, 20% RTFM, 10% caffeine, and 
5% attention to detail. 

Oliver Six, CEO
CAHOS GmbH, Cimbernstr. 51, Germany 81377 Muenchen
Phone +49 89 71 01 93 40,  Fax +49 89 71 01 93 41

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive