Apache: 477 Domains in der Apachekonfig
Apache: 477 Domains in der Apachekonfig
Hallo,
ich habe nunmehr über vierhundert Domains in der Apachekonfig und er wird langsamer. Was kann ich da tun? Es gibt wohl ein Tool "apache-benchmark tool" mit dem ich das beheben kann.
Hat jemand eine Anleitung (HOWTO), wie ich es zum Laufen bekomme?
Gruß, Karsten
ich habe nunmehr über vierhundert Domains in der Apachekonfig und er wird langsamer. Was kann ich da tun? Es gibt wohl ein Tool "apache-benchmark tool" mit dem ich das beheben kann.
Hat jemand eine Anleitung (HOWTO), wie ich es zum Laufen bekomme?
Gruß, Karsten
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: Apache: 477 Domains in der Apachekonfig
Das Tool nennt sich schlicht und ergreifend ab
Ich weiß aber nicht, was dir das bringen sollte.
Ich weiß aber nicht, was dir das bringen sollte.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
was AB bringt...!
Das Tool ab soll mir folgendes bringen: wilde Anfragen an den Apache starten, ohne das meine Kiste in die Knie geht. Geht das? Oder habe ich etwas falsch verstanden?!
Gruß, Karsten
Gruß, Karsten
Re: Apache: 477 Domains in der Apachekonfig
Eine Möglichkeit ist Folgende:
Ã?ber mod_perl einen <perl></perl> Konfigurationsblock in die httpd.conf einbauen, der bei jedem Request in einer mysql Datenbank nachschaut und daraus die Daten für den virtuellen Host holt. Dann kannst Du alle <VirtualHost>-Blöcke entfernen, denn die fressen den Speicher weg. Im Endeffekt hast Du so einen dynamischen virtuellen Host. Der reagiert zwar von Grund auf langsamer wegen des DB-Connects, wird aber nicht zunehmen langsamer sondern bleibt immer gleich. Egal wie viele vHosts Deine Datenbank nachher hat!
Schöner Vorteil der Sache: Super bequem zu verwalten! Du könntest Dir dafür einfach ein Webinterface schreiben!
Ã?ber mod_perl einen <perl></perl> Konfigurationsblock in die httpd.conf einbauen, der bei jedem Request in einer mysql Datenbank nachschaut und daraus die Daten für den virtuellen Host holt. Dann kannst Du alle <VirtualHost>-Blöcke entfernen, denn die fressen den Speicher weg. Im Endeffekt hast Du so einen dynamischen virtuellen Host. Der reagiert zwar von Grund auf langsamer wegen des DB-Connects, wird aber nicht zunehmen langsamer sondern bleibt immer gleich. Egal wie viele vHosts Deine Datenbank nachher hat!
Schöner Vorteil der Sache: Super bequem zu verwalten! Du könntest Dir dafür einfach ein Webinterface schreiben!
-
warpantrieb
- Posts: 5
- Joined: 2003-10-11 16:41
Re: Apache: 477 Domains in der Apachekonfig
Hi!
Konntest Du hier bitte eine kleine Anleitung posten wie sowas auszusehen hätte?
Vielleicht mit Beispiel-Dump der DB im Anhang :)
Konntest Du hier bitte eine kleine Anleitung posten wie sowas auszusehen hätte?
Vielleicht mit Beispiel-Dump der DB im Anhang :)
Re: Apache: 477 Domains in der Apachekonfig
Andere Idee wenn es um die Konfiguration geht: mod_vhost_alias oder mod_rewrite.
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Apache: 477 Domains in der Apachekonfig
Das mit mod_perl geht, aber nicht so, wie es beschrieben wurde. Die Konfiguration des Servers und der VHosts wird beim Start/Reload einmal eingelesen und dann wie eine normale Konfigurationsdatei behandelt.
Bei 400 VHosts sollte es überhaupt noch keine merklichen Performance Probleme geben. Ausschliessen sollte man: Zu wenig Arbeitsspeicher, für jeden VHost eine eigene Logdatei, mit ipcs nachschauen, ob da was hackt.
Bei 400 VHosts sollte es überhaupt noch keine merklichen Performance Probleme geben. Ausschliessen sollte man: Zu wenig Arbeitsspeicher, für jeden VHost eine eigene Logdatei, mit ipcs nachschauen, ob da was hackt.
Re: Apache: 477 Domains in der Apachekonfig
Da hast Du leider Recht. Aber man könnte sich das trotzdem zu Nutze machen, immerhin hat man dann seine Konfig in der DB.Alexander Newald wrote:Das mit mod_perl geht, aber nicht so, wie es beschrieben wurde. Die Konfiguration des Servers und der VHosts wird beim Start/Reload einmal eingelesen und dann wie eine normale Konfigurationsdatei behandelt..
Re: Apache: 477 Domains in der Apachekonfig
also mod_perl und mod_rewrite wären von der Performance kaum besser. Aber mit mod_vhost_alias wäre vielleicht was zu machen. Aber es gibt sicher noch andere Ansätze den Server zu optimieren, bei PHP und MySQL lässt sich normalerweise das meiste raushohlen...
Re: Apache: 477 Domains in der Apachekonfig
Leider ist mod_vhost_alias für eine SuEXEC-Umgebung absolut untauglich, weil ja nirgends in der Konfiguration eine Angabe zum Script-User gemacht wird.
Ich habe mod_vdbh gefunden, das ist für Apache 2.0 (Gut für mich :-)). Allerdings speichert es nur folgendes in der DB: Pfad, Hostname, Umgebungsvariable.
Wäre cool, wenn es hier einen C Hacker gäbe, der den Sourcecode davon um folgende Felder erweitern könnte:
- vhost_user
- vhost_group
- vhost_adminemail
- vhost_accesslog
- vhost_errorlog
- vhost_include (Damit könnte man z.B. ganze <location>-Blöcke usw. speichern)
Ich habe mod_vdbh gefunden, das ist für Apache 2.0 (Gut für mich :-)). Allerdings speichert es nur folgendes in der DB: Pfad, Hostname, Umgebungsvariable.
Wäre cool, wenn es hier einen C Hacker gäbe, der den Sourcecode davon um folgende Felder erweitern könnte:
- vhost_user
- vhost_group
- vhost_adminemail
- vhost_accesslog
- vhost_errorlog
- vhost_include (Damit könnte man z.B. ganze <location>-Blöcke usw. speichern)
Re: Apache: 477 Domains in der Apachekonfig
Das macht meines Erachtens keinen Sinn. Du kannst das genauso in zwei serverweite Logs schreiben, wenn du den VHost mitloggst.VPN-User wrote:- vhost_accesslog
- vhost_errorlog
zum Beispiel:
Code: Select all
LogFormat "%v %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" vcombined-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Apache: 477 Domains in der Apachekonfig
Fragt mod_vdbh für jede Abfrage in der DB nach?
Danke :-))
Hallo,
danke für die Vorschläge. Gibt es denn einen eurer Vorschläge, die umzusetzen sind, sodass man mit einem 1&1-Root L 477 Domains problemlos laufen lassen kann? (Tendenz der Domains steigend)
Am liebsten würde ich alles so lassen wie es ist, da nur etwa 20 Domains von der derzeitigen 477 Domains regelmäßig aufgerufen werden.
Gruß, Karsten
danke für die Vorschläge. Gibt es denn einen eurer Vorschläge, die umzusetzen sind, sodass man mit einem 1&1-Root L 477 Domains problemlos laufen lassen kann? (Tendenz der Domains steigend)
Am liebsten würde ich alles so lassen wie es ist, da nur etwa 20 Domains von der derzeitigen 477 Domains regelmäßig aufgerufen werden.
Gruß, Karsten
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Apache: 477 Domains in der Apachekonfig
Was wird denn genau langsamer? Was sagt "ps xafu | grep httpd" und "free" (Bitte in code Tags posten, damit man es besser lesen kann)
Wieviele Zugriffe hat der Server pro Tag und von 16 - 23 Uhr?
Wieviele Zugriffe hat der Server pro Tag und von 16 - 23 Uhr?
AW:
Hallo,
hier die Ausgabe von: p12345678:~ # ps xafu | grep httpd
Der Server ist von 16 - 23 Uhr eher eine stille Kiste. Tagsüber jedoch ist er recht langsam geworden, sodass mir viele Mails wie "wird immer langsamer" in mein Postkasten befördert :-))). Dank schon im Voraus für deine Mühe.
Gruß, Karsten
hier die Ausgabe von: p12345678:~ # ps xafu | grep httpd
Code: Select all
root 594 0.0 4.8 87656 12076 ? S Oct12 0:02 /usr/sbin/httpd -
f /etc/httpd/httpd.conf -D SSL
wwwrun 16983 0.0 5.5 88460 13672 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 16984 0.0 5.5 88540 13696 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 16985 0.0 5.5 88540 13720 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 16986 0.0 5.4 88368 13564 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 16987 0.0 5.7 88908 14180 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 16988 0.0 5.7 88988 14224 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 17041 0.0 5.5 88544 13796 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 17043 0.0 5.5 88548 13736 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 17079 0.0 5.5 88472 13704 ? S Oct20 0:03 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSL
wwwrun 17081 0.0 5.7 88956 14200 ? S Oct20 0:04 _ /usr/sbin/htt
pd -f /etc/httpd/httpd.conf -D SSLGruß, Karsten
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Apache: 477 Domains in der Apachekonfig
Und das free und die Hits / Tag?
Re: Apache: 477 Domains in der Apachekonfig
Vom Performance-Aspekt her hast Du hier sicherlich Recht. Aber als Feature trotzdem "nice to have", wenn man nicht hinterher das Serverweite Logfile parsen (aufsplitten) will, um später jeden vHost einzeln zu erhalten.wirsing wrote:Das macht meines Erachtens keinen Sinn. Du kannst das genauso in zwei serverweite Logs schreiben, wenn du den VHost mitloggst.VPN-User wrote:- vhost_accesslog
- vhost_errorlog
zum Beispiel:Das %v am Anfang ist der Vhostname.Code: Select all
LogFormat "%v %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" vcombined
Ja, tut es. Kannst Du C? Würdest Du es für uns erweitern?Alexander Newald wrote:Fragt mod_vdbh für jede Abfrage in der DB nach?
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Apache: 477 Domains in der Apachekonfig
Puh, habe ich mir mal angeschaut. Ich denke nicht, dass das so einfach ist, vor allem da ich nicht wirklich gut C kann. Ausserdem für jede Anfrage eine eigene mySQL Abfrage. Das ist doch sehr Resourcen fressend...
Re: Apache: 477 Domains in der Apachekonfig
Ein Fall für den Query Cache 8)
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Apache: 477 Domains in der Apachekonfig
Na ja, aber auch für Arbeitsspeicher etc. Man nehmen nur mal das Forum hier. Beim Posten sind es alleine schon 20 Smilies, 5 Buttons, Hintergründe etc. Sagen wir mal 35 Objekte, die vom Webserver kommen müssen. Das sind im schlimmsten Fall 35 mysql Threads nur für den Apache. Evtl 10 Selects für jede Abfrage -> 350 Selects nur für den Apache. Dann kommen noch die normalen Abfragen für das Forum dazu...
Für mich klingt das nicht sonderlich Rescourcenschonend. Da hilft auch der Query Cache nichts.
Was passiert bei einem Lock der DB (zb. um Daten zu Ã?ndern oder ein Backup zu machen? Während der Zeit reagiert der Webserver auf keine Anfragen...?
Für mich klingt das nicht sonderlich Rescourcenschonend. Da hilft auch der Query Cache nichts.
Was passiert bei einem Lock der DB (zb. um Daten zu Ã?ndern oder ein Backup zu machen? Während der Zeit reagiert der Webserver auf keine Anfragen...?
Re: Apache: 477 Domains in der Apachekonfig
Naja. Der Apache hat dann ja durchgehend eine persistente Verbindung. Das Langsamste ist ja immer der Connect, der findet in dem Fall ja nur ein mal statt. Wie bereits gesagt wurde, Query Cache...Alexander Newald wrote:Na ja, aber auch für Arbeitsspeicher etc. Man nehmen nur mal das Forum hier. Beim Posten sind es alleine schon 20 Smilies, 5 Buttons, Hintergründe etc. Sagen wir mal 35 Objekte, die vom Webserver kommen müssen. Das sind im schlimmsten Fall 35 mysql Threads nur für den Apache. Evtl 10 Selects für jede Abfrage -> 350 Selects nur für den Apache. Dann kommen noch die normalen Abfragen für das Forum dazu...
Für mich klingt das nicht sonderlich Rescourcenschonend. Da hilft auch der Query Cache nichts.
Was passiert bei einem Lock der DB (zb. um Daten zu Ã?ndern oder ein Backup zu machen? Während der Zeit reagiert der Webserver auf keine Anfragen...?
Warum 10 Selects pro Abfrage? EIN Select pro Request. Die Daten für den vHost sollte man dann natürlich alle in einer Tabelle halten und nicht streuen, aufwändige JOINS können so vermieden werden.
Naja was soll bei einem Lock der DB schon passieren? Was passiert denn, wenn Du bisher einen vHost hinzufügst? Da muss der Apache ja auch die konfig neu einlesen. So ein DB-lock wäre so kurz, das würde sich höchstens irgendwo mit einem fehlenden Leergif bemerkbar machen :-). Also theoretisch könnte man das Modul ja auch dahingehend erweitern, dass es eine Backup-Tabelle gibt, falls die primäre gerade editiert wird.
Re: Apache: 477 Domains in der Apachekonfig
Oder den Unterschied zwischen write/read und row/table lock kennen ;)
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Apache: 477 Domains in der Apachekonfig
ich denke nicht, das man in einer tabelle alle einstellungen für einen vhost speichern kann. wenn mandas doch möchte, kommt man um eine eindeutigen id für jeden vhost nicht drum herum. dann benötige ich in einer multiuserumgebung die möglichkeit die tabelle für ein update zu sperren.