Solarisゾーンで仮想化(パフォーマンス計測)
グローバルゾーン*1とノングローバルゾーン*2上でApacheを起動し、Apache Benchにてパフォーマンス計測を実施した。
環境は以下のとおり。
(サーバ)
- OS: SunOS Release 5.10 Version Generic_118833-33 64-bit
- CPU: UltraSPARC-IIIi 1002 MHz * 1
- MEM: 1024MB
- H/W: SunFire V125
- Apache: 2.0.58(Solaris10標準インストール済みのもの。)
※OS及びApacheについては、パラメータ変更などのパフォーマンスチューニングは実施していない。
(クライアント)
- OS: Windows XP Professional SP2
- CPU: Intel Core 2 Duo 1.66GHz
- MEM: 1.5GB
※Windows版Apache-2.2.6付属のab(Version 2.0.40-dev)を使用した。
※ネットワークは無線LANを使用しており、若干不安定。
1. Apacheの起動
以下の作業は、グローバルゾーン及びノングローバルゾーン双方で実施する。
# cd /etc/apache2
# cp httpd.conf-example httpd.conf
# vi httpd.conf
変更箇所は以下2点。
ServerAdmin
ServerName
# svcs -a | grep apache
legacy_run 15:19:52 lrc:/etc/rc3_d/S50apache
disabled 15:19:14 svc:/network/http:apache2
# svcadm enable -t svc:/network/http:apache2
# svcs -x svc:/network/http:apache2
svc:/network/http:apache2 (Apache 2 HTTP server)
状態: 2007年10月23日 (火) 10時36分35秒 以降onlineです
参照: httpd(8)
参照: /var/svc/log/network-http:apache2.log
影響: ありません。
2. Apache Benchによる計測
(計測内容)
※同負荷テストを各5回実施し、初回及び最上値と最下値を除いた2回の平均値とする。
※リクエスト回数*3の10%を同時発行リクエスト回数*4とする。
(計測条件)
- グローバルゾーン測定時には、ノングローバルゾーンをシャットダウン
- ノングローバルゾーン測定時には、グローバルゾーンのApache停止
- テスト毎(ユーザ数変更毎)にOS再起動
(計測結果)
リクエスト回数/同時発行数 グローバルゾーン ノングローバルゾーン
300/30 310.4 268.86
500/50 296.32 337.44
1000/100 387.89 393.85
1500/150 392.67 399.17
2000/200 130.54 132.50
3. まとめ
グローバルゾーン及びノングローバルゾーンでのApacheリクエスト処理数に大きな違いは確認できなかった。
単純なHTMLファイルの処理については、ノングローバルゾーンでも十分なパフォーマンスが得られた。
また、今回使用したマシンでは、1700ユーザを超えたあたりからリクエスト処理数の低下が確認できた。
リクエスト回数/同時発行数 1秒間に処理されたリクエスト数
300/30 310.4
500/50 296.32
1000/100 387.89
1500/150 392.67
1700/170 387.91
1800/180 165.66
2000/200 130.54
4. 今後の課題
・ノングローバルゾーンを複数稼働した状態でのパフォーマンス計測
・CGIやPHPなどのHTML以外のファイル処理時のパフォーマンス計測
5. (参考)Apache Benchログ(1000ユーザ実行時)
グローバルゾーン
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/Benchmarking xxx.xxx.xxx.xxx (be patient)
Server Software: Apache/2.0.58
Server Hostname: xxx.xxx.xxx.xxx
Server Port: 80Document Path: /index.html
Document Length: 1456 bytesConcurrency Level: 100
Time taken for tests: 2.562500 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 1709000 bytes
HTML transferred: 1456000 bytes
Requests per second: 390.24 [#/sec] (mean)
Time per request: 256.250 [ms] (mean)
Time per request: 2.563 [ms] (mean, across all concurrent requests)
Transfer rate: 650.93 [Kbytes/sec] receivedConnection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 5.1 0 15
Processing: 109 239 30.4 250 265
Waiting: 109 233 30.7 250 265
Total: 109 241 30.6 250 265Percentage of the requests served within a certain time (ms)
50% 250
66% 250
75% 250
80% 265
90% 265
95% 265
98% 265
99% 265
100% 265 (longest request)
ノングローバルゾーン
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/Benchmarking xxx.xxx.xxx.xxx (be patient)
Server Software: Apache/2.0.58
Server Hostname: xxx.xxx.xxx.xxx
Server Port: 80Document Path: /index.html
Document Length: 1456 bytesConcurrency Level: 100
Time taken for tests: 2.625000 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 1709000 bytes
HTML transferred: 1456000 bytes
Requests per second: 380.95 [#/sec] (mean)
Time per request: 262.500 [ms] (mean)
Time per request: 2.625 [ms] (mean, across all concurrent requests)
Transfer rate: 635.43 [Kbytes/sec] receivedConnection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 5.3 0 15
Processing: 125 245 35.4 250 312
Waiting: 109 239 35.0 250 296
Total: 125 247 35.7 250 312Percentage of the requests served within a certain time (ms)
50% 250
66% 265
75% 265
80% 265
90% 281
95% 296
98% 296
99% 296
100% 312 (longest request)