歩行訓練

おいっちにー!

古いアパッチをなんとかチューニングする3

やりなおし

prefork から

# /usr/local/httpd-2.2.16/bin/httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

1

Concurrency Level:      100
Time taken for tests:   6.144 seconds
Complete requests:      1000
Failed requests:        119
   (Connect: 0, Receive: 0, Length: 119, Exceptions: 0)
Write errors:           0
Total transferred:      14409634 bytes
HTML transferred:       14131634 bytes
Requests per second:    162.75 [#/sec] (mean)
Time per request:       614.427 [ms] (mean)
Time per request:       6.144 [ms] (mean, across all concurrent requests)
Transfer rate:          2290.25 [Kbytes/sec] received

2

Concurrency Level:      100
Time taken for tests:   6.150 seconds
Complete requests:      1000
Failed requests:        92
   (Connect: 0, Receive: 0, Length: 92, Exceptions: 0)
Write errors:           0
Total transferred:      14418112 bytes
HTML transferred:       14140112 bytes
Requests per second:    162.60 [#/sec] (mean)
Time per request:       615.004 [ms] (mean)
Time per request:       6.150 [ms] (mean, across all concurrent requests)
Transfer rate:          2289.45 [Kbytes/sec] received

3

Concurrency Level:      100
Time taken for tests:   6.176 seconds
Complete requests:      1000
Failed requests:        92
   (Connect: 0, Receive: 0, Length: 92, Exceptions: 0)
Write errors:           0
Total transferred:      14418112 bytes
HTML transferred:       14140112 bytes
Requests per second:    161.93 [#/sec] (mean)
Time per request:       617.560 [ms] (mean)
Time per request:       6.176 [ms] (mean, across all concurrent requests)
Transfer rate:          2279.97 [Kbytes/sec] received

 差が出なさそうなので負荷を上げる

1

Concurrency Level:      1000
Time taken for tests:   53.931 seconds
Complete requests:      10000
Failed requests:        1643
   (Connect: 0, Receive: 0, Length: 1643, Exceptions: 0)
Write errors:           0
Total transferred:      143954098 bytes
HTML transferred:       141174098 bytes
Requests per second:    185.42 [#/sec] (mean)
Time per request:       5393.083 [ms] (mean)
Time per request:       5.393 [ms] (mean, across all concurrent requests)
Transfer rate:          2606.68 [Kbytes/sec] received

2.

Concurrency Level:      1000
Time taken for tests:   54.440 seconds
Complete requests:      10000
Failed requests:        1804
   (Connect: 0, Receive: 0, Length: 1804, Exceptions: 0)
Write errors:           0
Total transferred:      143945854 bytes
HTML transferred:       141164464 bytes
Requests per second:    183.69 [#/sec] (mean)
Time per request:       5444.008 [ms] (mean)
Time per request:       5.444 [ms] (mean, across all concurrent requests)
Transfer rate:          2582.14 [Kbytes/sec] received

3.

Benchmarking xxxxxxxxxxxxxxxxx (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
apr_socket_recv: Connection reset by peer (104)

オウフ。これ以降は失敗するはめに。

# ps aux | grep httpd | wc -l
247

# netstat | grep TIME_WAIT | wc -l
7193

あーなんかすごいことに。後でカーネルパラいじりましょ。

もうちょっと負荷を下げる。このままやってええんか・・・?

1

Concurrency Level:      100
Time taken for tests:   94.835 seconds
Complete requests:      10000
Failed requests:        218
   (Connect: 0, Receive: 0, Length: 218, Exceptions: 0)
Write errors:           0
Total transferred:      144401548 bytes
HTML transferred:       141621548 bytes
Requests per second:    105.45 [#/sec] (mean)
Time per request:       948.352 [ms] (mean)
Time per request:       9.484 [ms] (mean, across all concurrent requests)
Transfer rate:          1486.97 [Kbytes/sec] received

 2.

Concurrency Level:      100
Time taken for tests:   60.733 seconds
Complete requests:      10000
Failed requests:        549
   (Connect: 0, Receive: 0, Length: 549, Exceptions: 0)
Write errors:           0
Total transferred:      144297614 bytes
HTML transferred:       141517614 bytes
Requests per second:    164.65 [#/sec] (mean)
Time per request:       607.331 [ms] (mean)
Time per request:       6.073 [ms] (mean, across all concurrent requests)
Transfer rate:          2320.25 [Kbytes/sec] received

 3

Concurrency Level:      100
Time taken for tests:   60.921 seconds
Complete requests:      10000
Failed requests:        516
   (Connect: 0, Receive: 0, Length: 516, Exceptions: 0)
Write errors:           0
Total transferred:      144307976 bytes
HTML transferred:       141527976 bytes
Requests per second:    164.15 [#/sec] (mean)
Time per request:       609.209 [ms] (mean)
Time per request:       6.092 [ms] (mean, across all concurrent requests)
Transfer rate:          2313.26 [Kbytes/sec] received

 これぐらいにしてworkerへ

# /usr/local/httpd-2.2.16/bin/httpd -l
Compiled in modules:
  core.c
  worker.c
  http_core.c
  mod_so.c

 1.

Concurrency Level:      100
Time taken for tests:   6.348 seconds
Complete requests:      1000
Failed requests:        62
   (Connect: 0, Receive: 0, Length: 62, Exceptions: 0)
Write errors:           0
Total transferred:      14427532 bytes
HTML transferred:       14149532 bytes
Requests per second:    157.53 [#/sec] (mean)
Time per request:       634.782 [ms] (mean)
Time per request:       6.348 [ms] (mean, across all concurrent requests)
Transfer rate:          2219.56 [Kbytes/sec] received

2.

Concurrency Level:      100
Time taken for tests:   6.177 seconds
Complete requests:      1000
Failed requests:        117
   (Connect: 0, Receive: 0, Length: 117, Exceptions: 0)
Write errors:           0
Total transferred:      14410262 bytes
HTML transferred:       14132262 bytes
Requests per second:    161.90 [#/sec] (mean)
Time per request:       617.677 [ms] (mean)
Time per request:       6.177 [ms] (mean, across all concurrent requests)
Transfer rate:          2278.30 [Kbytes/sec] received

3.

Concurrency Level:      100
Time taken for tests:   6.118 seconds
Complete requests:      1000
Failed requests:        130
   (Connect: 0, Receive: 0, Length: 130, Exceptions: 0)
Write errors:           0
Total transferred:      14434760 bytes
HTML transferred:       14156204 bytes
Requests per second:    163.44 [#/sec] (mean)
Time per request:       611.849 [ms] (mean)
Time per request:       6.118 [ms] (mean, across all concurrent requests)
Transfer rate:          2303.91 [Kbytes/sec] received

負荷アップ

1.

Benchmarking xxxxxxxxxxxxxx (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
apr_socket_recv: Connection reset by peer (104)

ぐあああ

さらに

apr_poll: The timeout specified has expired (70007)

が出まくるようになった。

この辺を参考にアタック側のsysctl.confを追記・・・

serverfault.com

負荷下げ

1.

Concurrency Level:      100
Time taken for tests:   39.337 seconds
Complete requests:      10000
Failed requests:        642
   (Connect: 0, Receive: 0, Length: 642, Exceptions: 0)
Write errors:           0
Total transferred:      144268412 bytes
HTML transferred:       141488412 bytes
Requests per second:    254.21 [#/sec] (mean)
Time per request:       393.374 [ms] (mean)
Time per request:       3.934 [ms] (mean, across all concurrent requests)
Transfer rate:          3581.51 [Kbytes/sec] received

早くなった・・・よく考えたらカーネルパラ変えたらアカンな・・・

戻す。’

Benchmarking xxxxxxxxxx (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
apr_poll: The timeout specified has expired (70007)
Total of 9986 requests completed

 なんでや・・・・httpdをリブートしてみる

1

Concurrency Level:      100
Time taken for tests:   43.965 seconds
Complete requests:      10000
Failed requests:        692
   (Connect: 0, Receive: 0, Length: 692, Exceptions: 0)
Write errors:           0
Total transferred:      144252712 bytes
HTML transferred:       141472712 bytes
Requests per second:    227.45 [#/sec] (mean)
Time per request:       439.651 [ms] (mean)
Time per request:       4.397 [ms] (mean, across all concurrent requests)
Transfer rate:          3204.17 [Kbytes/sec] received

2

Concurrency Level:      100
Time taken for tests:   38.418 seconds
Complete requests:      10000
Failed requests:        876
   (Connect: 0, Receive: 0, Length: 876, Exceptions: 0)
Write errors:           0
Total transferred:      144194936 bytes
HTML transferred:       141414936 bytes
Requests per second:    260.29 [#/sec] (mean)
Time per request:       384.183 [ms] (mean)
Time per request:       3.842 [ms] (mean, across all concurrent requests)
Transfer rate:          3665.32 [Kbytes/sec] received

 3

Benchmarking xxxxxxxxx (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
apr_poll: The timeout specified has expired (70007)
Total of 9999 requests completed

 嫌がらせか

3-2

Concurrency Level:      100
Time taken for tests:   39.385 seconds
Complete requests:      10000
Failed requests:        940
   (Connect: 0, Receive: 0, Length: 940, Exceptions: 0)
Write errors:           0
Total transferred:      144174840 bytes
HTML transferred:       141394840 bytes
Requests per second:    253.91 [#/sec] (mean)
Time per request:       393.846 [ms] (mean)
Time per request:       3.938 [ms] (mean, across all concurrent requests)
Transfer rate:          3574.89 [Kbytes/sec] received

なんだかんだで、workerの方が早いのは分かる。が、なんか足りてない感。

worker にしよう、そうしよう。

とりあえずここまで。