SupermicroのX7DVL-Iというマザーボードに、Xeon L5420(2.40GHz) を二台搭載した、デュアルプロセッサのサーバーについて、 消費電力や性能を調べてみました。
ハードウェア環境
CPU | Intel(R) Xeon(R) CPU L5420@2.50GHz(Quad) × 2 |
---|---|
マザーボード | Supermicro X7DVL-I |
メモリKingstom 4GB × 4 |
ソフトウェア環境
- Linuxカーネル 2.6.26
- gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,
obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexec
dir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-
libstdcxx-debug --enable-mpfr --with-tune=i686 --enable-checking=release i4
86-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
評価方法
次のような方法で評価を行いました。
- サーバーをネットワークブートし、ディスクレスで起動
- wgetでlinuxのカーネルソース(linux-2.6.20)をダウンロードする
- linuxのカーネルソースをtmpfs上に展開する
- 展開したカーネルソースディレクトリに移動し、make menuconfigを実行、終了し.configを作成する。カーネルオプションの変更はなし
- 「make -jn」で、nの数値(同時に実行できるジョブ数)を変えながら、コンパイルを実行させたときの消費電力や時間などを測定する
測定結果
処理時間
次の表は、コンパイル一回にかかる時間と、そのときのCPU使用率を示したものです。 CPUの使用率は、「(ユーザー時間+カーネル時間)/実際にかかった時間」を計算したものです。
コマンド | 時間 | CPU使用率 |
---|---|---|
make -j1 | 4m2.65s | 1.01 |
make -j2 | 2m3.44s | 1.98 |
make -j4 | 1m4.33s | 3.82 |
make -j6 | 47.19s | 5.26 |
make -j8 | 40.61s | 6.16 |
make -j10 | 37.18s | 6.77 |
make -j12 | 37.08s | 6.83 |
make -j14 | 36.5s | 6.97 |
make -j16|| | 37.8s | 6.75 |
上の表を見ると、処理時間は同時実行数が8を越えるまでは上昇しています。8を越えると、 それ以上ではほぼ実行時間は変わりません。
今回のサーバーの構成では、クアッドコアのCPUが二つになりますので、合計で8つのコアがあることになります。 そこから考えると、同時実行数が8以上になるとすべての計算能力を発揮できると考えられます。
消費電力
次のグラフは、それぞれのコンパイルでの消費電流を表したものです。 横軸はコンパイル開始からの経過時間です。
CPUアイドル時の消費電流は1.4(A) コンパイル時のピーク電流は、n≧10のとき約2.1(A)であることが分かります。
コンパイル時のピーク電流は、同時実行数が10になるまでは徐々に上がっていきます。 10以上になるとほとんど消費電力は変わらなくなっています。
まとめ
クアッドコア×2の構成をする場合、 当然ながらコア数に応じて並列実行数を高める必要があるようです。
また、今回の構成では、消費電流のピークは2(A)程度と、消費電流も少なめになっています。