前回に続いて、評価用にお借りしたXeon3060とXeon3070と同じ条件で、デュアルコアプロセッサの消費電力、発熱特性、性能等を調べてみました。

評価機の構成は、弊社の製品515MMT+X3220-2G-1で、Xeon 3060 または 3070 プロセッサが一個搭載されています。その他のスペックは以下の通りです。

評価機Aの構成

 
M/B Supermicro PDSMi+
CPU Xeon 3060 (Conroe, 2.40GHz, FSB=1066MHz, L2 Cache=2x2M, Dual Core, TDP=65W, ....)
Memory Kingstone KVR667D2E5/1G x 2(DDR2 667MHz ECC 1GB x 2)
HDD Maxtor MaxlineIII 250GB SATAII, 12V 1500mA, 5V 740mA

 

 評価機Bの構成

M/B Supermicro PDSMi+
CPU Xeon 3070 (Conroe, 2.66GHz, FSB=1066MHz, L2 Cache=2x2M, Dual Core, TDP=65W, ....)
Memory Kingstone KVR667D2E5/1G x 2(DDR2 667MHz ECC 1GB x 2)
HDD Maxtor MaxlineIII 250GB SATAII, 12V 1500mA, 5V 740mA

評価方法

  1. サーバをネットワークブートし、ディスクレスでLinuxを起動する。
  2. HDDをマウントし、あらかじめ置いてある、linuxカーネルソースを、tmpfs上に展開する。
  3. 展開したカーネルソースディレクトリに移動し、make menuconfigを実行、終了し、.configを作成。このときオプション設定は行わない。
  4. make -j nでカーネルコンパイルを行い、温度、消費電流などのデータを取得する。

ソフトウェア環境

ネットワークブートしたカーネルと、その後、apt-getによりダウンロードしたgccのバージョンは
次の通りです。

$ uname -a
Linux diag 2.6.22.9-net01 #3 SMP Thu Oct 25 17:24:08 JST 2007 i686 GNU/Linux

$ 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 --libexecdir=/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 i486-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

Xeon3060(2.40GHz)測定結果

処理時間 

以下の出力結果は、tcshのtimeコマンドの出 力値で、単位が%の部分がCPU使用率を表し、n=2ではじめて、200%近く、すなわち2つのコアを十分に使っていることを裏付けていると言えます。ま た、n=1の場合にコンパイルに4分18秒程度かかっているのに対して、n=2以上で2分16秒程度で終了している点なども、嬉しい部分でもあります。
デュアルコアCPUですので、n=2以上でようやくCPUを使い切っていると解釈することができます。
RAM上ではなくHDD上に構築したファイルシステムであれば、nを実コア数以上に増やしてもいいのかもしれません。

make -j1,  243.663u 14.616s 4:18.91 99.7%  0+0k 0+0io 0pf+0w
make -j1,  242.687u 14.060s 4:17.06 99.8%  0+0k 0+0io 0pf+0w
make -j2,  249.651u 15.084s 2:17.88 192.0% 0+0k 0+0io 0pf+0w
make -j4,  252.091u 15.320s 2:16.31 196.1% 0+0k 0+0io 0pf+0w
make -j8,  252.411u 15.060s 2:16.62 195.7% 0+0k 0+0io 0pf+0w
make -j10, 251.795u 15.668s 2:16.27 196.2% 0+0k 0+0io 0pf+0w
make -j12, 252.099u 15.308s 2:16.16 196.3% 0+0k 0+0io 0pf+0w
 

温度変化

 

Image

消費電流

次のグラフには、make -jn(n=1, 1, 2, 4, 8, 10, 12)を冷却のための休憩(300秒)をはさみつつ、連続して行った際の、電流の値を示しています。 CPUアイドル時の消費電流が約1.04A、カーネルコンパイル時のピーク電流は、n=2以上で飽和し、約1.22Aであることがわかります。アイドル時とピーク時の差は0.18Aです。

Image 

Xeon3070(2.66GHz)測定結果

make -j1,  220.681u 13.496s 3:54.50 99.8%  0+0k 0+0io 0pf+0w
make -j1,  219.377u 13.372s 3:53.09 99.8%  0+0k 0+0io 0pf+0w
make -j2,  225.758u 14.048s 2:05.51 191.0% 0+0k 0+0io 0pf+0w
make -j4,  227.798u 14.572s 2:03.27 196.6% 0+0k 0+0io 0pf+0w
make -j8,  228.326u 14.300s 2:03.13 197.0% 0+0k 0+0io 0pf+0w
make -j10, 228.186u 14.556s 2:03.19 197.0% 0+0k 0+0io 0pf+0w
make -j12, 227.958u 14.716s 2:03.14 197.0% 0+0k 0+0io 0pf+0w

温度変化

Image

消費電流 

次のグラフには、make -jn(n=1, 1, 2, 4, 8, 10, 12)を冷却のための休憩(300秒)をはさみつつ、連続して行った際の、電流の値を示しています。 CPUアイドル時の消費電流が約0.920A、カーネルコンパイル時のピーク電流は、n=2以上で飽和し、約1.31Aであることがわかります。 アイドル時とピーク時の差は0.39Aです。

Image 

 

処理速度の差について

クロック周波数の差だけの性能差になるか比較してみました。Xeon3070(2.66GHz)とXeon3060(2.40GHz)では、クロック周波数比は1.00対0.902です。

カーネルコンパイル時間n=1(2回目の値)の場合の処理時間の比は、

Xeon3060, 242.687u 14.060s 4:17.06 99.8%  0+0k 0+0io 0pf+0w
4:17= 257秒

Xeon3070, 219.377u 13.372s 3:53.09 99.8%  0+0k 0+0io 0pf+0w
3:53= 234秒

257:234=1:0.911となり、ほぼクロック周波数の差となっています。

カーネルコンパイル時間n=2の場合の処理時間の比は、

Xeon3060, 249.651u 15.084s 2:17.88 192.0% 0+0k 0+0io 0pf+0w
2:17=137秒

Xeon3070, 225.758u 14.048s 2:05.51 191.0% 0+0k 0+0io 0pf+0w
2:05=125秒

137:125=1:0.912となり、こちらもほぼクロック周波数の差となっています。

ピーク時の消費電流の差について

Xeon3060のピーク時の消費電流は1.22Aです。
Xeon3070のピーク時の消費電流は1.31Aです。
1.31:1.22=1:0.93となり、こちらもほぼクロック周波数の差(比)となっています。

まとめ

クロック周波数の低い3060のほうが、無負荷時の消費電流が大きい、無負荷時の温度が高いという結果がえられました。
これについては原因は不明です。別のCPUで、別のマザーボードで比較実験をしてみる必要があります。
何かわかればまた、日記を更新いたします。

ピーク時の性能、ピーク時の消費電流、ピーク時のCPU温度はクロック周波数に応じた結果となっています。
1割り程度の差しかありません、値段の差、入手し易さから選択しても良いと思います。