我有一个运行 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),它与具有某些特定功能的虚拟机完全不同。
共享硬件的唯一目的就是重复使用。就你的情况而言,即使你使用的是虚拟化硬件,你也不能确定你是唯一使用它的人。如果你需要有关硬件利用率的信息,那么你应该购买一台共置的物理服务器。