Danke Danke:  0
Dislikes Dislikes:  0
Ergebnis 1 bis 5 von 5

Thema: FreeBSD: Webserver ungewöhnlich langsam

  1. #1
    Träger des silbernen Seepferdchens Avatar von sieben
    Registriert seit
    24.04.02
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    11

    erledigt FreeBSD: Webserver ungewöhnlich langsam

    Anzeige
    Hallo,

    ich habe mir gerade das Wochenend-Projekt aufgehalst aus einem Debian-Server einen FreeBSD-Server zu machen und die Kiste treibt mich gerade in den Wahnsinn.

    Bei einem Benchmark mit einer 56550 Bytes großen Datei liefert der Apache etwa 200-400 Requests pro Sekunde. Das ist peinlich bis schlimm. Unter Linux mit selber (völlig unoptimierten) Konfiguration sind es etwa 15400.

    Bei 100 Paralellen Requests beantwortet er etwa 400 Requests die Sekunde. Bei 20 parallelen Requests nur noch 200. Nginx verhält sich equivalent.

    Die Platten liefern schnell genug, Netz ist auch super, DNS-Lookups sind aus, innerhalb von Jails verhält es sich genauso wie ausserhalb, es gibt keine Einschränkungen in der /etc/login.conf, Top zeigt einen völlig gelangweilten Server. Und mir gehen wirklich die Ideen aus was da beim aufmachen neuer HTTP-Verbindungen so unglaublich ausbremst.

    Irgendjemand eine tolle Idee? :-)

    [Linux ohne KeepAlive] ab -n 1000000 -c 100 http://127.0.0.1/test.html   

    root@linux ~ # ab -n 1000000 -c 100 http://127.0.0.1/test.html

    Server Software: Apache/2.2.16
    Server Hostname: 127.0.0.1
    Server Port: 80

    Document Path: /test.html
    Document Length: 56550 bytes

    Concurrency Level: 100
    Time taken for tests: 65.068 seconds
    Complete requests: 1000000
    Failed requests: 0
    Write errors: 0
    Total transferred: 56832000000 bytes
    HTML transferred: 56550000000 bytes
    Requests per second: 15368.43 [#/sec] (mean)
    Time per request: 6.507 [ms] (mean)
    Time per request: 0.065 [ms] (mean, across all concurrent requests)
    Transfer rate: 852947.61 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 2 0.4 2 5
    Processing: 1 4 1.5 4 214
    Waiting: 0 2 0.7 2 25
    Total: 3 6 1.5 6 216

    Percentage of the requests served within a certain time (ms)
    50% 6
    66% 7
    75% 7
    80% 7
    90% 7
    95% 7
    98% 7
    99% 7
    100% 216 (longest request)


    [Linux mit KeepAlive] ab -n 1000000 -c 100 -k http://127.0.0.1/test.html   

    root@linux ~ # ab -n 1000000 -c 100 -k http://127.0.0.1/test.html

    Server Software: Apache/2.2.16
    Server Hostname: 127.0.0.1
    Server Port: 80

    Document Path: /test.html
    Document Length: 56550 bytes

    Concurrency Level: 100
    Time taken for tests: 40.955 seconds
    Complete requests: 1000000
    Failed requests: 0
    Write errors: 0
    Keep-Alive requests: 990149
    Total transferred: 56868556750 bytes
    HTML transferred: 56550000000 bytes
    Requests per second: 24417.28 [#/sec] (mean)
    Time per request: 4.095 [ms] (mean)
    Time per request: 0.041 [ms] (mean, across all concurrent requests)
    Transfer rate: 1356030.76 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 0 0.1 0 3
    Processing: 0 4 2.6 4 264
    Waiting: 0 1 2.6 1 262
    Total: 0 4 2.6 4 264

    Percentage of the requests served within a certain time (ms)
    50% 4
    66% 4
    75% 4
    80% 4
    90% 5
    95% 5
    98% 5
    99% 6
    100% 264 (longest request)


    [FreeBSD ohne KeepAlive] ab -n 1000000 -c 100 http://127.0.0.1/test.html   

    root@freebsd ~ # ab -n 1000000 -c 100 http://127.0.0.1/test.html

    Server Software: Apache/2.2.24
    Server Hostname: 127.0.0.1
    Server Port: 80

    Document Path: /test.html
    Document Length: 56550 bytes

    Concurrency Level: 100
    Time taken for tests: 2000.132 seconds
    Complete requests: 1000000
    Failed requests: 0
    Write errors: 0
    Total transferred: 56846000000 bytes
    HTML transferred: 56550000000 bytes
    Requests per second: 499.97 [#/sec] (mean)
    Time per request: 200.013 [ms] (mean)
    Time per request: 2.000 [ms] (mean, across all concurrent requests)
    Transfer rate: 27755.01 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 0 0.1 0 2
    Processing: 100 200 0.8 200 300
    Waiting: 1 100 0.8 100 201
    Total: 102 200 0.8 200 301

    Percentage of the requests served within a certain time (ms)
    50% 200
    66% 200
    75% 200
    80% 200
    90% 200
    95% 200
    98% 200
    99% 200
    100% 301 (longest request)


    [FreeBSD mit KeepAlive] ab -n 1000000 -c 100 -k http://127.0.0.1/test.html   

    root@freebsd ~ # ab -n 1000000 -c 100 -k http://127.0.0.1/test.html

    Server Software: Apache/2.2.24
    Server Hostname: 127.0.0.1
    Server Port: 80

    Document Path: /test.html
    Document Length: 56550 bytes

    Concurrency Level: 100
    Time taken for tests: 25.005 seconds
    Complete requests: 1000000
    Failed requests: 0
    Write errors: 0
    Keep-Alive requests: 990105
    Total transferred: 56882340833 bytes
    HTML transferred: 56550761234 bytes
    Requests per second: 39992.52 [#/sec] (mean)
    Time per request: 2.500 [ms] (mean)
    Time per request: 0.025 [ms] (mean, across all concurrent requests)
    Transfer rate: 2221550.92 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 0 0.0 0 2
    Processing: 0 2 22.3 0 322
    Waiting: 0 1 12.5 0 222
    Total: 0 2 22.3 0 323

    Percentage of the requests served within a certain time (ms)
    50% 0
    66% 0
    75% 0
    80% 0
    90% 0
    95% 1
    98% 1
    99% 1
    100% 323 (longest request)
    Geändert von sieben (19.04.13 um 21:54 Uhr)
    Diese Zeile ist reserviert für Clark Kent.

  2. #2
    Moderator Avatar von bitmuncher
    Registriert seit
    30.09.06
    Danke (erhalten)
    120
    Gefällt mir (erhalten)
    1574

    Standard

    Welches MPM verwendest du und wie sehen die Settings dafür aus? Gibt es hohe IO-Waits?

    Bitmuncher's TechBlog - My Homepage
    Denken ist manchmal so, als würde man wissen auskotzen.

    Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+

  3. #3
    Träger des silbernen Seepferdchens Avatar von sieben
    Registriert seit
    24.04.02
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    11

    Standard

    Die Benchmarks waren alles Worker. Als Prefork verhält es sich aber nur unwesentlich abweichend. Da Nginx sich ebenfalls genauso verhält, habe ich den Apachen als Fehlerquelle schon fast ausgeschlossen.

    Code:
    <IfModule mpm_worker_module>
        StartServers          2
        MaxClients          150
        MinSpareThreads      25
        MaxSpareThreads      75
        ThreadsPerChild      25
        MaxRequestsPerChild   0
    </IfModule>
    IO-Waits sehen auf den ersten Blick unauffällig aus. Das schaue ich morgen nochmal genau an. Die Kiste spricht so flüssig an und ist eher auffällig idle als ausgelastet.
    Diese Zeile ist reserviert für Clark Kent.

  4. #4
    Moderator Avatar von bitmuncher
    Registriert seit
    30.09.06
    Danke (erhalten)
    120
    Gefällt mir (erhalten)
    1574

    Standard

    Wie schnell reagiert denn z.B. der SSH-Server, sofern da einer läuft und welchen Durchsatz liefert z.B. ein scp? Wie sehen die Ping-Zeiten aus und sind sie stabil? Wenn da alles flüssig läuft, kann man das Netzwerk als Fehlerquelle auch ausschliessen.

    Bitmuncher's TechBlog - My Homepage
    Denken ist manchmal so, als würde man wissen auskotzen.

    Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+

  5. #5
    Träger des silbernen Seepferdchens Avatar von sieben
    Registriert seit
    24.04.02
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    11

    Standard

    Anzeige
    Guten Morgen,

    ich habe das Problem gelöst. Eigentlich hatte ich das Netzwerk als Fehler ausgeschlossen, aber weil ich dir da ein paar Werte liefern wollte habe ich auch gleich noch einen Blick über die Ausgabe von sysctl net.inet.tcp geworfen und festgestellt das net.inet.tcp.delayed_ack per Standard auf 1 steht.

    sysctl net.inet.tcp.delayed_ack=0 und alles war gut. Manchmal können einen solche Defaults echt in den Wahnsinn treiben..


    Danke für deine Mithilfe. :-)
    Diese Zeile ist reserviert für Clark Kent.

  6. Gefällt mir bitmuncher liked this post

Ähnliche Themen

  1. PC hakt ungewöhnlich
    Von Farin Ferien im Forum Die Problemzone
    Antworten: 13
    Letzter Beitrag: 15.07.07, 23:00
  2. Apache2-Webserver zu langsam
    Von metax. im Forum Linux/UNIX
    Antworten: 8
    Letzter Beitrag: 02.06.07, 16:55
  3. Apache2-Webserver zu langsam
    Von metax. im Forum Webmaster-Security
    Antworten: 1
    Letzter Beitrag: 01.06.07, 10:29
  4. Zugriff auf Webserver sehr langsam
    Von .tails im Forum Internet Allgemein
    Antworten: 4
    Letzter Beitrag: 28.06.06, 23:12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •