Wyvern と Apache とで簡単な性能評価を行った結果について報告します。 ベンチマークツールには、Apache に附属の ab-1.3d を利用しました。
Wyvern および Apache が動作するマシンのスペックは以下の通りです。
CPU: | Cyrix GXm (300MHz) |
OS: | 4.5-RC |
Mem: | 128MB |
Wyvern の configure オプションは、"--enable-jp-mesg" と "--enable-keep-alive" と "--disable-content-md5" を付けました。 また、Wyvern と Apache の設定はデフォルトのままとします。
クライアントマシンからサーバマシンまでのネットワーク的な距離です。 ping(8)を利用して測定しました。
kouichi@swordfish[710][0:37] ping -c 10 192.168.1.3 PING 192.168.1.3 (192.168.1.3): 56 data bytes 64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.465 ms 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.437 ms 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.441 ms 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.445 ms 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.458 ms 64 bytes from 192.168.1.3: icmp_seq=5 ttl=64 time=0.444 ms 64 bytes from 192.168.1.3: icmp_seq=6 ttl=64 time=0.445 ms 64 bytes from 192.168.1.3: icmp_seq=7 ttl=64 time=0.432 ms 64 bytes from 192.168.1.3: icmp_seq=8 ttl=64 time=0.444 ms 64 bytes from 192.168.1.3: icmp_seq=9 ttl=64 time=0.439 ms --- 192.168.1.3 ping statistics --- 10 packets transmitted, 10 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.432/0.445/0.465/0.009 ms
クライアントマシンからサーバマシンに次のコマンドを実行した結果を 性能評価結果として示します。Keep-Alive のありとなしで実験しました。
% ab -c 8 -t 10 -k http://192.168.1.3/
% ab -c 8 -t 10 http://192.168.1.3/
Server Software: | Wyvern/2.0.3 | Apache/1.3.22 | ||||
Server Hostname: | 192.168.1.3 | 192.168.1.3 | ||||
Server Port: | 8080 | 80 | ||||
Document Path: | /index.html | /index.html | ||||
Document Length: | 2297 bytes | 2297 bytes | ||||
Concurrency Level: | 8 | 8 | ||||
Time taken for tests: | 10.001 seconds | 10.003 seconds | ||||
Complete requests: | 2321 | 2250 | ||||
Failed requests: | 0 | 0 | ||||
Total transferred: | 5,941,760 bytes | 5,726,250 bytes | ||||
HTML transferred: | 5,331,337 bytes | 5,168,250 bytes | ||||
Requests per second: | 232.08 | 224.93 | ||||
Transfer rate: | 594.12 kb/s received | 572.45 kb/s received | ||||
Connection Times (ms) | ||||||
min | avg | max | min | avg | max | |
Connect: | 0 | 13 | 62 | 0 | 14 | 67 |
Processing: | 15 | 20 | 24 | 7 | 20 | 58 |
Total: | 15 | 33 | 86 | 7 | 34 | 125 |
Server Software: | Wyvern/2.0.3 | Apache/1.3.22 | ||||
Server Hostname: | 192.168.1.3 | 192.168.1.3 | ||||
Server Port: | 8080 | 80 | ||||
Document Path: | /index.html | /index.html | ||||
Document Length: | 2297 bytes | 2297 bytes | ||||
Concurrency Level: | 8 | 8 | ||||
Time taken for tests: | 10.014 seconds | 10.002 seconds | ||||
Complete requests: | 2516 | 2943 | ||||
Failed requests: | 0 | 0 | ||||
Keep-Alive requests: | 2266 | 2919 | ||||
Total transferred: | 6,522,830 bytes | 7,599,202 bytes | ||||
HTML transferred: | 5,781,549 bytes | 6,761,234 bytes | ||||
Requests per second: | 251.25 | 294.24 | ||||
Transfer rate: | 651.37 kb/s received | 759.77 kb/s received | ||||
Connection Times (ms) | ||||||
min | avg | max | min | avg | max | |
Connect: | 0 | 1 | 32 | 0 | 0 | 33 |
Processing: | 8 | 30 | 44 | 4 | 26 | 90 |
Total: | 8 | 31 | 76 | 4 | 26 | 123 |
2.0 のころよりも Keep-Alive 時のパフォーマンスが向上しなくなった…。 今後の課題は、如何にパフォーマンスを上げるかですね。