Linux系サーバ 性能測定ツールメモ(UnixBench,hdparm,dd)
各社IaaSクラウドやVPSの性能比較する場合、メモリ容量やディスク容量はカタログスペックで比較できますが、CPU性能は単純にコア数だけでは比較できません。
極端な例ですが、同じ価格でA社のVPSはCPU1コア、B社のVPSは2コアの場合、B社のVPSがお得に思えますが、1コアの性能が、A社は1000、B社は300だったらどうでしょう?
また、ディスク容量はカタログスペックで明確ですが、サーバ性能に大きく影響する「ディスク性能」について明記しているサービスはほとんどありません。(AWSのProvisioned IOPSくらいでしょうか)
そこそこちゃんと比較したい場合は、ツールを使って測定するのがおすすめです(^^)/
各社IaaSクラウドやVPSは無料利用期間がある場合もありますので、導入前に測定することが可能です。ぜひ活用してみてはいかがでしょうか
CPU性能は定番のUnixBench、ディスク性能の読込みは hdparm 書込みは dd を使った時のメモです。
========== CPU性能 ==========
・UnixBenchに必要なPerlモジュールをインストール
yum -y install perl-Time-HiRes
・UnixBenchインストール(ディレクトリは任意です)
cd /usr/local/bin
wget http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
tar zxvf UnixBench5.1.3.tgz
cd UnixBench
make
・UnixBench実行
cd /usr/local/bin
./Run
------------------------------
(省略)
Shell Scripts (1 concurrent) 42.4 1875.9 442.4
Shell Scripts (8 concurrent) 6.0 251.4 419.0
System Call Overhead 15000.0 1619379.5 1079.6
========
System Benchmarks Index Score 539.2
------------------------------
色々と表示されますが、「System Benchmarks Index Score」がCPU性能と考えてOKです。
サーバ全体のCPU性能:539.2
また、1コアでの性能計測「./Run -c 1」としてできますが、マルチコアの場合は必ず処理分割のオーバヘッドが発生しますので、サーバ全体のCPU性能を比較するのが良いでしょう。
========== ディスク性能(読込み) ==========
・性能を測定するディスクを特定します
df -h
------------------------------
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_vb000-lv_root
5.5G 1.9G 3.4G 36% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 485M 76M 384M 17% /boot
------------------------------
ルートパーティションの「/dev/mapper/vg_vb000-lv_root」を測定することとします。
・念のためメモリキャッシュをクリアします
echo 1 > /proc/sys/vm/drop_caches
・計測実行(何回か実行して平均をとるのが良いでしょう)
hdparm -t /dev/mapper/vg_vb000-lv_root
---(1回目)---------------------------
/dev/mapper/vg_vb000-lv_root:
Timing buffered disk reads: 246 MB in 3.05 seconds = 80.65 MB/sec
---(2回目)---------------------------
/dev/mapper/vg_vb000-lv_root:
Timing buffered disk reads: 306 MB in 3.04 seconds = 100.68 MB/sec
---(3回目)---------------------------
/dev/mapper/vg_vb000-lv_root:
Timing buffered disk reads: 362 MB in 3.03 seconds = 119.65 MB/sec
------------------------------
80.65 + 100.68 + 119.65 / 3 = ディスク読込み性能:約100MB/sec
========== ディスク性能(Write) ==========
こちらもルートパーティションを計測することとします。
・計測実行(何回か実行して平均をとるのが良いでしょう)
dd if=/dev/zero of=/tmp/iowrite bs=1M count=1024
rm /tmp/iowrite
---(1回目)---------------------------
1073741824 bytes (1.1 GB) copied, 6.66711 s, 161 MB/s
---(2回目)---------------------------
1073741824 bytes (1.1 GB) copied, 5.91646 s, 181 MB/s
---(3回目)---------------------------
1073741824 bytes (1.1 GB) copied, 5.8036 s, 185 MB/s
------------------------------
161 + 181 + 185 = ディスク書込み性能:122MB/s
以上です。
極端な例ですが、同じ価格でA社のVPSはCPU1コア、B社のVPSは2コアの場合、B社のVPSがお得に思えますが、1コアの性能が、A社は1000、B社は300だったらどうでしょう?
また、ディスク容量はカタログスペックで明確ですが、サーバ性能に大きく影響する「ディスク性能」について明記しているサービスはほとんどありません。(AWSのProvisioned IOPSくらいでしょうか)
そこそこちゃんと比較したい場合は、ツールを使って測定するのがおすすめです(^^)/
各社IaaSクラウドやVPSは無料利用期間がある場合もありますので、導入前に測定することが可能です。ぜひ活用してみてはいかがでしょうか
CPU性能は定番のUnixBench、ディスク性能の読込みは hdparm 書込みは dd を使った時のメモです。
========== CPU性能 ==========
・UnixBenchに必要なPerlモジュールをインストール
yum -y install perl-Time-HiRes
・UnixBenchインストール(ディレクトリは任意です)
cd /usr/local/bin
wget http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
tar zxvf UnixBench5.1.3.tgz
cd UnixBench
make
・UnixBench実行
cd /usr/local/bin
./Run
------------------------------
(省略)
Shell Scripts (1 concurrent) 42.4 1875.9 442.4
Shell Scripts (8 concurrent) 6.0 251.4 419.0
System Call Overhead 15000.0 1619379.5 1079.6
========
System Benchmarks Index Score 539.2
------------------------------
色々と表示されますが、「System Benchmarks Index Score」がCPU性能と考えてOKです。
サーバ全体のCPU性能:539.2
また、1コアでの性能計測「./Run -c 1」としてできますが、マルチコアの場合は必ず処理分割のオーバヘッドが発生しますので、サーバ全体のCPU性能を比較するのが良いでしょう。
========== ディスク性能(読込み) ==========
・性能を測定するディスクを特定します
df -h
------------------------------
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_vb000-lv_root
5.5G 1.9G 3.4G 36% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 485M 76M 384M 17% /boot
------------------------------
ルートパーティションの「/dev/mapper/vg_vb000-lv_root」を測定することとします。
・念のためメモリキャッシュをクリアします
echo 1 > /proc/sys/vm/drop_caches
・計測実行(何回か実行して平均をとるのが良いでしょう)
hdparm -t /dev/mapper/vg_vb000-lv_root
---(1回目)---------------------------
/dev/mapper/vg_vb000-lv_root:
Timing buffered disk reads: 246 MB in 3.05 seconds = 80.65 MB/sec
---(2回目)---------------------------
/dev/mapper/vg_vb000-lv_root:
Timing buffered disk reads: 306 MB in 3.04 seconds = 100.68 MB/sec
---(3回目)---------------------------
/dev/mapper/vg_vb000-lv_root:
Timing buffered disk reads: 362 MB in 3.03 seconds = 119.65 MB/sec
------------------------------
80.65 + 100.68 + 119.65 / 3 = ディスク読込み性能:約100MB/sec
========== ディスク性能(Write) ==========
こちらもルートパーティションを計測することとします。
・計測実行(何回か実行して平均をとるのが良いでしょう)
dd if=/dev/zero of=/tmp/iowrite bs=1M count=1024
rm /tmp/iowrite
---(1回目)---------------------------
1073741824 bytes (1.1 GB) copied, 6.66711 s, 161 MB/s
---(2回目)---------------------------
1073741824 bytes (1.1 GB) copied, 5.91646 s, 181 MB/s
---(3回目)---------------------------
1073741824 bytes (1.1 GB) copied, 5.8036 s, 185 MB/s
------------------------------
161 + 181 + 185 = ディスク書込み性能:122MB/s
以上です。
01