仮想サーバーのパフォーマンスを測定するにはどうすればよいですか?


11

Ubuntuを実行しているVPSがあります。仮想サーバーであるため、他のサーバーの不明な数とリソースを共有することを理解し、デスクトップマシンよりもかなり遅いことに気付きました。

仮想マシンのパフォーマンスを測定するツールはありますか?おそらくCPU(操作/秒)、メモリ、およびディスクの読み取り/書き込み速度について、bogomipsに似たおおよその測定値を確認したいと思います。これらの数値をデスクトップマシンと比較できるようにしたいと思います。

VPSが実行されている実際の物理マシンの仕様には興味がありません。これを実行するcat /proc/cpuinfoことにより、クアッドコアXeonマシンであることがわかりますが、それは重要ではありません。私は基本的に、プログラムがVPSで実行される速度、1秒間に実行できるCPU操作の数、RAMまたはディスクに書き込むバイト数に興味があります。

私はマシンにsshでしかアクセスできないので、ツールはコマンドラインである必要があります。

たとえば、ループ内で1秒間計算を行い、実行できたループの数をカウントするスクリプト、またはディスクとRAMのパフォーマンスを測定するようなスクリプトを作成できます。しかし、私はこのようなものがすでに存在していると確信しています。

回答:


14

誰も答えたくないので... :)

Synapticで「ベンチ」を検索すると、マシンのさまざまな側面をテストできる多くのベンチマークスイートが見つかります。以前に聞いたphoronix-test-suiteことがあるのは、非常に包括的であると確信していますが、短いアテンションスパンでは使用方法を理解できませんでした。

次に、UnixBenchを見つけました。

UnixBenchは、長年にわたって多くの人々によって更新および改訂された、オリジナルのBYTE UNIXベンチマークスイートです。

UnixBenchの目的は、Unixライクシステムのパフォーマンスの基本的な指標を提供することです。...次に、これらのテスト結果をベースラインシステムのスコアと比較して、一般に生のスコアよりも扱いやすいインデックス値を生成します。

マルチCPUシステムが処理されます。...テストは、ベンチマークシステム(SPARCstation 20-61(定格10.0))でコードを実行して設定されたスコアセットと結果を比較することにより、Unixシステムを比較します。

LibeはUnixBenchをこのブログ投稿でVMパフォーマンステストのツールとして言及しています。

同一のハードウェアを使用すると、KVM LinodesはXenと比較してはるかに高速です。たとえば、UnixBenchのテストでは、KVM LinodeのスコアはXen Linodeの3倍でした。

テストスイートはUbuntuリポジトリにはありませんが、ダウンロードしてコンパイルするのは簡単です。

wget https://github.com/kdlucas/byte-unixbench/archive/master.zip
unzip ./master.zip
cd ./byte-unixbench-master/UnixBench
./Run

テストの完了には時間がかかります。出力は次のようになります

------------------------------------------------------------------------
Benchmark Run: Mon Oct 15 2012 23:55:22 - 00:23:16
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       12015218.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2214.8 MWIPS (10.1 s, 7 samples)
Execl Throughput                                896.9 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         58968.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           14578.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        422068.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                               70993.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  16001.5 lps   (10.0 s, 7 samples)
Process Creation                               1861.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2525.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    737.8 lpm   (60.1 s, 2 samples)
System Call Overhead                         432496.2 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   12015218.4   1029.6
Double-Precision Whetstone                       55.0       2214.8    402.7
Execl Throughput                                 43.0        896.9    208.6
File Copy 1024 bufsize 2000 maxblocks          3960.0      58968.3    148.9
File Copy 256 bufsize 500 maxblocks            1655.0      14578.6     88.1
File Copy 4096 bufsize 8000 maxblocks          5800.0     422068.2    727.7
Pipe Throughput                               12440.0      70993.3     57.1
Pipe-based Context Switching                   4000.0      16001.5     40.0
Process Creation                                126.0       1861.8    147.8
Shell Scripts (1 concurrent)                     42.4       2525.5    595.6
Shell Scripts (8 concurrent)                      6.0        737.8   1229.7
System Call Overhead                          15000.0     432496.2    288.3
                                                                   ========
System Benchmarks Index Score                                         249.7

