生命不息
折腾不止

VPS性能测试:CPU测试,网络测试和IO测试

所谓“一分钱一分货”,把 VPS 当成虚拟主机来卖的如果不是做慈善事业就是超售严重,买回来的 VPS 到底值不值这个价钱,我们一般需要对 VPS 主机进行一番性能测试,涉及的项目主要有 CPU 内存,硬盘 IO 读写,带宽速度, UnixBench 和压力测试等等。

本篇文章就来分享一下如何对一个 VPS 主机进行 CPU 内存 , 硬盘 IO 读写 , 带宽速度等项目测试,像 UnixBench 和压力测试则可以综合反映一个 VPS 的性能水平,方便大家对照参考。

一、 VPS 性能测试: CPU 物理个数、内核、超线程、多核心

1 、登录 VPS 界面,执行: cat /proc/cpuinfo ,就会显示出 VPS 主机的 CPU 详细参数,如内核、频率、型号等等,以下是我的阿里云服务器的 VPS 主机 CPU :

VPS 性能 CPU 详细参数

2 、主要参数 physical_id 表示物理 CPU 个数, cpu cores 是内核数, Siblings 表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程( HT )技术。

3 、如果有一个以上逻辑处理器拥有相同的 core id 和 physical id ,则说明系统支持超线程( HT )技术。如果有两个或两个以上的逻辑处理器拥有相同的 physical id ,但是 core id 不同,则说明这是一个多内核处理器。

4 、如果“ siblings ”和“ cpu cores ”一致,则说明不支持超线程,或者超线程未打开。如果“ siblings ”是“ cpu cores ”的两倍,则说明支持超线程,并且超线程已打开。

5 、直接查看逻辑 CPU 的个数,执行: cat /proc/cpuinfo |grep ‘ physical id ’ |sort |uniq

6 、直接查看 CPU 的型号,执行: cat /proc/cpuinfo |grep ‘ model name ’ |sort |uniq

7 、单个 CPU 的内核数,执行: cat /proc/cpuinfo |grep ‘ cpu cores ’ |sort |uniq

8 、总的 CPU 线程数,执行: cat /proc/cpuinfo |grep ‘ processor ’

VPS 性能查看具体的数值

9 、上面我的阿里云服务器属于 1 核 1CPU 的,这是我前几天申请的 Host1plus 免费 VPS 主机的 VPS CPU 信息,多线程,多内核的。
VPS 性能多 CPU 多内核

二、 VPS 性能测试:内存大小、交换空间、高速缓存、实际使用内存

1 、要想查看购买的 VPS 主机的内存信息,执行: cat /proc/meminfo ,主要是看内存大小、交换空间、高速缓存。

VPS 性能查看内存大小

2 、 VPS 主机实际使用内存大小。 Linux 管理内存的机制是这样的:无论物理内存有多大, Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高 Linux 系统的数据访问性能。

3 、即 Linux 会利用空闲的物理内存,划分出一部份空间,做为 cache 和 buffers ,以此提高数据访问性能。 cache 主要用来减少对磁盘的 I/O 操作。所以我们经常能够看到一个总内存为 8GB 的 Linux VPS 测试出来占用的内存也是 8GB 。

4 、那么如何才能知道 Linux 真正占用的内存是多少呢?执行命令: free – m

VPS 性能真正使用的内存

5 、计算 VPS 真实的使用内存方法是: Total-Free-Cached= 真实使用内存 ,即 1536-1313-208=15 ,表示我的 VPS 真实使用的内存是 15MB 。

三、 VPS 性能测试:磁盘 IO 读写速度、 SSD 硬盘速度测试

1 、磁盘 IO ,即输入 / 输出 (Input/Output) ,这是测试磁盘性能一个重要指标,一些便宜的 VPS 主机为了降低成本,以大量的低性能的硬盘来充当服务器,导致 VPS 主机因为 IO 差而拖了整个主机性能的后腿。

2 、测试 VPS 主机磁盘 IO 的性能可以执行以下两个命令:

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

 

3 、 conv=fdatasync 与 oflag=dsync 的区别在于: sync 函数只是将所有修改过的块缓冲区排入写队列,然后就返回,它并不等待实际写磁盘操作结束。

4 、而 fsync 函数只对由文件描述符 filedes 指定的单一文件起作用,并且等待写磁盘操作结束,然后返回。这是我的阿里云 VPS 的硬盘 IO 测试结果。

VPS 性能磁盘 IO 测试

5 、这是 Host1plus 免费 VPS 主机的硬盘 IO ,从测试结果对比可以看出:阿里云的 IO 速度确实不行,这也怪不得阿里云可以卖得这么便宜。

 阿里云的 VPS 磁盘性能

6 、 SSD 硬盘速度测试。对于 VPS 采用 SSD 硬盘的,为了更加真实的反映出 SSD 硬盘的性能,在控制端命令中执行以下命令:

yum install hdparm -y
fdisk -l
hdparm -t /dev/hda

 

7 、第一句是安装 hdparm ,第二句是找出对应磁盘的驱动号,第三句就是利用 hdparm 在指定的硬盘上测试硬盘的读写速度。

VPS 性能测试 SSD 硬盘速度

8 、 VPS 硬盘 IO 负载测试。使用 top 命令查看 %wa 数据,表示 IO 等待所占用的 CPU 时间的百分比 , 高过 30% 时 IO 压力可能比较大。

