VMware上のCentOSでApacheのベンチを行ってみるテスト第二弾
今回は iptables や httpd.conf を出来るだけスリムにしてみたり、実際の運営時の状態にしてみたり、さらに重くしてみたり。

iptablesが限界っぽい

昨日は気が付かなかったが、サーバーログに
Mar 23 03:14:58 localhost kernel: printk: 299 messages suppressed.
Mar 23 03:14:58 localhost kernel: ip_conntrack: table full, dropping packet.
こんなのが沢山残っていた。1万回アクセスはiptabkesでもパケットが捌ききれていない模様。
まあいい。頭の片隅に入れて、同じ環境でテスト。

ベンチ方法

ab -n 10000 -c 300 http://192.168.xx.xx/xxxx.html
ベンチ前後でTOP や  ps aux | sort -nk 4 でメモリ使用量やロードアベレージをチェック。

iptablesでアクセス制御

ポート80番をipベース・hashlimitで制御
-A RH-Firewall-1-INPUT -p tcp  -m state --state NEW --dport 80-mhashlimit --hashlimit-name t_http --hashlimit 60/m --hashlimit-burst 12--hashlimit-mode srcip --hashlimit-htable-expire 100 -j ACCEPT
とかやってみる

ConcurrencyLevel:      300
Time taken for tests:   12.745237 seconds
Complete requests:     10000
Failedrequests:       9270
   (Connect: 0, Length: 9270, Exceptions: 0)
