Disaster: Apache maximale ConfigFilegröße

Hallo!

Wie groß darf / sollte maximal das Apache Configfile sein?

Disaster

  1. Hi,

    Wie groß darf / sollte maximal das Apache Configfile sein?

    auf den meisten Filesystemen: zwei Gigabyte. Einige besitzen diese Beschränkung nicht, jedoch möglicherweise eine höhere (vermutlich im Bereich einiger Milliarden Terabyte).

    Cheatah

  2. hallo ebenfalls,

    Wie groß darf / sollte maximal das Apache Configfile sein?

    mir ist keine Aussage bekannt, die explizit eine Maximalgröße vorsieht.
    Wenn du den Apache installierst, hat die (noch "unbehandelte") httpd.conf eine Größe von ca. 35 kB, wovon rund 20 kB auf die in ihr enthaltenen Kommentare entfallen, die du aber getrost rausstreichen kannst, wenn du sie nicht benötigen solltest.
    Es kommt drauf an, wodurch deine httpd.conf so groß werden könnte, daß du dir Sorgen machen mußt, die Übersicht zu behalten. Denkbar wäre eine sehr lange Liste virtueller Hosts. Die könntest du aber auch in einer gesonderten Datei ablegen und dann einfach in die httpd.conf einbinden, ähnlich wie das jetzt schon mit der Datei "mime.types" der Fall ist

    Christoph S.

  3. hi

    Wie groß darf / sollte maximal das Apache Configfile sein?

    is keine spezielle Grenze da. Da es Hoster gibt, die wohl einen Apachen mit diversen Virtual Hosts für einige Millionen Hostnames nutzen, kann ich mir allerdings auch nicht vorstellen, dass man da als Privatmensch auf irgendwie Problematische Dateigrößen kommen kann.

    Grüße aus Bleckede

    Kai

    1. Hallo Kai,

      Wie groß darf / sollte maximal das Apache Configfile sein?

      is keine spezielle Grenze da. Da es Hoster gibt, die wohl einen Apachen mit diversen Virtual Hosts für einige Millionen Hostnames nutzen,

      Das funktioniert bei mir aber nicht. Der Apache fährt ab einer fuzzy-bestimmten Anzahl von Virtual Hosts nicht mehr hoch. Mal bei 200, mal bei 250 oder so. Liegt wahrscheinlich daran, was sonst noch so läuft auf der Maschine. Da hat auch schon mal jemand geschrieben, dass das am Filetable vom Betriebssystem liegen würde. Bei DOS hätte ich jetzt einfach FILES=500 geschrieben. Ich hab hier aber LINUX drunter uind weiß nicht, wo man das da einstellen soll.

      Gruß

      Tom

      1. »Hallo,

        Wie groß darf / sollte maximal das Apache Configfile sein?

        is keine spezielle Grenze da. Da es Hoster gibt, die wohl einen Apachen mit diversen Virtual Hosts für einige Millionen Hostnames nutzen,

        Das funktioniert bei mir aber nicht. Der Apache fährt ab einer fuzzy-bestimmten Anzahl von Virtual Hosts nicht mehr hoch. Mal bei 200, mal bei 250 oder so. Liegt wahrscheinlich daran, was sonst noch so läuft auf der Maschine. Da hat auch schon mal jemand geschrieben, dass das am Filetable vom Betriebssystem liegen würde. Bei DOS hätte ich jetzt einfach FILES=500 geschrieben. Ich hab hier aber LINUX drunter uind weiß nicht, wo man das da einstellen soll.

        Soll an OPEN_MAX liegen? Hört sich aber merkwürdig an. Scheint mir mehr ein Speicherproblem zu sein.

        Zur Beantwortung noch eine Frage:
        Linux Version?

        so short

        Christoph Zurnieden

        1. Hallo Christoph,

          ich n´bedaure immer noch, dass ich in Linux noch nicht mal ansatzweise so weit vorgedrungen bin, wie damals in DOS. Allerdings muss ich immer wieder feststellen, dass die meisten guten Eigenschaften von DOS (es hatte ja auch solche) sich in Linux wiederfinden. Die Geschichte mit der Handle-Tabelle habe ich aber noch nicht erreicht. Das wird in Linux ja wohl hoffentlich auch dynamisch geregelt sein.

          Ich stelle mir vor, dass nur das lokale Abbild der Zugriffstabelle in Apache statisch geregelt ist und daher zu klein ist. Die wird nämlich nach der Erstellung sortiert. So kann Apache auch feststellen, wenn Einttäge doppelt sind, oder Logfiles fehlen. Es wird nämlich für jeden Virt-Host ein Eitrag für die Document Root, und je einer für die angegebenen Log-Files benötigt. Soweit konnte ich das schon empirisch ermitteln. Genaue Infos wären mir natürlich lieber.

          Woher bekomme ich (verständliche) interne Information?

          Soll an OPEN_MAX liegen? Hört sich aber merkwürdig an. Scheint mir mehr ein Speicherproblem zu sein.

          Nee, nee. Das ist auf allen unseren Maschin(ch)en gleich, egal ob 128MB oder 1GB Speicher.

          Zur Beantwortung noch eine Frage:
          Linux Version?

          Zur Zeit noch 7.2

          Tom aus Braunschweig

          1. Hallo,

            ich n´bedaure immer noch, dass ich in Linux noch nicht mal ansatzweise so weit vorgedrungen bin, wie damals in DOS. Allerdings muss ich immer wieder feststellen, dass die meisten guten Eigenschaften von DOS (es hatte ja auch solche) sich in Linux wiederfinden. Die Geschichte mit der Handle-Tabelle habe ich aber noch nicht erreicht. Das wird in Linux ja wohl hoffentlich auch dynamisch geregelt sein.

            Nein, ist fest.
            Aber kann man händisch ändern. (Dynamisch sollte man das nicht machen, kann in's Auge gehen)

            Ich stelle mir vor, dass nur das lokale Abbild der Zugriffstabelle in Apache statisch geregelt ist und daher zu klein ist. Die wird nämlich nach der Erstellung sortiert. So kann Apache auch feststellen, wenn Einttäge doppelt sind, oder Logfiles fehlen. Es wird nämlich für jeden Virt-Host ein Eitrag für die Document Root, und je einer für die angegebenen Log-Files benötigt. Soweit konnte ich das schon empirisch ermitteln. Genaue Infos wären mir natürlich lieber.

            "See the source, Luke!"
            Etwas anderes könnte ich nämlich auch nicht machen.

            Woher bekomme ich (verständliche) interne Information?

            Das Problem ist die Einschränkung "verständlich" ;-)
            Es gibt aber diverse Newsgroups. Habe ich allerdings kein Erfahrung mit, da ich die Quellen meistens direkt lesen kann.

            Soll an OPEN_MAX liegen? Hört sich aber merkwürdig an. Scheint mir mehr ein Speicherproblem zu sein.

            Nee, nee. Das ist auf allen unseren Maschin(ch)en gleich, egal ob 128MB oder 1GB Speicher.

            Ja, der Michael war auch der Meinung das es was mit Open_Max zu tun hat und der weiß es mit Sicherheit besser als ich.

            Zur Beantwortung noch eine Frage:
            Linux Version?

            Zur Zeit noch 7.2

            Nein, nicht die Version der Distribution, sondern die des Kernels.

            Es gibt da zwei verschiedene Methoden. Eine sehr einfache und einmal Neubauen.
            (und noch /dev/kmem direkt hacken, aber das zähl ich mal nicht dazu ;-)

            so short

            Christoph Zurnieden

            1. Hi Christoph,

              Es gibt da zwei verschiedene Methoden. Eine sehr einfache und einmal Neubauen.
              (und noch /dev/kmem direkt hacken, aber das zähl ich mal nicht dazu ;-)

              meinst Du denn, dass der Engpass bereits im Betriebssystem sitzt? Kann ich mir eigentlich nicht vorstellen, dass Linux nur 255 gültige Handles (plus NULL) zur Verfügung stellt.

              Ich schau mal nach der Kernel-Version...
              Ist 2.4.4-4GB  (was auch immer das 4GB heißt)

              Das probier ich aber lieber auf nem neu aufgestzten Spielserver aus. Ist mir zu heiß, das an einem der Hosts zu tun.

              Liebe Grüße

              Tom

              1. hallo,

                Es gibt da zwei verschiedene Methoden. Eine sehr einfache und einmal Neubauen.
                (und noch /dev/kmem direkt hacken, aber das zähl ich mal nicht dazu ;-)

                meinst Du denn, dass der Engpass bereits im Betriebssystem sitzt? Kann ich mir eigentlich nicht vorstellen, dass Linux nur 255 gültige Handles (plus NULL) zur Verfügung stellt.

                Doch, das ist so.
                Per Default. Aber natürlich einstellbar.

                Ich schau mal nach der Kernel-Version...
                Ist 2.4.4-4GB  (was auch immer das 4GB heißt)

                Das 4GB heißt wahrscheinlich, das die Unterstützung für große Dateien (>4GB) nicht eingebaut wurde.

                Das probier ich aber lieber auf nem neu aufgestzten Spielserver aus. Ist mir zu heiß, das an einem der Hosts zu tun.

                Sowas muß man _immer_ auf einem extra Server ausprobieren!
                HRRGTTNCHML!
                'tschuldigung, aber sowas macht mich immer ganz kribbelig. Wie kann man auch nur auf die _Idee_ kommen, das direkt auf der Produktionsmaschine machen zu wollen? ;-)
                (Das muß jetzt ausgerechnet ich sagen, der ich auch /dev/kmem auf der Produktionsmaschine ohne mit der Wimper zu zucken einer Vivisektion unterziehe. *öchöt* ;-)

                Gut, ist also ein 2.4er. Da ist es einfach. Insofern und überhaupt das /proc Dateisystem eingebaut ist als root:
                Nachschauen, wie die so stehen:

                cat /proc/sys/fs/file-max
                cat /proc/sys/fs/dquot-max
                cat /proc/sys/fs/super-max

                Einstellen (min 16MB RAM!) z.B. auf:

                echo 65536 > /proc/sys/fs/file-max
                echo 8192 > /proc/sys/fs/dquot-max
                echo 1024 > /proc/sys/fs/super-max

                Das sollte man am besten in ein Init-Script packen. Wenn Du Suse benutzt z.B. in '/etc/init.d/boot.local'
                Da ich Deine Hardwareausstattung, vor allem den RAM nicht kenne, hilft für die genauen Werte nur ausprobieren. Das Verhältniss sollte aber beibehalten werden.
                Ich haeb in der Antwort an Michael ein paar Links eingebaut, da gibt es ein wenig mehr Information. Wollte ich nicht doppelt posten.

                so short

                Christoph Zurnieden

                1. Guten Morgen Christoph,

                  ich habe gerade mal das System befragt:

                  cat /proc/sys/fs/file-max       8192
                  cat /proc/sys/fs/dquot-max      kennt er nicht
                  cat /proc/sys/fs/super-max      256

                  Welche Einstellung ist denn nun wofür? Und wieso kennt mein Linux das dquot-max nicht? Fragen über Fragen.

                  Einstellen (min 16MB RAM!) z.B. auf:

                  Ram sind 256MB

                  Gruß

                  Tom

                  1. Hallo,

                    ich habe gerade mal das System befragt:

                    cat /proc/sys/fs/file-max       8192
                    cat /proc/sys/fs/dquot-max      kennt er nicht
                    cat /proc/sys/fs/super-max      256

                    Welche Einstellung ist denn nun wofür?

                    Ich hatte doch mal ...
                    Ah, hier: http://www.linuxfibel.de/kprocdat.htm

                    Und wieso kennt mein Linux das dquot-max nicht?

                    Weil Du auf Deinem Probiersystem kein Quota eingerichtet hast.
                    Schussel!
                    ;-)

                    (Das Probiersystem _muß_ ein Spiegel des Produktionsystems sein, sonst bringt es nichts. Und einen Webserver ohne Quota ...)

                    Fragen über Fragen.

                    Naja, solange es auch immer Antworten gibt ... ;-)

                    Einstellen (min 16MB RAM!) z.B. auf:

                    Ram sind 256MB

                    Ich bin schon etwas älter, ich kenne noch Zeiten, da war so eine Warnung durchaus nötig ;-)

                    Aber probier die Angelegenheit mal aus, ob das reicht. Es kann auch noch sein, das die Grenzen für SM ( = "Shared Memory", was dachtest Du denn wieder? ;-) hochgesetzt werden müssen. Das geht aber auch noch über das /proc-System.

                    Anstrengender wird's wenn die maximale Anzahl an Prozessen nicht ausreicht, das geht IMHO auch in 2.4 (ich benutze meist einen 2.2 aus Gründen, die hier zu weit führen würden) nur über Kernelhacken.
                    Wenn Du das noch nicht gemacht hast, kann ich Dich gerne an die Hand nehmen.

                    so short

                    Christoph Zurnieden

                    1. Hi Christoph,

                      Ah, hier: http://www.linuxfibel.de/kprocdat.htm

                      (Das Probiersystem _muß_ ein Spiegel des Produktionsystems sein, sonst bringt es nichts. Und einen Webserver ohne Quota ...)

                      na, der hat bei uns auch keine Quotas. Unsere Kunden laden da nicht selbst rauf und für ein Projekt, in dem wir ein Stadtspiel entwickeln, gibts nen eigenen Server. Wenn die Platte voll wird, kommt eben ne zweite dazu. Aber das wird dauern.

                      Einstellen (min 16MB RAM!) z.B. auf:

                      Ram sind 256MB

                      Ich bin schon etwas älter, ich kenne noch Zeiten, da war so eine Warnung durchaus nötig ;-)

                      Mein erster PC hatte 640kByte "Vollausbau" Ich war ja sooo stolz, was für eine tolle Maschine das war. Aber der Amiga2000, den ich damals auch hatte, war mindestens 10mal so schnell, obwohl er weniger als die halbe Taktrate hatte.

                      Tom

                      1. Hallo,

                        Ah, hier: http://www.linuxfibel.de/kprocdat.htm

                        BTW:

                        bash-2.02$ httpdtype www.linuxfibel.de
                        Microsoft-IIS/5.0

                        Auch nicht schlecht, oder? ;-)

                        (Das Probiersystem _muß_ ein Spiegel des Produktionsystems sein, sonst bringt es nichts. Und einen Webserver ohne Quota ...)

                        na, der hat bei uns auch keine Quotas. Unsere Kunden laden da nicht selbst rauf und für ein Projekt, in dem wir ein Stadtspiel entwickeln, gibts nen eigenen Server. Wenn die Platte voll wird, kommt eben ne zweite dazu. Aber das wird dauern.

                        Einfach eine Platte dazu wird aber schwierig, je nach RAID System.
                        Was läuft denn da?

                        Einstellen (min 16MB RAM!) z.B. auf:

                        Ram sind 256MB

                        Ich bin schon etwas älter, ich kenne noch Zeiten, da war so eine Warnung durchaus nötig ;-)

                        Mein erster PC hatte 640kByte "Vollausbau" Ich war ja sooo stolz, was für eine tolle Maschine das war. Aber der Amiga2000, den ich damals auch hatte, war mindestens 10mal so schnell, obwohl er weniger als die halbe Taktrate hatte.

                        Nu, CISC ist halt nicht gleich CISC ;-)

                        Aber davon ab: funktioniert es jetzt?

                        so short

                        Christoph Zurnieden

            2. Hallo Christoph,

              Ja, der Michael war auch der Meinung das es was mit
              Open_Max zu tun hat und der weiß es mit Sicherheit
              besser als ich.

              ... nanana ;-) ... aber Google spendierte immerhin
              gleich auf der ersten Trefferseite den folgenden Link:

              http://httpd.apache.org/docs/misc/descriptors.html

              Hilft das weiter?
              Also die müssen es doch eigentlich am besten wissen ...

              Viele Grüße
                    Michael

              1. Hallo,

                Ja, der Michael war auch der Meinung das es was mit
                Open_Max zu tun hat und der weiß es mit Sicherheit
                besser als ich.

                ... nanana ;-)

                Nu, was?
                Das war ernst gemeint!

                ... aber Google spendierte immerhin
                gleich auf der ersten Trefferseite den folgenden Link:

                http://httpd.apache.org/docs/misc/descriptors.html

                Hilft das weiter?

                Na gut, einen Kernel <2.2 würde ich jetzt nicht unbedingt benutzen wollen. ;-)
                Aber sonst eine schöne Übersichtsliste.
                Vor allem schön erklärt!
                (Finde ich, ist aber - wie immer - natürlich Geschmacksache)

                Der hier http://linuxperf.nl.linux.org/general/kerneltuning.html ist übrigens auch nicht schlecht.

                Am Besten aber bei Datenbanken schauen, die brauchen sowas öfters ;-)
                http://www.mysql.com/doc/en/Linux.html

                Nun, der wahr jetzt einfach, nicht? ;-)

                Also die müssen es doch eigentlich am besten wissen ...

                Na, nicht unbedingt. Aber so ein Problem sollte bei denen wohl häufiger auftauchen.

                so short

                Christoph zurnieden

      2. Hi Tom,

        is keine spezielle Grenze da. Da es Hoster gibt,
        die wohl einen Apachen mit diversen Virtual Hosts
        für einige Millionen Hostnames nutzen,
        Das funktioniert bei mir aber nicht. Der Apache
        fährt ab einer fuzzy-bestimmten Anzahl von Virtual
        Hosts nicht mehr hoch. Mal bei 200, mal bei 250 oder
        so. Liegt wahrscheinlich daran, was sonst noch so
        läuft auf der Maschine.
        Da hat auch schon mal jemand geschrieben, dass das
        am Filetable vom Betriebssystem liegen würde.

        auch ich glaube mich daran zu erinnern, daß jeder
        Virtual Host ein FileHandle kostet und daß bei Apache
        dann bei 256-x Schluß ist.
        Ich bin mir nicht mal sicher, ob das Problem ohne
        Quelltextänderung und Neuübersetzung lösbar ist ...

        Viele Grüße
              Michael