Xen)Domain0/Uの比較
Domain0/Uのpgbenchの比較の続き(?)。
【通常のカーネルで起動】
tps = 182.361199 (including connections establishing)
tps = 182.918370 (excluding connections establishing)
【Xenカーネルで起動:ただしDomainUは起動しない状態】
tps = 183.628384 (including connections establishing)
tps = 184.206425 (excluding connections establishing)
Domain0のみを稼働させている場合と、そもそも通常のカーネルで起動している場合の結果はほぼ同じで誤差の範囲と考えてもいいのではないかと。念のため、この状態でDomainUを起動して再度測定したところ、前回とほぼ同じ結果となりました。
ただ、DomainUを1つ起動することで処理トランザクション数が1/2になってしまうのは・・・? ディスクI/Oというより、CPU数(コア数)などが関連しているんですかね??(DomainUが起動していることに伴うオーバーヘッドは発生しているはずですし) 残念ながら、テストに使っている端末はDualCoreなCPUが1つだけなので、これ以上DomainUにコアを割り当てても意味のある結果になることかどうか(DomainUに2つを割り当てると、Domain0の分とあわせて物理コア数を超えてしまうので)・・・。3つ以上コアがある端末で、1つ割り当てた場合と2つ割り当てた場合を比較してみたいところです。
・・・その後、Domain0に割り当てる仮想CPU数を強制的に"1"にして、DomainUを起動しない状態で測定して見れば、ある程度参考になる値が取得できるのでは、と思って、やってみました。以下は、Domain0およびDomainUに割り当てる仮想CPU数をいずれも1にした状態で測定しています。
【Xenカーネルで起動:ただしDomainUは起動しない状態】
tps = 98.802046 (including connections establishing)
tps = 98.967479 (excluding connections establishing)
【DomainUを起動した状態のDomain0】
tps = 97.078513 (including connections establishing)
tps = 97.241328 (excluding connections establishing)
【DomainU】
tps = 87.488402 (including connections establishing)
tps = 87.615929 (excluding connections establishing)
上記の結果からすると、単純に割り当てられているCPU数(コア数)に依存しているって感じですね(PostgreSQLの挙動からすると、その通りの結果ではありますが)。この状態だと、Domain0と比べるとDomainUは10%強のパフォーマンス低下のようで。前回の測定より全体的にパフォーマンスが向上しているのは、前回は結果として仮想CPU数が全部で3個になってしまっていた(物理コア数を超えている状態)ことが影響していたのではないかと推測。
ってことは、実際に環境を構築する際は、Domain0の仮想CPU数も調整し、トータルで物理CPU数(コア数)を超えないようにした方がいいって感じでしょうか。Domain0のCPU数は、/etc/xen/xend-config.sxp ファイル内に(dom0-cpus 1)のような感じで記述すればOKです(OSの再起動が必要?)。なお、このファイルの内容に関しては、xendの設定 VA Linux Systems Japanのページにまとめられています。
ついでに、Superπを用いてCPU部分の処理速度をテストしてみました(CPU部分に関しても、厳密にはキャッシュヒットの有無などを考慮しなければいけませんが)。 ftp://pi.super-computing.org/のページからLinux.jp版のtarファイルをダウンロードし、任意のフォルダに展開。
./pi 21で209万桁の計算を行って比較(10回測定平均値)。
【通常のカーネルで起動】
Total calculation(I/O) time= 42.933( 2.942) Sec.
【Domain0】
Total calculation(I/O) time= 46.613( 5.333) Sec.
【DomainU】
Total calculation(I/O) time= 46.151( 5.109) Sec.
Domain0よりDomainUの方が微妙に結果がいいですが・・・誤差の範囲なのかどうか? pgbenchの時と違ってそれぞれの測定値が安定していたので、この通りの傾向なのかもしれません。
なお、通常のカーネルで起動した場合と比べると7%程度の速度低下。まぁ、こんなもんでしょうか。
【おまけ】
xm listなどで表示されるStateに関して、実践! Xenでサーバ統合 第1回 インストールと環境構築に記述されています。
「Linux」カテゴリの記事
- Clonezillaでリカバリ用のDVDを作成する(2009.06.21)
- USBメモリでブートするUbuntu9.04(2009.06.17)
- RHEL5.3リリース(2009.01.21)
- XenのDomainUにCentOS5.2をインストール(2009.01.13)
- Xenの仮想マシン上の時刻が9時間ずれる(2009.01.10)









![アスキー: UNIX MAGAZINE (ユニックス マガジン) 2008年 01月号 [雑誌]](http://ecx.images-amazon.com/images/I/11Z7w19zJ3L.jpg)













Comments