Writeerrors:          0
Total transferred:     420864306 bytes
HTMLtransferred:      418584306 bytes
Requests per second:    784.61 [#/sec] (mean)
Time perrequest:      382.357 [ms] (mean)
Time perrequest:      1.275 [ms] (mean, across all concurrent requests)
Transferrate:         32247.34 [Kbytes/sec] received

Connection Times (ms)
             min  mean[+/-sd] median   max
Connect:       0   14222.0     0    9000
Processing:     1  2281267.8     70  12727
Waiting:       0  228 1267.7    69   12726
Total:        56  243 1293.3    70   12744

Percentage of the requests served within a certain time (ms)
  50%     70
  66%     72
  75%     77
  80%     78
  90%     96
  95%    310
  98%    866
  99%   6318
 100%  12744 (longest request)

ほとんどのレスポンスが70ms前後。変わらん。
今回はアタックするIPは1個だけ。本番環境では数千単位。この結果は鵜呑みに出来ない。
(一応、今の所本番環境でもレスポンス低下は見られない)

iptablesでアクセス制御やめる

普通に
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport80    -j ACCEPT
って戻してやる

Concurrency Level:      300
Time taken for tests:   13.361442 seconds
Complete requests:     10000
Failedrequests:       9258
   (Connect: 0, Length: 9258, Exceptions: 0)
Writeerrors:          0
Total transferred:     420851903 bytes
HTMLtransferred:      418571903 bytes
Requests per second:    748.42 [#/sec] (mean)
Time perrequest:      400.843 [ms] (mean)
Time perrequest:      1.336 [ms] (mean, across all concurrent requests)
Transferrate:         30759.26 [Kbytes/sec] received

Connection Times (ms)
             min  mean[+/-sd] median   max
Connect:       0   12184.6     0    3001
Processing:     1  2721438.7     79  13324
Waiting:       0  270 1438.8    78   13323
Total:        29  284 1462.1    80   13360

Percentage of the requests served within a certain time (ms)
  50%     80
  66%     81
  75%     82
  80%     83
  90%     86
  95%     95
  98%   1536
  99%  13289
 100%  13360 (longest request)

何故か数値が落ちた。iptablesも、何度も再起動するとレスポンス落ちるのだろうか?
良好な通信状態の部分(この場合アクセスの90%)のレスポンスが10ms落ちた。
iptablesの設定をドンドン簡略化して行っても、レスポンスが戻らなかったので、再起動直後の状態には戻らないって事だろう

apacheにmod_deflate追加

mod_deflateでHTMLを圧縮転送するようにしてみた。

ConcurrencyLevel:      300
Time taken for tests:   12.753278 seconds
Complete requests:     10000
Failedrequests:       9284
   (Connect: 0, Length: 9284, Exceptions: 0)
Writeerrors:          0
Total transferred:     421280555 bytes
HTMLtransferred:      418660031 bytes
Requests per second:    784.11 [#/sec] (mean)
Time perrequest:      382.598 [ms] (mean)
Time perrequest:      1.275 [ms] (mean, across all concurrent requests)
Transferrate:         32258.84 [Kbytes/sec] received

Connection Times (ms)
             min  mean[+/-sd] median   max
Connect:       0   11245.3     0    9000
Processing:     6  2691411.4     70  12734
Waiting:       5  268 1411.3    70   12733
Total:         6  280 1444.9    71   12751

Percentage of the requests served within a certain time (ms)
  50%     71
  66%     78
  75%     80
  80%     82
  90%     84
  95%     87
  98%   2467
  99%  12699
 100%  12751 (longest request)
もう一回行ったら以下な感じ
  50%     80
  66%     82
  75%     83
  80%     84
  90%     86
  95%     91
  98%   1347
  99%   3699
 100%   6371 (longest request)
レスポンス70~80の間は誤差か?
DEFLATE導入だけじゃ変わらない。

▼ちなみにApacheに追加しかのは以下。
SetOutputFilterDEFLATE
BrowserMatch^Mozilla/4 gzip-only-text/html
BrowserMatch^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E]!no-gzip !gzip-only-text/html
SetEnvIfNoCaseRequest_URI \.(?:gif|jpe?g|png|ico|zip|avi|mp4)$ no-gzip dont-vary
Header append VaryUser-Agent env=!dont-vary
で、これ apachectl -k graceful や apachectl restart では圧縮設定が反映されず。
 apachectl stop  apachectl start が必要だった。

移行、Apache再起動は apachectl stop  apachectl start を使う事に。

order allow,deny設定その1

SetEnvIfを複数行使ってUAやリファラ拒否
deny from xxx.xxx.xxx.xxx
deny from env=xxxxx
を複数行、大量に用意(約200行)

ConcurrencyLevel:      300
Time taken for tests:   12.757112 seconds
Complete requests:     10000
Failedrequests:       9300
   (Connect: 0, Length: 9300, Exceptions: 0)
Writeerrors:          0
Total transferred:     421201539 bytes
HTMLtransferred:      418581539 bytes
Requests per second:    783.88 [#/sec] (mean)
Time perrequest:      382.713 [ms] (mean)
Time perrequest:      1.276 [ms] (mean, across all concurrent requests)
Transferrate:         32243.11 [Kbytes/sec] received

Connection Times (ms)
             min  mean[+/-sd] median   max
Connect:       0   9 184.7     0    8999
Processing:     3  2621385.8     64  12743
Waiting:       3  262 1385.7    63   12741
Total:         3  272 1405.8    64   12751

Percentage of the requests served within a certain time (ms)
  50%     64
  66%     72
  75%     77
  80%     79
  90%     83
  95%    128
  98%   2248
  99%  12698
 100%  12751 (longest request)
[root@localhost ~]#
なんか今までで最高のレスポンスがw
実はここで、一旦NMwareを完全停止、再起動していた。
allow denyもあんまり関係ないのかな?

apache    3599 0.3  1.7  312412  9148?       S   03:35   0:00 /usr/sbin/httpd -k start
apache    3600  0.5  1.7 312268  8876?       S   03:35   0:01 /usr/sbin/httpd -k start
apache    3603  0.4  1.7 312268  8876?       S   03:35   0:00 /usr/sbin/httpd -k start
apache    3604  0.3  1.7 312268  8876?       S   03:35   0:00 /usr/sbin/httpd -k start
apache    3607  0.2  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3608  0.1  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3609  0.1  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3610  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3611  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3612  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3613  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3614  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3616  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3617  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3618  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3619  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3620  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3621  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3622  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
apache    3623  0.0  1.7 312268  8876?       S   03:36   0:00 /usr/sbin/httpd -k start
root       3597 0.0  2.4 31200012624?       Ss  03:35   0:00 /usr/sbin/httpd -k start
メモリ使用量も変化なし。

OOOOorder allow,deny設定その2

deny from xxx.xxx.xxx.xxxをさらに大量(合計300個)用意

Concurrency Level:      300
Time taken for tests:   17.503074 seconds
Complete requests:     10000
Failedrequests:       9303
   (Connect: 0, Length: 9303, Exceptions: 0)
Writeerrors:          0
Total transferred:     421198763 bytes
HTMLtransferred:      418578763 bytes
Requests per second:    571.33 [#/sec] (mean)
Time perrequest:      525.092 [ms] (mean)
Time perrequest:      1.750 [ms] (mean, across all concurrent requests)
Transferrate:         23500.21 [Kbytes/sec] received

Connection Times (ms)
             min  mean[+/-sd] median   max
Connect:       0   7 184.7     0    8999
Processing:     4  3572010.0     70  17490
Waiting:       4  357 2009.8    70   17489
Total:         4  365 2034.5    70   17497

Percentage of the requests served within a certain time (ms)
  50%     70
  66%     75
  75%     79
  80%     81
  90%     84
  95%     91
  98%   1872
  99%  17331
 100%  17497 (longest request)
[root@localhost ~]#
変わらないとみて良いだろう。

禁止IP、禁止UAをまとめてみる

SetEnvIfの内容をこの方法で正規表現で括って数行にまとめてみる。IP400個、UA60個位放り込む。

Concurrency Level:      300
Time taken for tests:   12.741683 seconds
Complete requests:      10000
Failed requests:        9309
   (Connect: 0, Length: 9309, Exceptions: 0)
Write errors:           0
Total transferred:      421393609 bytes
HTML transferred:       418772299 bytes
Requests per second:    784.83 [#/sec] (mean)
Time per request:       382.250 [ms] (mean)
Time per request:       1.274 [ms] (mean, across all concurrent requests)
Transfer rate:          32296.91 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   11 198.7      0    9001
Processing:     1  234 1328.4     65   12725
Waiting:        0  233 1328.3     65   12723
Total:          4  245 1344.5     66   12741

Percentage of the requests served within a certain time (ms)
  50%     66
  66%     69
  75%     73
  80%     78
  90%     88
  95%    132
  98%    813
  99%  12682
 100%  12741 (longest request
)あれ?サーバー丸ごと再起動していないのに、60ms台になった。
Apacheを数回再起動すると、その後は初回の値に戻ることは今まで無かったのに。。。
最初のテスト時、200行前後はdeny from xxx.xxx.xxx.xxx を入れていたし、、、
deny from xxx.xxx.xxx.xxx 20行よりも環境変数に全部ぶち込んでdeny from env=deny_ua 1回の方が高速なのか?

もう一回 deny from xxx.xxx.xxx.xxx60行くらい追加

Concurrency Level:      300
Time taken for tests:   12.736661 seconds
Complete requests:      10000
Failed requests:        9327
   (Connect: 0, Length: 9327, Exceptions: 0)
Write errors:           0
Total transferred:      422206988 bytes
HTML transferred:       419580700 bytes
Requests per second:    785.14 [#/sec] (mean)
Time per request:       382.100 [ms] (mean)
Time per request:       1.274 [ms] (mean, across all concurrent requests)
Transfer rate:          32371.98 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   21 270.8      0    9001
Processing:     1  197 1128.5     66   12723
Waiting:        0  196 1128.4     66   12721
Total:          4  218 1163.6     67   12735

Percentage of the requests served within a certain time (ms)
  50%     67
  66%     70
  75%     77
  80%     79
  90%     87
  95%    139
  98%    898
  99%   4174
 100%  12735 (longest request)

もう一回 禁止IP、禁止UAをまとめてみる

Concurrency Level:      300
Time taken for tests:   20.581883 seconds
Complete requests:      10000
Failed requests:        9301
   (Connect: 0, Length: 9301, Exceptions: 0)
Write errors:           0
Total transferred:      421199937 bytes
HTML transferred:       418579937 bytes
Requests per second:    485.86 [#/sec] (mean)
Time per request:       617.456 [ms] (mean)
Time per request:       2.058 [ms] (mean, across all concurrent requests)
Transfer rate:          19984.96 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       0    4 119.9     0    3002
Processing:     1  243 1252.0     65   20568
Waiting:        1  243 1251.8     64   20566
Total:          4  248 1258.2     65   20581

Percentage of the requests served within a certain time (ms)
  50%     65
  66%     69
  75%     70
  80%     71
  90%     81
  95%     89
  98%   1006
  99%   8864
 100%  20581 (longest request)
[root@localhost ~]#

やっぱりわずかだけど早くなっている?
すげー僅かだけど事前に環境変数にぶち込んで、denyやallowの回数は減らした方が良いかもしんない。

正規表現的をサーバーに優しくない方法で表記

SetEnvIf Remote_Addr "^(4\.78\.1\.36|38\.105\.71\.13|38\.105\.83\.22)$" deny_ua
上記の赤字部分、正規表現の先頭や末尾を表わす部分や、「.」のエスケープを外してワイルドカード扱いにしたり、CPUに優しくない表現にしてみる。リスト500個の全部外すのは大変だったので、全体の7割ほど外して検証。
今までの経験上、かなりレスポンスが悪くなると予想するが、、、

Concurrency Level:      300
Time taken for tests:   11.836919 seconds
Complete requests:      10000
Failed requests:        9335
   (Connect: 0, Length: 9335, Exceptions: 0)
Write errors:           0
Total transferred:      421695398 bytes
HTML transferred:       419072254 bytes
Requests per second:    844.81 [#/sec] (mean)
Time per request:       355.108 [ms] (mean)
Time per request:       1.184 [ms] (mean, across all concurrent requests)
Transfer rate:          34790.39 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       0    8 187.2     0    9000
Processing:     1  264 1355.9     76   11826
Waiting:        0  264 1355.7     75   11825
Total:          3  272 1371.7     76   11833

Percentage of the requests served within a certain time (ms)
  50%     76
  66%     80
  75%     81
  80%     82
  90%     85
  95%    126
  98%   1078
  99%  11779
 100%  11833 (longest request)

僅かながら違いが出た、と見て良いのか? 思ったよりレスポンス落ちなかった。
でもやっぱ正規表現は出来るだけCPUに負荷のかからない方法で書いた方が良いな。

CustomLogを取るようにしてみた


Concurrency Level:      300
Time taken for tests:   12.748234 seconds
Complete requests:      10000
Failed requests:        9312
   (Connect: 0, Length: 9312, Exceptions: 0)
Write errors:           0
Total transferred:      421343374 bytes
HTML transferred:       418722326 bytes
Requests per second:    784.42 [#/sec] (mean)
Time per request:       382.447 [ms] (mean)
Time per request:       1.275 [ms] (mean, across all concurrent requests)
Transfer rate:          32276.47 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   10 205.4      0    9001
Processing:     2  259 1333.1     71   12728
Waiting:        1  259 1333.1     70   12728
Total:          4  270 1355.2     71   12745

Percentage of the requests served within a certain time (ms)
  50%     71
  66%     81
  75%     82
  80%     83
  90%     86
  95%     94
  98%   1793
  99%  12682
 100%  12745 (longest request)
1万件、約1.2MBのアクセスログが出来上がったが、レスポンスに変化なし、とみて良いだろう

数回ベンチを繰り返し、CustomLogを肥大化させてみる

ログが3~4MB超えた辺りから、レスポンスが1割落ちた?

Percentage of the requests served within a certain time (ms)
  50%     84
  66%     86
  75%     87
  80%     87
  90%     89
  95%     93
  98%   3082
  99%  18754
 100%  18902 (longest request)

ログ肥大化した状態になると、サーバー丸ごと再起動しても、レスポンス改善は見られない。

ここでサーバーログを止めてみる

  50%     69
  66%     78
  75%     85
  80%     87
  90%     91
  95%    121
  98%    818
  99%  12642
 100%  12698 (longest request)

60ms後半まで復活。
何度かAcpahe再起動、ApacheBench実行で子プロセスが何個も立ち上がった状態。
HDDやI/O部分の性能によるだろうけど、サーバーログを残すことで10~20msは余分に時間がかかると見て良いだろう。

サーバログにenv=追加 1

CustomLog "|/usr/sbin/rotatelogs /var/www/log/xxx 86400" combined env=!nolog な感じに。
nologは画像やdummy connectionのみ。
ベンチのログは全て記録される

Concurrency Level:      300
Time taken for tests:   12.772569 seconds
Complete requests:      10000
Failed requests:        9290
   (Connect: 0, Length: 9290, Exceptions: 0)
Write errors:           0
Total transferred:      421275496 bytes
HTML transferred:       418654972 bytes
Requests per second:    782.93 [#/sec] (mean)
Time per request:       383.177 [ms] (mean)
Time per request:       1.277 [ms] (mean, across all concurrent requests)
Transfer rate:          32209.73 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       0    6 172.2     0    9000
Processing:     2  289 1470.1     82   12758
Waiting:        1  289 1470.0     82   12757
Total:          6  295 1484.2     82   12770

Percentage of the requests served within a certain time (ms)
  50%     82
  66%     84
  75%     86
  80%     87
  90%     90
  95%    129
  98%   2083
  99%  12706
 100%  12770 (longest request)
まあこんなもんだな。

サーバログにenv=追加 2

SetEnvIf deny_ua "1" nolog
CustomLog "|/usr/sbin/rotatelogs /var/www/log/xxx 86400" combined env=!nolog 
としてDENYしたホストからのログも残さないように。
ベンチのログは全て記録される

Concurrency Level:      300
Time taken for tests:   12.775212 seconds
Complete requests:      10000
Failed requests:        9278
   (Connect: 0, Length: 9278, Exceptions: 0)
Write errors:           0
Total transferred:      421237769 bytes
HTML transferred:       418617507 bytes
Requests per second:    782.77 [#/sec] (mean)
Time per request:       383.256 [ms] (mean)
Time per request:       1.278 [ms] (mean, across all concurrent requests)
Transfer rate:          32200.25 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       0    9 194.2     0    9001
Processing:     6  290 1493.5     78   12762
Waiting:        5  290 1493.5     77   12762
Total:          6  299 1513.2     78   12772

Percentage of the requests served within a certain time (ms)
  50%     78
  66%     83
  75%     85
  80%     86
  90%     88
  95%    128
  98%   2216
  99%  12703
 100%  12772 (longest request)

SetEnvIfが一個増えた位じゃ何も変わらん。

サーバログにenv=追加 3

SetEnvIf Remote_Addr "^(192\.168\.)" my_ua
SetEnvIf my_ua "1" nolog
CustomLog "|/usr/sbin/rotatelogs /var/www/log/xxx 86400" combined env=!nolog 
として、自分のアクセスもログに残らないようにしてみる。

Concurrency Level:      300
Time taken for tests:   20.834012 seconds
Complete requests:      10000
Failed requests:        9310
   (Connect: 0, Length: 9310, Exceptions: 0)
Write errors:           0
Total transferred:      421230122 bytes
HTML transferred:       418609860 bytes
Requests per second:    479.98 [#/sec] (mean)
Time per request:       625.020 [ms] (mean)
Time per request:       2.083 [ms] (mean, across all concurrent requests)
Transfer rate:          19744.49 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       0    7 169.5     0    9000
Processing:     4  404 2386.8     72   20821
Waiting:        4  404 2386.4     72   20819
Total:          4  412 2403.2     72   20828

Percentage of the requests served within a certain time (ms)
  50%     72
  66%     84
  75%     86
  80%     87
  90%     92
  95%    129
  98%   1569
  99%  20586
 100%  20828 (longest request)

若干、というかかなり復活。
やっぱ10~20ms変わる。ログは極力少なくした方が良いな。

おまけ

サーバー起動直後と、ApacheBenchを二回実行しただけの状態でpsコマンドを取ってみる

サーバー起動直後:ab -n 10000 -c 300 前の ps aux | sort -nk 4
apache    3851  0.0  1.4 312120  7316?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3852  0.0  1.4 312120  7312?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3853  0.0  1.4 312120  7312?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3854  0.0  1.4 312120  7312?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3855  0.0  1.4 312120  7312?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3856  0.0  1.4 312120  7312?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3857  0.0  1.4 312120  7312?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3858  0.0  1.4 312120  7312?       S   03:44   0:00 /usr/sbin/httpd -k start
root       3848 1.6  2.4 31198412660?       Ss  03:44   0:00 /usr/sbin/httpd -k start

ab -n 10000 -c 300 後の ps aux | sort -nk 4
apache    3852  0.3  1.7 312384  8924?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3853  0.3  1.7 312384  8924?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3854  0.3  1.7 312384  8924?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3855  0.3  1.7 312384  8924?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3856  0.2  1.7 312384  8936?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3858  0.3  1.7 312384  8924?       S   03:44   0:00 /usr/sbin/httpd -k start
apache    3864  0.1  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3865  0.2  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3866  0.1  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3867  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3869  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3870  0.2  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3871  0.2  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3873  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3874  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3875  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3876  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3877  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3878  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
apache    3879  0.0  1.7 312384  8924?       S   03:45   0:00 /usr/sbin/httpd -k start
root       3848 0.0  2.4 31198412668?       Ss  03:44   0:00 /usr/sbin/httpd -k start
ApacheBenchのアクセスでもそれなりにメモリ増えるんだねー。
このベンチテスト中、最初からここまでTOPで見るメモリ空き容量は170MB~150MBで全然変わらん。

定期的にapacheを再起動させる事も、サーバー自体を再起動させることも、それなりに意味がありそうだと感じた。
と言っても、apacheの再起動は1~2週間に1回、サーバーの再起動は1~3ヶ月に1回やれば十分な感じだけど。