Zu viele offene Dateien

jumphigh

New Member
Hallo Forum,

folgende Situation:
Habe einen 5-Euro-VServer bei Netfabrik unter SuSE 9.3 laufen. Es ist der typische LAMP-Server, also keinen speziellen Dienste außer Web, DB und Mail (siehe unten).

Nun ist das Problem, dass mir nur 1680 offene/gemappte Dateien erlaubt sind. Zumindest nehme ich an, dass "numfile" im UBC dafür steht. Im Leerlauf zeigt mit "numfile" ca. 1360 Dateien an, aber spätestens wenn Postfix Mails erhält und verarbeitet, geht es auf 1660. Wenn dann noch Amavis und ClamAV die Mail durchleuchten, knallt der Server immer gegen das 1680-Offene-Dateien-Limit.
Dann muss sich Postfix regelmäßig bremsen, und ein gleichzeitiges Arbeiten auf der Konsole per SSH wird unmöglich. Jedes Programm kann nicht starten, weil die Libs nicht gemappt werden können.

Kann mir jemand Optimierungstips geben, wie ich die Fileanzahl senken kann? Oder muss ich einfach damit leben?

MfG
Andreas

PS: Laufende Dienste
Code:
  PID TTY          TIME CMD
    1 ?        00:00:04 init
18206 ?        00:00:00 courierlogger
18219 ?        00:00:00 authdaemond.pla
18312 ?        00:00:00 saslauthd
18318 ?        00:00:00 authdaemond.pla
18349 ?        00:00:00 mysqld_safe
19541 ?        00:00:00 mysqld
19756 ?        00:00:00 xinetd
19789 ?        00:00:21 sshd
19872 ?        00:00:00 couriertcpd
19874 ?        00:00:00 courierlogger
22385 ?        00:00:03 freshclam
22386 ?        00:00:00 cron
23910 ?        00:00:04 amavisd
 5728 ?        00:00:03 syslogd
 5731 ?        00:00:00 klogd
21583 ?        00:00:00 freshclam
22082 ?        00:00:11 clamd
22030 ?        00:00:02 amavisd
12030 ?        00:00:00 sshd
12035 pts/0    00:00:00 bash
 3581 ?        00:00:00 master
 3596 ?        00:00:00 pickup
 3597 ?        00:00:00 qmgr
 3870 ?        00:00:00 httpd2-prefork
 3877 ?        00:00:00 httpd2-prefork
 3878 ?        00:00:00 httpd2-prefork
 3881 ?        00:00:00 httpd2-prefork
 4025 ?        00:00:00 proxymap
 4026 ?        00:00:00 tlsmgr
 4028 ?        00:00:00 anvil
 5168 ?        00:00:00 trivial-rewrite
 5862 pts/0    00:00:00 ps
 
Du könntest einmal versuchen nur eine Instanz des Apache zuzulassen (in der httpd.conf) und an Stelle des clamd clamscan zu verwenden. Der clamd verbraucht recht viel Speicher und hält auch etliche Dateien geöffnet, die bei Verwendung von camscan eben nur bei Bedarf geladen werden. Wie steht in der ClamAV Doku. Bei geringem bis mässigen Mailaufkommen auf einem Mini-vHost also durchaus zu empfehlen.
 
Hallo,

danke für die schnelle Antwort.

Das Problem ist, dass ich praktisch jeden Server schon auf 1 Instanz/Thread/Prefork gesetzt habe. Und Clamd verbraucht im Leerlauf auch nur ca. 40 Files.
Die Hauptmasse machen Postfix und Apache2 aus. Die ergeben im Leerlauf zusammen über 600 Files, jeder über 300. Wenn dann die Postfix-Queue voll geladen ist, ist man dann bei 1660. Da bleibt dann für den Scan nicht viel übrig, was wohl auch bei Nutzung von Clamscan als Backup für Amavis kaum ausreichender ist.

Ich habe auch noch ein wenig im Forum gestöbert und bin auf den Thread über die VServer-Leistungsdaten gestossen. Manche haben da unter 500 offene Files im UBC unter "numfile" stehen. Wie machen die das bzw. welche Dienste laufen bei denen überhaupt?

