"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Apache 2.2 auf Win32: Probleme mit rohem Durchsatz (Downloads) *update*

GrandAdmiralThrawn 20.12.2011 - 10:03 3252 28
Posts

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3700
Grüß euch!

Ich betreibe momentan einen Apache 2.2 Webserver auf Win32 (Windows 2000 Server), und er gibt mir ein Rätsel auf, das ich nicht zu lösen imstande bin.

Wenn ich von dem Server viele kleine Files sauge (Ansurfen einer Webseite) geht das gefühlt sehr zackig und flott. Auch PHP läuft ziemlich schnell und fein, trotz des Alters der Plattform.

Es gibt nur ein gewaltiges Problem: Der rohe Durchsatz (wenn ich z.B. ein einzelnes, großes File sauge) ist capped bei ca. 550-600kB/s, selbst im LAN.

Dieses Problem hatten schon einige Leute, und es wurde auf folgende, mögliche Lösungen hingewiesen im Netz:
  • "SendBufferSize" Direktive in httpd.conf setzen und hoch einstellen, z.B. auf 1MB oder mehr.
  • "EnableSendfile Off" in httpd.conf setzen.
  • "EnableMMAP Off" in httpd.conf setzen.
  • "Win32DisableAcceptEx" in httpd.conf setzen.
  • mod_bw installieren (1ms Precision Timer), und "BandWidthPacket 16384" setzen.
  • HKLM\SYSTEM\CurrentControlSet\Services\AFD\Parameters\DefaultReceiveWindow auf z.B. 4194304 in Dezimal (REG_DWORD), dann Reboot.
  • HKLM\SYSTEM\CurrentControlSet\Services\AFD\Parameters\DefaultSendWindow auf z.B. 4194304 in Dezimal (REG_DWORD), dann Reboot.
Die einzige spürbare Steigerung konnte ich mit "EnableSendFile Off" erzielen, was mich von ca. 430kB/s auf ca. 550kB/s gebracht hat, aber die Welt ist das auch ned.

Im Vergleich dazu habe ich schnell Mal den winzigen HTTPD von AnalogX installiert, um die Rohleistung zu vergleichen. Der AnalogX SimpleWWW bringt über 3MByte/s zusammen, also mehr als das 5-fache, eher das 6-fache der Leistung des Apachen.

Einziger Weg wäre der Umstieg auf einen gänzlich anderen Webserver wie lighttpd, aber das ist schon ein ***** voll Arbeit, daher wärs mir lieber ich würd den Apachen auf Vordermann bringen können.

CPU Last ist übrigens beim Test eher marginal. RAM ist auch genug da, Bandbreite ist 100Mbit/s im LAN. Selbst der FTP+SSL (AES256) bringt 2MByte/s zusammen!!

Konfig is ein Quad Pentium PRO mit 200MHz und 2GB RAM.

Was läuft da beim Apachen derart schief, und was kann man da noch tun oder wenigstens diagnostizieren?!

Danke!

Edit: Ok, jetzt wirds gespenstisch. Bin einer Spur ausm Netz gefolgt, und habe den Download mit HTTPS statt HTTP versucht, da mein Server ja eh SSL-enabled ist.

Tjo. HTTP: 550kB/s. HTTPS: 2.7MByte/s.

Sollte HTTPS ned eigentlich lahmer sein, und ned 5 Mal so schnell?!?

Was geht da vor....

Edit 2: Mal zum Spaß unterschiedliche Clienst getestet: wget, IE8, FF8, Chrome 13, Opera 11.60. Macht leider keinen Unterschied.
Bearbeitet von GrandAdmiralThrawn am 20.12.2011, 14:28

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4457
Schreit nach Post bei http://serverfault.com/ ... klingt irgendwie spezifisch.

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3700
Ok, danke fürn Tip, habs Mal dort gepostet, vielleicht hilfts!

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4457
n1, bookmarked :)

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25429
Was sind das für Files, die hier übertragen werden? Plain text oder binary? Ist Gzip bzw. mod_deflate aktiviert? Eine Liste aller aktiven Module wäre auch fein.

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 12273
schonmal überprüft ob es nicht was mit einem anderen dienst oder einer fehlerhaften windows conf zu tun hat ? also mal z.B. alle anderen dienste ausmachen

