如何衡量虚拟服务器的性能?

如何衡量虚拟服务器的性能?

我有一个运行 Ubuntu 的 VPS。作为虚拟服务器,我知道它与未知数量的其他服务器共享资源,而且我注意到它比我的台式机慢得多。

是否有一些工具可以衡量虚拟机?我很想知道一些类似于 bogomips 的近似测量方法,可能是 CPU(操作/秒)、内存和磁盘读/写速度。我希望能够将这些数字与我的台式机进行比较。

我并不关心我的 VPS 所运行的实际物理机器的规格 - 通过查看,cat /proc/cpuinfo我可以看到它是一台不错的四核 Xeon 机器,但这对我来说并不重要。我主要关心程序在我的 VPS 中的运行速度 - 它每秒可以进行多少次 CPU 操作,有多少字节写入 RAM 或磁盘。

我只能通过 ssh 访问该机器,因此该工具需要是命令行。

我可以编写一个脚本,比如说,在一秒钟内循环进行一些计算并计算它能够执行多少次循环,或者执行类似操作来测量磁盘和 RAM 性能。但我确信类似的东西已经存在。

答案1

好吧,既然没人愿意回答...:)

在 Synaptic 中搜索“bench”,会找到很多能够测试机器不同方面的基准测试套件。我之前听说过的唯一一款是phoronix-test-suite,虽然我的注意力不集中,没能弄清楚如何使用它,但我确信它非常全面。

然后我发现UnixBench,其描述为

UnixBench 是原始的 BYTE UNIX 基准测试套件,多年来经过许多人的更新和修订。

UnixBench 的目的是提供类 Unix 系统性能的基本指标;... 然后将这些测试结果与基线系统的分数进行比较,以产生指数值,该指数值通常比原始分数更容易处理。

处理多 CPU 系统。... 测试通过将 Unix 系统的结果与在基准系统(即 SPARCstation 20-61(评分为 10.0)上运行代码所设定的一组分数进行比较来进行比较。

Linode 提到 UnixBench 是用于虚拟机性能测试的工具这篇博文

使用相同的硬件,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用于并行处理。这正是我所寻找的指标。

另一个重要指标是网络速度。我发现脚本它从不同位置下载测试文件并测量下载速度。该脚本可以使用

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
...

答案2

这也许是不可能的。您没有提供任何细节,所以没有人可以提供具体的答案。但并非所有 VPS 都意味着虚拟硬件。您有各种不同的解决方案,例如 Linux 容器 (LXC),它与具有某些特定功能的虚拟机完全不同。

共享硬件的唯一目的就是重复使用。就你的情况而言,即使你使用的是虚拟化硬件,你也不能确定你是唯一使用它的人。如果你需要有关硬件利用率的信息,那么你应该购买一台共置的物理服务器。

相关内容