Xenのパフォーマンステスト 〜どこまで性能がでるの? 3

プログラムコンパイル時のパフォーマンスは?

はじめに   第1回はCPU、第2回はI/O周りの性能について検証を行いました。今回は、CPUとI/O周りに加え、メモリアクセスを組み合わせた総合的なパフォーマンスを見てみましょう。具体的には、同じプログラムをコンパイルさせ、その時間の差異を測ります。

宮本 久仁男

2006年10月27日 20:00

はじめに

   第1回はCPU、第2回はI/O周りの性能について検証を行いました。今回は、CPUとI/O周りに加え、メモリアクセスを組み合わせた総合的なパフォーマンスを見てみましょう。具体的には、同じプログラムをコンパイルさせ、その時間の差異を測ります。

   第2回では同期I/Oを発生させましたが、これはI/O装置の最適構成を検討するための仕込みであり、実際の利用を行うにあたって同期I/Oを行う ことは(信頼性はともかくとして)性能の面で不利になります。そこで、第3回は非同期I/Oにこの部分を戻してみます。

環境の作り方

   今回の検証には、Xenそのもののをコンパイルする環境が必要になります。インストールについての解説は割愛しますが、最低限コンパイラが必要です。

   みなさんの環境でチェックされる場合には、コンパイラまでインストールされているかどうかを確認の上実施してみてください。

ドメイン0におけるXenそのもののコンパイル性能を見る

   今回の執筆時にちょうどXen 3.0.3がリリースされたこともあり、このプログラムをコンパイルしてみます。

   まずはネットワークI/Oが発生しないように、次のようにLinuxカーネルソースをローカルにコピーします。



$ gzip -dc xen-3.0.3_src.tgz | tar xvf
$ cd xen-3.0.3_src
$ (カーネルソースを取得)
$ date >> ../compiletime;make;date >> ../compiletime

   このようにしてファイルcompiletimeに記録された時刻から、処理にかかった時間を算出します。コンパイルという作業の特性を考えると、表 1にあげる処理の連続になります。もっとも時間がかかるのはファイルI/Oと考えられますが、ファイルI/Oの性能は、非同期I/Oで実施すると実I/O が発生するタイミングに差異がでてきます。


  1. ファイル読み込み
  2. メモリ読み書きおよび演算
  3. ファイル書き込み
表1:コンパイルの処理の流れ

   先のコンパイルした時刻を記録したファイルcompiletimeは次のようになっています。これより、ドメイン0のXen 3.0.3のコンパイルには59分9秒かかったことがわかります。



2006年 10月 25日 水曜日 03:10:44 JST
2006年 10月 25日 水曜日 04:09:53 JST

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る