Page 1 of 1
Open_files_limit
Posted: 2009-05-16 00:19
by schüri
hallo zusammen,
nachdem mein Server nun abgestürzt ist und ich ihn per Hardware-Reset neustarten musste, ist mir in der mysql-Errordlog aufgefallen, dass er gemeldet hat, dass zu viele geöffnete files gibt
"Too many open files"
nun habe ich in der my.cnf den Wert für open_files_limit auf 120.000 erhöht - nach dem Neustart setzt er den Wert jedoch nur auf 65.535, was aber für mein Gebrauch zu wenig ist - selbst Tuning Primer meckert, dass bereits mehr als 75% voll ist
habt ihr eine Idee, wieso der Wert nicht noch höher geht? muss ich eventuell an noch anderen Stellen etwas umstellen?
für jede Antwort bin ich dankbar :)
Re: Open_files_limit
Posted: 2009-05-16 01:00
by Joe User
Du solltest dringend einen Teil Deiner >20.000 Tabellen auf einen zweiten Server auslagern. Die 65.535 sind ein Kernel-Limit...
Re: Open_files_limit
Posted: 2009-05-16 10:09
by oxygen
Mit dem Kernel hat das nichts zu tun. Du musst vermutlich das globale Maximum erhöhen.
z.b. cat 1513500 > /proc/sys/fs/file-max
Re: Open_files_limit
Posted: 2009-05-16 10:29
by schüri
Inhalt der file_max:
soll ich das
einfach in eine neue Zeile schreiben?
Re: Open_files_limit
Posted: 2009-05-16 10:35
by oxygen
Ehm mein Fehler. Das müsste echo sein, einfach
Code: Select all
echo 1513500 > /proc/sys/fs/file-max
ausführen.
Re: Open_files_limit
Posted: 2009-05-16 10:41
by schüri
ok habe es in SSH ausgeführt
daraufhin wurde der Wert in der Datei höher (1513500)
nun nochmal kurz mysql neustarten, dann sollte er den Wert ja nun erhöhen können :)
//edit:
ein mysql-Neustart reicht wohl nicht aus...
Re: Open_files_limit
Posted: 2009-05-16 10:48
by schüri
selbst nach einem kompletten Neustart des Servers zeigt mir phpmyadmin immer noch das limit bei 65535 files an...
hab ich irgendwas falsch gemacht?
Re: Open_files_limit
Posted: 2009-05-16 13:47
by Joe User
oxygen wrote:Mit dem Kernel hat das nichts zu tun.
Sicher?
http://www.techiesabode.com/article/read_article_w.php?article_id=2 wrote:
Maximum Number of Open Files
How many open files can I have in Linux? In good old days, I would have surely told you a number for a particular kernel. Now, I would ask you why do you want to know? You can have as many you want. In Linux, limits on number of open files are maintained on a per process basis and for the entire system. For 2.4 and 2.6 kernels, per process and total system file limits are defined in include/linux/limits.h and include/linux/fs.h. To change these limits, change these constants in the kernel source and recompile your kernel.
NR_OPEN = maximum number of open files per process
NR_FILE = total number of files that can be open in the system at any time
Re: Open_files_limit
Posted: 2009-05-16 13:55
by Joe User
OK, genaue Definition gefunden:
Code: Select all
/usr/include/mysql/my_global.h:663:#define OS_FILE_LIMIT 65535
Re: Open_files_limit
Posted: 2009-05-16 14:19
by schüri
den von dir genannten Pfad gibts bei mir aber nicht :(
Re: Open_files_limit
Posted: 2009-05-16 18:01
by Joe User
Der würde Dir auch nicht helfen, ausser Du wüsstest, wie Du MySQL für Deine Distribution kompilieren musst...
Re: Open_files_limit
Posted: 2009-05-16 19:49
by schüri
hast du dann ne Idee, wie ich den Wert erhöhen kann?
Re: Open_files_limit
Posted: 2009-05-28 14:47
by schüri
aha und was heißt mysql neubauen?
wo stammt der Quelltext her?
Re: Open_files_limit
Posted: 2009-05-28 15:18
by schüri
und das funktioniert dann auch?
weil mein Serveranbieter bzw. deren Techniker meinen, es gibt keine andere Möglichkeit, als einen 2.Server dazu zuschalten:
ich habe gerade mit dem Techniker zusammen den Server nochmal angeschaut die Mysql kann nicht mehr als 65.000 Datein öffnen da kann man auch nichts mehr erhöhen.
Re: Open_files_limit
Posted: 2009-05-28 15:32
by schüri
naja sie müssen es ja schon wissen, sonst würden sie nicht diese Seite betreiben^^
http://www.ispone-business.de/index.php
Re: Open_files_limit
Posted: 2009-05-28 15:42
by Roger Wilco
schüri wrote:naja sie müssen es ja schon wissen, sonst würden sie nicht diese Seite betreiben^^
Haha, selten so gelacht. Du würdest dich wundern, wer so alles im Customer Support verschiedenster ISPs sitzt.
Davon abgesehen beziehen die sich auf die offiziellen MySQL-Pakete für deine Distribution. Für alles andere gibt es eben keinen Support - vor allem, wenn du bei dem Kenntnisstand deinen mysqld selbst baust.
Eine Variante für dein Problem wäre noch das parallele Betreiben mehrerer MySQL-Server auf deinem System. Dann hat jeder die Möglichkeit 65K Dateideskriptoren zu öffnen - bis das Systemlimit erreicht ist.
Re: Open_files_limit
Posted: 2009-05-28 15:44
by schüri
ok also würde nur die Zuschaltung eines 2.Servers die richtige Wahl sein?
oder würde auch die Erhöhung des RAMs reichen? was ich nicht glaube, weil ja Joe oben von einem Kernel (->Prozessor) geredet hat :-D
Re: Open_files_limit
Posted: 2009-05-28 15:52
by Roger Wilco
schüri wrote:ok also würde nur die Zuschaltung eines 2.Servers die richtige Wahl sein?
Ja, ein Managed-Server. Und den ersten dann am besten auch ersetzen.
schüri wrote:oder würde auch die Erhöhung des RAMs reichen?
Für was?
schüri wrote:was ich nicht glaube, weil ja Joe oben von einem Kernel (->Prozessor) geredet hat :-D
http://de.wikipedia.org/wiki/Linux_(Kernel)
Re: Open_files_limit
Posted: 2009-06-13 02:51
by schüri
zwar ein anderes Thema, aber ich wollte jetzt keinen neuen Thread aufmachen, für diese kleine Frage
ich habe eben wieder das tuning-programm durchlaufen lassen
u.a. mit folgender Meldung:
TABLE LOCKING
Current Lock Wait ratio = 1 : 4867
You may benefit from selective use of InnoDB.
If you have long running SELECT's against MyISAM tables and perform
frequent updates consider setting 'low_priority_updates=1'
If you have a high concurrency of inserts on Dynamic row-length tables
consider setting 'concurrent_insert=2'.
was bedeutet sie und was ist zu tun