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については、パラメータ変更などのパフォーマンスチューニングは実施していない。
(クライアント)

  ※WindowsApache-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による計測
(計測内容)

  • グローバルゾーンApacheとノングローバルゾーンApacheとの1秒間に処理されたリクエスト数(Requests per seconf)を比較

  ※同負荷テストを各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. 今後の課題
・ノングローバルゾーンを複数稼働した状態でのパフォーマンス計測
CGIPHPなどの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: 80

Document Path: /index.html
Document Length: 1456 bytes

Concurrency 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] received

Connection 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 265

Percentage 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: 80

Document Path: /index.html
Document Length: 1456 bytes

Concurrency 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] received

Connection 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 312

Percentage 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)

*1:SUNのドキュメントでは、「大域ゾーン」と記述されている。

*2:SUNのドキュメントでは、「非大域ゾーン」と記述されている。

*3:Apache Benchの-nオプション

*4:Apache Benchの-cオプション