------------------------------------------------------------------------
Benchmark Run: Tue Oct 16 2012 00:23:16 - 00:51:20
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       42619039.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     8274.0 MWIPS (10.4 s, 7 samples)
Execl Throughput                               3398.5 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         68332.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           21462.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        718205.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                              149713.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  61968.3 lps   (10.0 s, 7 samples)
Process Creation                               5321.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5957.1 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    812.6 lpm   (60.1 s, 2 samples)
System Call Overhead                        1557391.5 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   42619039.2   3652.0
Double-Precision Whetstone                       55.0       8274.0   1504.4
Execl Throughput                                 43.0       3398.5    790.4
File Copy 1024 bufsize 2000 maxblocks          3960.0      68332.4    172.6
File Copy 256 bufsize 500 maxblocks            1655.0      21462.9    129.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     718205.6   1238.3
Pipe Throughput                               12440.0     149713.5    120.3
Pipe-based Context Switching                   4000.0      61968.3    154.9
Process Creation                                126.0       5321.7    422.4
Shell Scripts (1 concurrent)                     42.4       5957.1   1405.0
Shell Scripts (8 concurrent)                      6.0        812.6   1354.3
System Call Overhead                          15000.0    1557391.5   1038.3
                                                                   ========
System Benchmarks Index Score                                         592.5

つまり、問題のVPSのスコアは、単一タスクの場合は249.7、並列処理の場合は592.5です。

私のデスクトップマシンは、VPSが実行されている物理マシンと同等またはそれ以下のスペックですが、単一タスクで1409.7、並列処理で5156.3のスコアを生成しました。まさに私が探していた種類の指標。

もう1つの重要な測定基準は、ネットワーク速度です。さまざまな場所からテストファイルをダウンロードし、ダウンロード速度を測定するスクリプトを見つけました。スクリプトは次のコマンドで実行できます

wget freevps.us/downloads/bench.sh -O - -o /dev/null|bash

(ただし、実行する前にスクリプトをダウンロードしてその内容を検査する方がおそらく安全です)

ディスクI / Oレイテンシを監視するにはioping、Ubuntuリポジトリからインストールできるユーティリティがあります。

# ioping . -c 10
4096 bytes from . (ext4 /dev/disk/...): request=1 time=16.4 ms
4096 bytes from . (ext4 /dev/disk/...): request=2 time=16.1 ms
...

UnixBenchは現在Githubにあります: github.com/kdlucas/byte-unixbench
m0j0

@ m0j0:現在GitHubでホストされていることを反映するように回答を変更しました。ありがとう
セルゲイ

これらの2つのコマンドwget https://github.com/kdlucas/byte-unixbench/archive/master.zip && unzip ./master.zipは単にに置き換えることができますgit clone https://github.com/kdlucas/byte-unixbench
ハイエンジェル

0

それは不可能かもしれません。あなたは詳細を提供していないので、誰も特定の答えを提供することはできません。ただし、すべてのVPSが仮想ハードウェアを意味するわけではありません。Linux Containers(LXC)のようなあらゆる種類のソリューションがありますが、これは特定の仕様で仮想マシンを貸すこととは根本的に異なります。

ハードウェアを共有する唯一のポイントは、ハードウェアを再利用することです。あなたの場合、仮想化されたハードウェアを使用している場合でも、それを使用するのはあなただけであると確信することはできません。ハードウェアの使用率に関する情報が必要な場合は、代わりに同じ場所にある物理サーバーを取得する必要があります。


ああ、あなたは私を誤解していると思う-私は、基礎となる物理マシンについて話していない。質問を更新しました。
セルゲイ

はい、まだです。コンピューターは、ある瞬間から別の瞬間に同じではない可能性があるため、平均は役に立たない。ある瞬間には、16個のCPUコアと32GBのRAMがあり、別の瞬間には、1つのコアと512MBのRAMがあります。平均は、計算するタイミングに応じて、極端に低いか、理論的に可能な値よりも優れている場合があります。「ps ax」、「top」、「iotop」、「uptime」からいくつかのデータを取得できますが、それだけの価値はありません。
ジョーエルレンドシンスタット

2
わかりました、例:ネットブックで1Gbファイルをgzipし、タスクの実行にかかる時間を測定します。次に、デスクトップ上で同じファイルをgzipします。デスクトップがネットブックよりも3倍高速であることがわかりました。そこで、それぞれ「gzip評価」を100と300にします。次に、VPSで同じファイルを圧縮します。テストの時点では、ネットブックよりも1.5倍高速ですが、デスクトップよりも2倍遅いので、「gzipファクター」の150です。私自身このようなものですが、確かにパフォーマンスを測定することはよくある問題です
セルゲイ

測定しているコンピューターがわかっている限り、パフォーマンスの測定は問題ありません。VPSでは、必ずしもそれを知っているわけではありません。知らない間にたくさんのまったく異なるコンピューター間で移動したり、プロセッサーを追加したり削除したり、RAMを追加したり削除したりする場合があります。変数が多すぎます。
ジョエルレンシンダード

vpsパフォーマンスモニタツールにはニッチがあるように聞こえます。
-justingrif
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.