VPS 性能查看磁盘负载

9 、另外一条命令是: iostat -x 1 10 ,如果没有执行安装: yum install sysstat ,主要查看 %util 和 %idle ,如果 %util 接近 100% ,说明产生的 I/O 请求太多, I/O 系统已经满负荷, idle 小于 70% IO 压力就较大了,一般读取速度有较多的 wait 。

VPS 性能测试硬盘 IO 负载

四、 VPS 速度测试:上传下载速度、服务器带宽、 Ping 响应时间

1 、 VPS 的速度好坏经常是我们选择某一个 VPS 商家的重要参考指标,对于国外的 VPS 主机我们可以执行以下命令来测试 VPS 入口带宽是多少。

wget http://cachefly.cachefly.net/100mb.test

VPS 性能速度测试

2 、而对于国内的 VPS 主机,或者想要测试国外的 VPS 连接国内的速度,可以用 Wget 的方法下载国内服务器上的一个文件,最好选择那些没有使用海外 CDN 服务器的,这样数据更准确。

VPS 性能 Wget 国内月服务器文件

3 、而测试 VPS 主机的出口速度,则可以使用 FTP 或者 Winscp 软件从服务器下载一个文件到本地,可以直观地看到速度。

VPS 性能测试出口带宽

4 、为了避免因本地网络环境影响了 VPS 主机下载速度,有条件的朋友可以找一个国内的 VPS 主机来 Wget 被测试 VPS 主机上的文件,像国内的免费 VPS 服务器 Windows Azure 就可以了。

5 、这里还有一个测试 VPS 主机在世界各地的下载速度的一键脚本,执行命令:

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

 

VPS 性能在不同地方的速度

6 、这是测试 VPS 主机入口与出口的带宽一键脚本,执行命令:

wget https://github.com/sivel/speedtest-cli/raw/master/speedtest_cli.py
python speedtest_cli.py --share

 

VPS 性能具体上传下载带宽

7 、 VPS 速度测试主机另一个指标就是 Ping 的响应时间,要测试 Ping ,首先要保证 VPS 开机运行,同时防火墙允许 Ping 。为了得到全面的 Ping 结果,可以使用在线站长工具,这些工作一般都提供了电信、联通、移动等不同的网络环境测试结果。

VPS 性能 Ping 响应时间测试

五、 VPS 性能综合测试: UnixBench 跑分工具测试

1 、 UnixBench 是一款开源的测试 unix 系统基本性能的工具 , 是比较通用的测试 VPS 性能的工具, Unixbench 的主要测试项目有:系统调用、读写、进程、图形化测试、 2D 、 3D 、管道、运算、 C 库等系统基准性能提供测试数据。

2 、 UnixBench 测试的结果不仅仅只是 CPU, 内存 , 或者磁盘为基准 , 还取决于硬件 , 操作系统版本 , 编译器,测试系统各个方面一系列的性能 , 然后将每个测试结果和一个基准值进行比较 , 得到一个索引值 , 所有测试项目的索引值结合在一起形成一个测试分数值。

3 、另外, unixbench 版本不同也去导致测试得分的结果有很大的差别,大家如果要使用 UnixBench 来测试 VPS 的性能的话,最好是使用同一个版本的 UnixBench 。 UnixBench 测试执行以下命令:

wget http://zhujis.com/myvps/unixbench.sh;sh ./unixbench.sh;

 

4 、测试时间可能会比较长,请耐心等待。最后 UnixBench 会详细列出各个测试项目的得分情况,以及 VPS 性能的综合跑分结果。

VPS 性能 UnixBench 测试

六、 VPS 性能综合测试:服务器压力测试, VPS 系统负载测试

1 、可能有的 VPS 主机使用性能测评工具得出的结果很优秀,但是最终运用到实际生产时却发现 VPS 主机根本无法承受理论上应该达到的流量压力,这时我们就不得不要怀疑 VPS 商是不是对 VPS 主机的参数进行了“篡改”了,例如 CPU 、内存、硬盘等等,这些数据都是可以人工修改的。

2 、在网站服务器压力 Web 性能测试中有提到常用的三个 Web 服务压力测试工具: Apache Bench,Webbench,http_load ,这也是大家使用得比较多的负载测试软件,教程:网站服务器压力 Web 性能测试 :Apache Bench,Webbench,http_load 安装使用。

3 、而 Pylot ,是一款适合在 Windows 电脑上运行的服务器压力测试程序,它可以运行 HTTP 负载测试,对于制定容量计划、确定基准点、分析系统瓶颈以及系统调优都非常有用,大家可以去网上看看教程。

七、 VPS 性能测试方法小结

1 、为了能够得到更为准确和详细的有关 VPS 主机性能测试数据,我们应该多角度、全方位地运行多种 VPS 性能测试工具来进行检测,同时也要记得排除因本地网络环境而造成的数据结果的错误。

2 、 VPS 主机性能跑分工具不能当成唯一的评判 VPS 综合性能的对比指标,现在很多的云主机和云空间因为架构的不同,使用 UnixBench 测试会不准确,更准确的应该是在同等条件下服务器能够承受的流量压力。

赞(0)
未经允许不得转载:91云(91yun.co) » VPS性能测试:CPU测试,网络测试和IO测试

留言 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    您好,我想付费使用一些您博客的数据和图片,请问可以吗?已经给你邮箱发邮件了

    vps大全9年前 (2016-08-02)回复