Christian Kruse: Tipps um Apache schneller zu machen?

Beitrag lesen

Hallo MichaelB,

Statische Dokumente brauchen nur serh wenig und so laufen die über einen Webserver der
nur wenig kann - dafür vergleichsweise schlanke Prozesse verwendet. Die dynamischen
Dokumente brauchen meist mehr Module, und benötigen merh Funktionalität, wodurch die
Prozesse um ein vielfaches größer werden können.
Kurze Zwischenfrage:
Bei parallelen Zugriffen werden ja (wie Du auch schon sagtest) mehrere httpd-Prozesse
geöffnet.

Richtig.

Ist es wirklich so, daß ein neu geöffneter Prozess so dick ist wie ein anderer?

Jain.
Prinzipiell muss der komplette Speicher, auch das Datasegment, kopiert werden. Aber (jetzt
kommts): heutige Unixoide haben eine sehr geniale fork()-Implementation. Der Speicher wird
erst on demand kopiert. Heisst: der fork()-Aufruf selber ist erstmal nicht so teuer, es wird
nur eine neue Prozess-Umgebung angelegt. Erst wenn der neue Prozess auf die Daten zugreift
werden diese dann auch in den Speicherbereich des neuen Prozesses kopiert.

Ich vermute mal, daß der Programmcode zwischen den Prozessen eh geshared wird und es nur
ein eigener Stackframe/Dataframe pro Prozess gibt,

Nein. Der Code muss für jeden Prozess ein weiteres mal in den Speicher geladen werden.

so dass ein schlank konfigurierter httpd erstmal nicht soviel bringt. Richtig?

Doch, der bringt eine Menge ;-)

Der Overhead für den Stackframe sollte nicht allzu viel sein. Und Resourcen wie
DB-Verbindungen sind ohnehin Prozessgebunden und werden beim fork nicht dupliziert.

Klar werden sie. Es wird eine exakte, 100%ige Kopie von dem Prozess angelegt. Deshalb
sollte man mit offenen DB-Handles oder ähnlichem auch nicht fork()en, es wird ein- und
dieselbe Verbindung benutzt in dem Fall.

Grüße,
 CK

--
Wenn du gehst, gehe. Wenn du sitzt, sitze. Und vor allem: schwanke nicht!
0 56

Tipps um Apache schneller zu machen?

powtac
  • webserver
  1. 0
    MichaelB
    1. 0
      Christoph Schnauß
      1. 0
        Andreas Korthaus
        1. 0
          Christoph Schnauß
          1. 0
            Andreas Korthaus
            1. 0
              Christoph Schnauß
              1. 0
                Andreas Korthaus
                1. 0
                  serverAdmin
    2. 0
      powtac
    3. 0
      Andreas Korthaus
      1. 0
        MichaelB
        1. 0
          Andreas Korthaus
          1. 0
            MichaelB
            1. 0
              Andreas Korthaus
              1. 0
                MichaelB
                1. 0
                  Andreas Korthaus
                  1. 0
                    MichaelB
                    1. 0
                      Christian Kruse
                      1. 0
                        MichaelB
                        1. 0
                          Christian Kruse
                          1. 0
                            MichaelB
                            1. 0

                              Ergänzung

                              MichaelB
                              1. 0
                                Christian Kruse
                                1. 0
                                  MichaelB
                                  1. 0
                                    Christian Kruse
                                    1. 0
                                      MichaelB
                            2. 0
                              Christian Kruse
                              1. 0
                                MichaelB
                                1. 0
                                  Christian Kruse
                                  1. 0
                                    MichaelB
                                    1. 0
                                      Christian Kruse
                                      1. 0
                                        MichaelB
                                        1. 0
                                          Andreas Korthaus
                                2. 0
                                  Andreas Korthaus
  2. 0
    Eternius
    1. 0
      powtac
    2. 0
      der implementierer
      1. 0
        Eternius
      2. 0
        Christoph Schnauß
    3. 0
      powtac
      1. 0
        Eternius
        1. 0
          powtac
          1. 0
            Eternius
            1. 0
              Christoph Schnauß
              1. 0
                Eternius
        2. 0
          Christoph Schnauß
      2. 0
        wahsaga
        1. 0
          powtac
  3. 0
    Andreas Korthaus
  4. 0
    Christian Kruse
    1. 0
      Christoph Schnauß
      1. 0
        Christian Kruse
        1. 0
          Christoph Schnauß
          1. 0
            Matti Maekitalo
          2. 0
            Thomas W.