Apache2の設定

DebianにおけるApache2設定ファイルのメカニズムについて考察する。

DebianにおけるApache2設定ファイルのメカニズム

  • /etc/apache2/README を読む
  • 要するに、できるだけ柔軟に設定を切り替えられるように設定ファイルを切り分けたということ
  • プライマリな設定ファイルとして使われるのは/etc/apache2/apache2.confたった一つ
  • このファイルにはまったく手を触れないことが想定されている
  • このファイルから下記の順番で実際の個々の設定ファイルを読み込む
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/[^.#]*
Include /etc/apache2/sites-enabled/[^.#]*
  • それぞれの個々の設定ファイルに適切なことを書くべし

mods-available

  • 個々のファイルを見てみると、実際には個々のファイルは非常に小さい

mod_cache, mod_disk_cacheの利用

% cd /etc/apache2/mods-available
% vi disk_cache.conf
<IfModule mod_cache.c>
	<IfModule mod_disk_cache.c>
		CacheRoot "/var/cache/apache2/disk_cache"
		CacheSize 524288
		CacheEnable disk /
		CacheDirLevels 4
		CacheDirLength 5
	</IfModule>
</IfModule>
  • cache 用ディレクトリの作成
# mkdir /var/cache/apache2/disk_cache

ベンチマーク

  • mod_cache + mod_disk_cache 使用前後のベンチマーク比較 (ApacheBench を利用)

すでにONにしていた場合、OFFにする

# a2dismod cache
# a2dismod disk_cache
# apache2ctl configtest
# apache2ctl restart
  • mod_cache + mod_disk_cache 使用前 (HTMLへのアクセス)
% ab -n 100 -c 10 http://localhost/qwik/
Time taken for tests:   1.773201 seconds
Requests per second:    56.40 [#/sec] (mean)
Time per request:       177.320 [ms] (mean)
Time per request:       17.732 [ms] (mean, across all concurrent requests)
Transfer rate:          227.84 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        3   77  51.8     73     216
Processing:    17   98  53.9     97     232
Waiting:        0   79  54.4     77     206
Total:        138  176  31.2    185     237
  50%    185
  66%    187
  75%    192
  80%    207
  90%    236
  95%    236
  98%    237
  99%    237
 100%    237 (longest request)

Time taken for tests:   1.713442 seconds
Requests per second:    58.36 [#/sec] (mean)
Time per request:       171.344 [ms] (mean)
Time per request:       17.134 [ms] (mean, across all concurrent requests)
Transfer rate:          235.78 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        3   77  51.0     71     192
Processing:    17   92  50.9     95     207
Waiting:        0   73  51.0     68     171
Total:        138  170  24.6    182     213
  50%    182
  66%    184
  75%    186
  80%    187
  90%    212
  95%    213
  98%    213
  99%    213
 100%    213 (longest request)
  • mod_cache と mod_disk_cache の有効化
# a2enmod cache
# a2enmod disk_cache
# apache2ctl configtest
# apache2ctl restart
  • mod_cache + mod_disk_cache 使用後 (HTMLへのアクセス)
% ab -n 100 -c 10 http://localhost/qwik/
Time taken for tests:   0.534895 seconds
Requests per second:    186.95 [#/sec] (mean)
Time per request:       53.490 [ms] (mean)
Time per request:       5.349 [ms] (mean, across all concurrent requests)
Transfer rate:          792.68 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        3   25  69.4      4     330
Processing:     4   25  65.9      6     408
Waiting:        0   18  53.2      3     274
Total:          8   51 122.8     10     420
  50%     10
  66%     12
  75%     13
  80%     13
  90%    415
  95%    418
  98%    419
  99%    420
 100%    420 (longest request)

Time taken for tests:   0.169890 seconds
Requests per second:    588.62 [#/sec] (mean)
Time per request:       16.989 [ms] (mean)
Time per request:       1.699 [ms] (mean, across all concurrent requests)
Transfer rate:          2378.01 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        5    6   1.3      7       9
Processing:     7    8   1.5      9      12
Waiting:        0    3   2.3      4       8
Total:         14   15   1.2     15      17
  50%     15
  66%     16
  75%     16
  80%     17
  90%     17
  95%     17
  98%     17
  99%     17
 100%     17 (longest request)

Time taken for tests:   0.158514 seconds
Requests per second:    630.86 [#/sec] (mean)
Time per request:       15.851 [ms] (mean)
Time per request:       1.585 [ms] (mean, across all concurrent requests)
Transfer rate:          2548.67 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        5    5   1.2      6       7
Processing:     6    8   1.4      8      12
Waiting:        0    3   2.1      4       7
Total:         13   14   1.4     14      18
  50%     14
  66%     15
  75%     15
  80%     15
  90%     16
  95%     18
  98%     18
  99%     18
 100%     18 (longest request)
  • すげー早くなった!

リンク

qwik.jpへの適用

やってみよう。

  • 適用してない段階でのベンチマーク
% ab -n 100 -c 10 http://qwik.jp/
Time taken for tests:   2.733603 seconds
Requests per second:    36.58 [#/sec] (mean)
Time per request:       273.360 [ms] (mean)
Time per request:       27.336 [ms] (mean, across all concurrent requests)
Transfer rate:          248.39 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        5    9   3.4      8      20
Processing:   131  255 210.7    187     906
Waiting:      120  244 210.7    175     896
Total:        138  264 210.4    196     912
  50%    196
  66%    210
  75%    212
  80%    217
  90%    868
  95%    897
  98%    901
  99%    912
 100%    912 (longest request)

Time taken for tests:   2.37523 seconds
Requests per second:    49.08 [#/sec] (mean)
Time per request:       203.752 [ms] (mean)
Time per request:       20.375 [ms] (mean, across all concurrent requests)
Transfer rate:          333.25 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        5    7   2.6      7      17
Processing:    88  186  28.7    187     415
Waiting:       78  175  28.5    177     403
Total:         94  194  29.2    194     426
  50%    194
  66%    201
  75%    203
  80%    204
  90%    208
  95%    215
  98%    225
  99%    426
 100%    426 (longest request)
  • onにする
% ab -n 100 -c 10 http://qwik.jp/
Time taken for tests:   0.607373 seconds
Requests per second:    164.64 [#/sec] (mean)
Time per request:       60.737 [ms] (mean)
Time per request:       6.074 [ms] (mean, across all concurrent requests)
Transfer rate:          1126.16 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        5   11   3.5     11      27
Processing:    18   40  48.6     28     297
Waiting:        4   27  48.5     13     284
Total:         24   52  48.2     38     308
  50%     38
  66%     41
  75%     43
  80%     44
  90%     56
  95%    175
  98%    304
  99%    308
 100%    308 (longest request)

Time taken for tests:   0.501555 seconds
Requests per second:    199.38 [#/sec] (mean)
Time per request:       50.156 [ms] (mean)
Time per request:       5.016 [ms] (mean, across all concurrent requests)
Transfer rate:          1387.68 [Kbytes/sec] received
              min  mean[+/-sd] median   max
Connect:        6   13   3.9     13      29
Processing:    24   33   6.1     32      52
Waiting:        8   18   7.6     16      41
Total:         34   46   6.4     45      68
  50%     45
  66%     49
  75%     50
  80%     51
  90%     53
  95%     63
  98%     67
  99%     68
 100%     68 (longest request)
  • はやくなった!
Last modified: 2006-09-05