| |
|
Veröffentlicht durch maol on Tuesday 12. December, 22:51
Aus der /.-wo-bist-Du? Abteilung
|
|
|
|
|
Was für ein ereignisreicher Tag!
Am Vormittag die Nachricht, dass Heise's Jürgen Kuri eine Artikel über uns bringen wird, daraufhin fieberhaftes Feilen an der Pressemeldung, und am Nachmittag dann die Bombe: als der Artikel veröffentlicht wird, ist unser Rechner völlig überlastet.
|
|
|
|
|
|
Zum Glück hat unser Admin bit sofort reagiert und durch verschiedene Tuningmassnahmen wieder eine gute Performance hingebracht... seine Meldungen von der Front:
Date: Tue, 12 Dec 2000 15:45:21 +0100 (CET)
Bei knapp 400 simultanen Connections ist's nicht ganz einfach,
die Oberhand zu behalten...
Wir werden ge'Heise't!
Date: Tue, 12 Dec 2000 15:59:32 +0100 (CET)
- Ram: zu 80% gefuellt (20 Simultane connections)
- CPU: OK
- Netz: leer :-)
Pro Child (aktive TCP-Connection) brauchen wir 12 MB Memory. 400
Clients * 12 MB => 4,8 GB Memory. Das sind 4 Server a 1 GB + ein
separater Image-Server...
Ich hoffe schwer, dass das nicht Standard wird!
Ich bin noch etwas am tunen - vielleicht krieg ich die SYN_SENT
Verbindungen noch runter.
Date: Tue, 12 Dec 2000 16:22:24 +0100 (CET)
Ach ja, die Performance bessert sich. Wir haben immer noch an die
300 offene TCP-Links, dafuer werden sie massiv besser behandelt.
Ich hoffe, die optimalen Parameter bald gefunden zu haben.
Ach ja, es ist geil, dem access_log zuzusehen ;-)
Permanent 5-10 Hits/s ;-)
Date: Tue, 12 Dec 2000 19:23:33 +0100 (CET)
default symlink
Timeout 300 30
KeepAliveTimeout 15 3
MinSpareServers 5 10
MaxSpareServers 10 15
StartServers 5 10
MaxClients 150 30
Der Timeout ist bei mir seit eh und jeh auf 30 Sekunden - alles
andere bringt CGIs ohne Output zu ewigen Irrlaufern.
Die Werte StartServers, MinSpareServers und MaxSpareServers hatte
ich bereits letzte Woche auf akzeptable Werte gebracht - so
alloziert Apache ca. 60% des verfuegbaren Memorys.
Max Clients war erst auf 20 gestellt - waehrend der Heise
Schlacht habe ich diesen Wert auf 30 erhoeht. Die
ueberschuessigen Childs werden sehr rasch gekillt und der Rest
der Maschine wird in den Swap gedrueckt. Der Wert war genug tief,
dass ich die ganze Zeit funktionierende rootshells offen halten
konnte :-)
Der fatalste Wert ist KeepAliveTimeout. Netscape haelt Sockets
offen bis der User eine andere Site besucht oder den Netscape
schliesst. Der Parameter bestimmt, wann der Webserver von sich
aus die Verbindung schliessen soll - aufgrund einer
Tuning-Anweisung aus dem Apache-Manual lag dieser auf 300
Sekunden. Die ersten 20 Symlink-Besucher hatten somit eine coole
Performance, der Rest schaute in die Roehre... Zwischen 15:30 und
16:00 habe ich den Wert sukksessive auf 3 Sekunden reduziert und
damit eine kontinuierliche Bewaeltigung der Abfragen erreicht.
Mit der aktuellen Belastung von 2-3 Hits/s kommt der Server auf
alle Faelle klar, einen zweiten Heise-Anfall sollte er auch
ueberstehen.
Ich hoffe, genug schnell reagiert zu haben (Heise kam waehrend
meiner Kaffeepause) und wuensche Euch noch froehliches Symlinken!
Hoffentlich hat er hiermit Recht, und Euch allen wünsche ich jetzt auch noch gute Nacht und viel Spass an symlink.
<müde>maol</müde>
|
|
|
|
< Neuer, modularer Installer | maol Medienstar > | |
|
Diese Diskussion wurde archiviert.
Es können keine neuen Kommentare abgegeben werden.
|
|
|
|
|
|
|
|
|
|
|
|
Dass Problem war, dass zum offenen Socket hin auch noch die Kompilierten Perl-Script's im Cahce gehalten werden, was dann pro Verbindung 12MB Speicher kostet. Und dies, bis der User den Netscape schliesst oder auf eine andere Site wechselt.
Wenn man den Timeout nun verkürzt, schliesst der Apache die Verbindung von sich aus und das RAM wird wieder freigegeben. Damit wird zwar die Antwortzeit für den einzelnen User schlechter, aber es können mehr User innert kürzerer Zeit bedient werden.
Grüsse
Marco --
auch die Zehe ist ein Laufwerk
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> Stellt sich die frage: ist das verhalten von Netscape ein bug oder ein feature?
Einb Feature. Falls der Server die Last nicht
abkann, muss der Admin Gegenmassnahmen ergreifen. Falls der Server niedrig ausgelastet ist, ists egal und der TCP-connect()-Overhead faellt weg.
Slashdot # 780
Symlink # 197
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Doch doch, die machen viel aus. Wenn Du den ganzen Artikel gelesen hättest, wüsstest Du, dass jede TCP-Connection 12Mbytes Arbeitsspeicher braucht (da für jede offene Connection ein Child da sein muss).
Hab's schon gelesen, aber diese 12MB-Berechnung ist etwas zu simpel.
Der Punkt ist dieser: Wenn der Server wie verrueckt ueberrannt wird, so dass pro Sekunde mehrere Childs geforkt werden, wird der Server mehr mit forken, 'perlen' und mit DB-Zugriff beschaeftigt sein, und ge-'idelte' childs werden auspaged. 'KeepAliveTimeout' wurde von 15 auf 3 Sekunden korrigiert, nach meiner Berechnung wird der Schaden damit nicht viel kleiner sein:
- Der Artikel sagt: 20 simlutane connection (= 12*20) entspricht 80% Ram -> wir haben um die 300MB Speicher
- Als der Ansturm etwas runter ging, hatte es um die 10 Hits/sec
- Dh, alle 3 Sekunden werden 3*10*12MB=360MB geforkt -> Die Machine ist immernoch hoffnungslos am pagen.
Darum war die Frage legitim, auch nach lesen des Artikels. ;)
|
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Wednesday 13. December, 09:15 MET (#5)
|
|
|
|
|
guter test ge'heise't zu werden. bevor man vielleicht mal geslashdot wird :)
|
|
|
|
|
|
|
|
|
|
|
Von Anonymer Feigling am Wednesday 20. December, 14:13 MET (#16)
|
|
|
|
|
Wenn man beachtet das Germany 80 Mill Einwohner hat und Österreich 8 Mill. dann schaut es für die Österreicher schon besser aus
26% zu 3%
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Na, dann aber unbedingt weitersagen! =:-)
--
Diesen Satz bitte nicht lesen!
|
|
|
|
|
|
|
|
|
|
|
|
|
Mir ging es aehnlich, mein Account wurde mir
um 17:20 zugemailed, d.h. ich war so gegen
17:15 das erste mal auf Symlink und die Seite
war schneller da als Slashdot normalerweise.
Die Mail kam auch prompt an, keine Spur von
Lag.
Und das mit dem Symlink ist super koennte ich nur unterstreichen, wenn Symlink das <u> Tag nicht filtern wuerde.
Dadith
|
|
|
|
|
|
|
|
|
|
|
|
|
...das der 'verheised'-Beitrag der mit den meisten Views ist. Fehlt der Seite wohl noch ein bisserl an richtigen Info ^___^
Das wird schon!
|
|
|
|
|
|