Apache - too many open files.

DLx

DLx

Jungspund
Hallo,

ich hab grad mal ein kleines problemdas ich in dieser art noch nicht hatte,
und grad selbst leider nicht auf die loessung komme, daher die etwas doofe frage.

Gestern hatte ich einen kleinen hänger im system (Debian 3.1) und musste mit -9 neustarten. Nun startet sich der liebe apache (1.3.33) nicht mehr.
zuerst kamm nur ein apache.pid fehler, ok kein problem... beseitigt.
nun kommt aber die fehlermeldung:

[warn] (24)Too many open files: unable to open a file descriptor above 15, you may need to increase the number of descriptors

Hat jemand eine idee wie ich denfehler in dengriff bekomme?
Danke für eure hilfe schon mal!
 
hi!

ich kenne das problem. die fehlermeldung sagts eigentlich schon. du hast zu viele offene dateien. mit dem befehl lsof kannst du sehen welche dateien geöffnet sind von welchem prozess.

als ertes würde ich dir raten wirklich einfach mal den rechner neustarten. dann sollte der apache wider laufen. denke ich.

die frage die nun noch aufkommt ist: wieso hast du diese fehlermeldung. dafür müsstest du mal sagen/zeigen welche module du im apache verwendest und was du so für seiten mit dem apache darstellst. wieviel traffic bzw besucher hast du auf den seiten?

mfg frank
 
Hi, danke für deine schnelle antwort.

lordlamer schrieb:
...als ertes würde ich dir raten wirklich einfach mal den rechner neustarten. dann sollte der apache wider laufen...
Leider nicht :(

lordlamer schrieb:
dafür müsstest du mal sagen/zeigen welche module du im apache verwendest

Code:
AddModule mod_so.c
AddModule mod_macro.c
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so
LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so
LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
LoadModule status_module /usr/lib/apache/1.3/mod_status.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
LoadModule php4_module /usr/lib/apache/1.3/libphp4.so

lordlamer schrieb:
...und was du so für seiten mit dem apache darstellst. wieviel traffic bzw besucher hast du auf den seiten?
ca. 600 domains, je domain 1html seite. kaum traffic.


Kann man irgendwo die maximal erlaupte anzahl geöffneter dateien hochsetzen? (in der /etc/security/limits.conf ist nichts eingestellt)
 
[warn] (24)Too many open files: unable to open a file descriptor above 15, you may need to increase the number of descriptors.
15 ist schon arg wenig!

als welcher user läuft apache ?
was sagt die ausgabe von ulimit -n ?
hast du irgendwelche begrenzungen unter /etc/security/limits.conf ?
was sagt cat /proc/sys/fs/file-max ?
oder sysctl -a unter fs.file-max ?

siehe dazu auch: HIER
 
damager schrieb:
was sagt die ausgabe von ulimit -n ?
1024


damager schrieb:
als welcher user läuft apache ?
ein extra benutzer... www-run

damager schrieb:
hast du irgendwelche begrenzungen unter /etc/security/limits.conf ?...
Nein hab da alles auskomentiert.

damager schrieb:
was sagt cat /proc/sys/fs/file-max ?
49808

damager schrieb:
15 ist schon arg wenig!
ja würde es gerne ändern, aber wie nur? *g*
 
hi!

wo du da 600 domains erwähnst. legst du für jede domain eigene logfiles an? also eine eigene access_log und error_log ?

wenn ja müsstest du mal testen die rauszunehmen. das ist auch oft ein grund wieso dieser fehler auftaucht. das würde in diesem zusammenhang auch wieder passen.

mfg frank
 
DLx schrieb:
ja würde es gerne ändern, aber wie nur? *g*

Hallo

Du kannst die Limits für den user oder auch die Gruppe als root direkt in der shell setzen.
Wenn du die richtigen Werte hast, würde ich diese dann auch in der /etc/security/limits.conf eintragen.
Damit das ganze wirksam wird, musst du /etc/pam.d/su editieren.
Dort steht ganz unten ein kommentar dazu.
Das ist die nun die Standardmethode , gegenüber der früher verwendeten alten /etc/limits.conf
Könnte es sein, dass bei dir noch das alte System aktiviert ist?

Ist alles ein bissel versteckt und man ulimit liefert auch nur die C-funktion.
Aber in der man bash wirst du fündig.

Gruß Wolfgang
 
Hast du nach dem Neustart mal das Dateisystem überprüfen lassen? Vielleicht ist irgendwas beim Reboot draufgegangen.
 

Ähnliche Themen

Windows clients können nicht mehr auf lange laufendes System zugreifen

NagiosGrapher 1.7.1 funktioniert nicht

dovecot und postfix Konfiguration Problem

Debian squeeze, Webmin, Samba Freigaben

CentOS 6.3 RADIUS - Keine Verbindung möglich

Zurück
Oben