MfG
Andreas
 
Ich weiß nicht ob Dir das möglich ist, doch eine Möglichkeit gleich einen ganzen Batzen offener Files (≈>200) einzusparen, wäre erstens sich auf die nötigen Apachemodule zu beschränken und diese dann nicht als shared in den Apache einzukompilieren.
Als zweites könntest Du sendmail als Alternative zu postfix in Erwägung ziehen und als drittes regen Gebrauch vom xinetd machen.
Das zusammen sollte schon Einges wegschaffen.
 
Ich weiß nicht ob Dir das möglich ist, doch eine Möglichkeit gleich einen ganzen Batzen offener Files (≈>200) einzusparen, wäre erstens sich auf die nötigen Apachemodule zu beschränken und diese dann nicht als shared in den Apache einzukompilieren.

Module sind nur das Nötigste, soweit ich das Überblicke. Beim zweiten meinst du statisches Linken beim Build? Nee, da könnte ich ja die SuSE-RPMs nicht mehr nutzen und müßte das Bugfixing selbst betreiben. :)

Als zweites könntest Du sendmail als Alternative zu postfix in Erwägung ziehen und als drittes regen Gebrauch vom xinetd machen.
Mhm, habe mich grad so in Postfix eingearbeitet, will nicht schon wieder wechseln. Über den xinetd habe ich schon nachgedacht, nur ist es mir nicht ganz klar, wie das mit den Servern läuft.
Nehmen wir mal an, ich will Pop3 und SSH darüber laufen lassen (lohnt sich Apache bei geringer Nachfrage?). Wie bringe ich die Daemons dazu, sich nach einer Session wieder abzuschalten? Ich kenn im Moment nur die Runlevel-Serviceskripts unter /etc/init.d/ und habe mich mit den Optionen der einzelnen Serverexen noch nicht beschäftigt. So wie ich das verstehe, geht es mit einem "rcsshd start" als Eintrag im xinetd nicht, denn dann schaltet sich SSH nicht wieder aus, oder?

MfG
Andreas

PS: Vielleicht könnte sich mal der Herr Broemme von Intergenia dazu äußern, irgendwie habe ich keine Lust, für € 1,79 die Hotline anzurufen und keine Lösung zu bekommen. ;)
 
Last edited by a moderator:
Wie die xinetd.conf bei Suse aussieht kann ich Dir leider nicht sagen, da ich um diese Distri bisher einen Bogen gemacht habe. Ich würde mir einfach einmal die Configs auf einem anderen System ansehen. Unter Fedora und OSX ist das jedenfalls recht übersichtlich.
Solltest Du eine Suse lokal verfügbar haben kannst Du mit Tools wie Webmin den xinetd recht elegant konfigurieren.

vi-ler erschlagt mich nicht :o aber zum Kennenlernen sind solche tools wirklich gut
 
Welches anderes System? Ich habe nur 1x SuSE. Und wer verwendet Webmin? :D
Ist klar, dann suche ich selbst mal nach xinetd-configs.

Danke für die Mitarbeit soweit, schade das keine andere Lösung möglich scheint.

MfG
Andreas
 
Das Problem ist, dass ich praktisch jeden Server schon auf 1 Instanz/Thread/Prefork gesetzt habe.

Bist Du Dir sicher das du

Code:
<IfModule prefork.c>
StartServers         1
MinSpareServers      1
MaxSpareServers      1
MaxClients           1
MaxRequestsPerChild  1000
</IfModule>

gesetzt hast?
 
Jetzt ja. Ändert aber kaum was. Leider. :-(
Aber es geht mir wenigstens besser, als dem User Jo Ke, dessen Post momentan an zweiter Stelle im Forum steht. ;-)

MfG
Andreas
 
Last edited by a moderator:
Wofür braucht man noch courier? Ich dachte, das ist das Imap Fach und bietet auch pop3? Ich habe den nun nicht mehr eingeschaltet, nachdem bei mir auch alles zum erliegen kam. Meine logcheckmails bekomme ich trotzdem noch.

Dovecot lief bei mir auch noch.

Trotzdem: die Ressourcen auf einem vserver scheinen knapper zu sein als ich dachte.
 
Back
Top