edit: ok, wirds wahrscheinlich ned sein wenns mit anderen webservern geht...
Bearbeitet von davebastard am 21.12.2011, 17:41

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12082
Apache auf Pentium Pro(!) unter Windows(!!) 2000(!!!).

deadhorse_174485.gif

scnr

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3700
Also bis auf das ******problem mit dem plain HTTP static file serving läuft er schneller als man glaubt, schafft sogar PHPBBs usw. ;)

Habe jetzt testweise Mal auf 2.2.21 upgraded, hilft aber auch nicht wirklich.

[Hier der Serverfault Post]

Wenn man bedenkt, daß er mit HTTPS 2.7MB/s raushaut (was mehr als gut genug ist), dann muß das mit den 550k irgendwo ein schlechter Witz / grober Bug sein, oder eine grobe Fehlkonfiguration. Weil sonst is er ja schnell genug...

Hey COLO! Lauf los, und fix das! :rolleyes: :p

Aber im Ernst... ich will wissen wo der Hund begraben liegt...

Edit:
Zitat von mat
Was sind das für Files, die hier übertragen werden? Plain text oder binary? Ist Gzip bzw. mod_deflate aktiviert? Eine Liste aller aktiven Module wäre auch fein.
Es sind Binärdateien, die hier übertragen werden. Zum Beispiel ZIP-Archive oder große Bilder.

mod_deflate ist nicht geladen.

Hier die Modulliste:
Code:
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule cache_module modules/mod_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule php5_module modules/php5apache2_2.dll
Bearbeitet von GrandAdmiralThrawn am 21.12.2011, 18:52

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 12273
vielleicht downgraden auf version 1.x um den fehler weiter einzugrenzen ?
ist das selber kompiliert oder gibts da binaries oder wie funzt das unter windows überhaupt ?

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25429
Gibt einen Installer.

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 12273
war nur so eine idee, vielleicht müsste da beim kompilieren irgend ein flag gesetzt werden für die veraltete cpu

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3700
Kompiliert ist er mit Microsoft Visual C++ 6.0 ("VC6"), ein offizieller Build im MSI Paket mit OpenSSL. Ich hatte ganz am Anfang der 2.x Reihe auch Mal irgendeinen Custom Build laufen, aber der war auch nichts besser.

VC9 Builds laufen halt nicht mehr am 2000er. Alle Module sind ebenfalls in VC6 gebaut, also z.B. PHP.

Auf Version 1.x downgraden möcht ich aber wirklich, wirklich nicht. Da kann ich gleich versuchen auf lighttpd oder so umzusteigen..

1.3 hatte ich auch Mal im Einsatz, viel früher, aber auf derselben Maschine. Leider erinnere ich mich ned so genau, was das Transferverhalten mit der Version anbelangt..

Das eine Detail, das ich GAR ned pack is, wieso er mit Verschlüsselung 5 Mal so schnell is... Als würde irgendwas in den Traffic eingreifen. Aber andere Webserver sind eben plain auch flott. Perplex.

Edit: Server testweise auf einem alternativen Port laufen lassen. Kein Unterschied..
Bearbeitet von GrandAdmiralThrawn am 21.12.2011, 19:15

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 12273
Zitat
Auf Version 1.x downgraden möcht ich aber wirklich, wirklich nicht. Da kann ich gleich versuchen auf lighttpd oder so umzusteigen..

auch wieder war...lighttpd wär von den resourcen her vielleicht eh gscheiter.

aber viel glück auf jedenfall :)

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3700
Zitat von davebastard
[...] aber viel glück auf jedenfall :)
Oohje, das ist das was man üblicherweise zu lesen kriegt, wenn die Ratten das sinkende Schiff verlassen, und man mit seinem Softwareproblem spurlos unter den Wellen verschwindet... :rolleyes:

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 12273
die flags die ich vorher gemeint hab die man beim kompilieren setzen könnte sind -mcpu=pentiumpro -march=pentiumpro

ähnlich hier:

http://www.faqs.org/docs/securing/chap29sec240.html

ich weiß der link ist für apache 1.x aber das sollte ja beim 2er auch möglich sein
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz