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


11

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

是否有一些工具可以衡量虚拟机的性能?我很好奇看到一些类似于bogomips的度量,可能用于CPU(操作/秒),内存和磁盘读/写速度。我希望能够将这些数字与台式机进行比较。

我对运行VPS的实际物理机器的规格不感兴趣-通过这样做,cat /proc/cpuinfo我可以看到它是一台不错的四核Xeon机器,但对我而言并不重要。我基本上对程序在VPS中运行的速度非常感兴趣-它在一秒钟内可以执行多少CPU操作,要写入RAM或磁盘的字节数。

我只有ssh可以访问计算机,因此该工具需要使用命令行。

我可以编写一个脚本,例如,在一个循环中进行一秒钟的计算,并计算它能够执行多少个循环,或者类似的方法来衡量磁盘和RAM的性能。但是我敢肯定这样的事情已经存在。

Answers:


14

好吧,因为没人愿意回答... :)

在Synaptic上搜索“基准”可找到许多能够测试机器不同方面的基准测试套件。我以前听说的唯一一个是phoronix-test-suite,尽管我的注意力不集中,但我无法确定如何使用它,但我相信它非常全面。

然后我找到了UnixBench,它被描述为

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

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

处理多CPU系统。...测试通过将Unix系统的结果与一组分数相比较来比较Unix系统,这些分数是通过在基准系统(SPARCstation 20-61,额定值为10.0)上运行代码而设置的。

Linode在这篇博客文章中提到UnixBench作为VM性能测试的工具:

与Xen相比,使用相同的硬件,KVM Linodes更快。例如,在我们的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
...

UnixBench现在位于Github上: github.com/kdlucas/byte-unixbench
m0j0

@ m0j0:我已经修改了答案以反映它现在托管在GitHub上,谢谢
Sergey

这两个命令wget https://github.com/kdlucas/byte-unixbench/archive/master.zip && unzip ./master.zip可以替换为just git clone https://github.com/kdlucas/byte-unixbench
Hi-Angel

0

那可能是不可能的。您没有提供任何详细信息,因此没有人可以提供具体答案。但是,并非所有VPS都意味着虚拟硬件。您拥有各种不同的解决方案,例如Linux容器(LXC),它与租借具有特定细节的虚拟机有根本的不同。

共享硬件的唯一目的是重用它。就您而言,即使您使用的是虚拟化硬件,也无法确定您是唯一使用它的人。如果您需要有关硬件利用率的信息,则应该获得一个位于同一位置的物理服务器。


嗯,我认为您误会了我-我不是在说底层物理机器。我已经更新了我的问题。
谢尔盖(Sergey)2012年

是的,但仍然如此。某个时刻到另一时刻,计算机可能并不相同,因此任何平均值都是无用的。在一瞬间,它可能具有16个CPU内核和32GB RAM,在另一瞬间可能具有1个内核和512MB RAM。根据计算的时间,平均值可能极差或比理论上更好。您可以从“ ps ax”,“ top”,“ iotop”和“ uptime”中获取一些数据,但是这些数据并不值钱。
Jo-Erlend Schinstad 2012年

2
好的,举个例子:我在上网本上gzip 1Gb文件,并测量执行任务所需的时间。然后,我在桌面上gzip了同一个文件-事实证明我的桌面的速度是上网本的3倍,因此我给他们“ gzip评级”分别为100和300。然后,我在VPS上压缩了相同的文件,发现在测试时它比上网本快1.5倍,但仍比台式机慢2倍-因此它的“ gzip系数”为150。我可以设计像我这样的人,但是肯定要衡量性能是一个常见问题
Sergey 2012年

只要知道要测量的计算机,测量性能就可以。使用VPS,您不一定知道这一点。它可能会在您完全不知情的情况下在许多完全不同的计算机之间移动,可能会添加和删除处理器,添加和删除RAM等。或者另一个VPS在25秒内开始使用大量CPU,这会使您的VPS速度变慢。变量太多。
Jo-Erlend Schinstad 2012年

听起来好像有一个VPS性能监控工具的利基市场。
justingrif 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.