VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试

现在便宜的VPS主机越来越多了,一些美国的VPS主机甚至给出1美元一月的VPS,堪比虚拟主机还要便宜,巨大的价格优势吸引不少人购买和使用,而近些年来国内的主机商也开始意识到便宜的VPS对草根站长的诱惑力,纷纷推出了低价VPS,其中突出的代表就是阿里云。
所谓“一分钱一分货”,把VPS当成虚拟主机来卖的如果不是做慈善事业就是超售严重,买回来的VPS到底值不值这个价钱,我们一般需要对VPS主机进行一番性能测试,涉及的项目主要有CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试等等。
本篇文章就来分享一下如何对一个VPS主机进行CPU内存,硬盘IO读写,带宽速度等项目测试,像UnixBench和压力测试则可以综合反映一个VPS的性能水平,方便大家对照参考。
VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试
一、VPS性能测试:CPU物理个数、内核、超线程、多核心
1、登录VPS界面,执行:
cat /proc/cpuinfo
就会显示出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’

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

二、VPS性能测试:内存大小、交换空间、高速缓存、实际使用内存
1、要想查看购买的VPS主机的内存信息,执行:
cat /proc/meminfo
主要是看内存大小、交换空间、高速缓存。

2、VPS主机实际使用内存大小。Linux管理内存的机制是这样的:无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。
3、即Linux会利用空闲的物理内存,划分出一部份空间,做为 cache 和 buffers ,以此提高数据访问性能。cache主要用来减少对磁盘的I/O操作。所以我们经常能够看到一个总内存为8GB的Linux VPS测试出来占用的内存也是8GB。
4、那么如何才能知道Linux真正占用的内存是多少呢?执行命令:
free –m

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测试结果。
5、这是Host1plus免费VPS主机的硬盘IO,从测试结果对比可以看出:阿里云的IO速度确实不行,这也怪不得阿里云可以卖得这么便宜。
6、SSD硬盘速度测试。对于VPS采用SSD硬盘的,为了更加真实的反映出SSD硬盘的性能,在控制端命令中执行以下命令:
yum install hdparm -y
fdisk -l
hdparm -t /dev/hda
7、第一句是安装hdparm,第二句是找出对应磁盘的驱动号,第三句就是利用hdparm在指定的硬盘上测试硬盘的读写速度。
8、VPS硬盘IO负载测试。使用top命令查看%wa数据,表示IO等待所占用的CPU时间的百分比,高过30%时IO压力可能比较大。

9、另外一条命令是:iostat -x 1 10,如果没有执行安装:yum install sysstat,主要查看%util 和%idle ,如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,idle小于70% IO压力就较大了,一般读取速度有较多的wait。(点击放大)
四、VPS速度测试:上传下载速度、服务器带宽、Ping响应时间
1、VPS的速度好坏经常是我们选择某一个VPS商家的重要参考指标,对于国外的VPS主机我们可以执行以下命令来测试VPS入口带宽是多少。
wget https://cachefly.cachefly.net/100mb.test

2、而对于国内的VPS主机,或者想要测试国外的VPS连接国内的速度,可以用Wget的方法下载国内服务器上的一个文件,最好选择那些没有使用海外CDN服务器的,这样数据更准确。
3、而测试VPS主机的出口速度,则可以使用FTP或者Winscp软件从服务器下载一个文件到本地,可以直观地看到速度。
4、为了避免因本地网络环境影响了VPS主机下载速度,有条件的朋友可以找一个国内的VPS主机来Wget被测试VPS主机上的文件,像国内的免费VPS服务器Windows Azure就可以了。
5、这里还有一个测试VPS主机在世界各地的下载速度的一键脚本,执行命令:
wget freevps.us/downloads/bench.sh -O - -o /dev/null | bash

6、这是测试VPS主机入口与出口的带宽一键脚本,执行命令:
wget https://github.com/sivel/speedtest-cli/raw/master/speedtest_cli.py
python speedtest_cli.py --share

7、VPS速度测试主机另一个指标就是Ping的响应时间,要测试Ping,首先要保证VPS开机运行,同时防火墙允许Ping。为了得到全面的Ping结果,可以使用在线站长工具,这些工作一般都提供了电信、联通、移动等不同的网络环境测试结果。
五、VPS性能综合测试:UnixBench跑分工具测试
1、UnixBench是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具,Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。
2、UnixBench测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器,测试系统各个方面一系列的性能,然后将每个测试结果和一个基准值进行比较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分数值。
3、另外,unixbench版本不同也去导致测试得分的结果有很大的差别,大家如果要使用UnixBench来测试VPS的性能的话,最好是使用同一个版本的UnixBench。UnixBench测试执行以下命令:
wget https://teddysun.com/wp-content/uploads/unixbench.sh
chmod +x unixbench.sh
./unixbench.sh
4、测试时间可能会比较长,请耐心等待。最后UnixBench会详细列出各个测试项目的得分情况,以及VPS性能的综合跑分结果。
六、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负载测试,对于制定容量计划、确定基准点、分析系统瓶颈以及系统调优都非常有用,教程:Pylot网站Web服务器性能和负载压力测试-适用Windows可绘制图表。
七、VPS性能测试方法小结
1、为了能够得到更为准确和详细的有关VPS主机性能测试数据,我们应该多角度、全方位地运行多种VPS性能测试工具来进行检测,同时也要记得排除因本地网络环境而造成的数据结果的错误。
2、VPS主机性能跑分工具不能当成唯一的评判VPS综合性能的对比指标,现在很多的云主机和云空间因为架构的不同,使用UnixBench测试会不准确,更准确的应该是在同等条件下服务器能够承受的流量压力。
文章出自:免费资源部落 https://www.freehao123.com/
VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试的更多相关文章
- Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)
[转]Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Wind ...
- Windows 性能监视器的基本指标(CPU,内存,硬盘参数)
转载:http://kms.lenovots.com/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的 ...
- 一个统计 CPU 内存 硬盘 使用率的shell脚本
一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Uti ...
- centOS7下实践查询版本/CPU/内存/硬盘容量等硬件信息
1.系统 1.1版本 uname -a 能确认是64位还是32位,其它的信息不多 [root@localhost ~]# uname -a Linux localhost.localdomain 3. ...
- 性能测试---CPU内存部分
CPU内存的测试可以通过top命令来测试 ,如下是我写的bat脚本,其中的测试进程可以替换为你自己需要测试的进程. @echo offecho============================= ...
- go-web项目性能测试,CPU, 内存泄露等
go中提供了pprof包来做代码的性能监控,在两个地方有包: net/http/pprof runtime/pprof 其实net/http/pprof中只是使用runtime/pprof包来进行封装 ...
- jmeter监控linux cpu 内存 网络 IO
下载地址:http://jmeter-plugins.org/downloads/all/ PerfMon: 用来监控Server的CPU.I/O.Memory等情况 ServerAgent-2.2. ...
- 查看CPU 内存 硬盘 网络 查看进程使用的文件 uptime top ps -aux vmstat iostat iotop nload iptraf nethogs
#安装命令 yum install sysstat #包含 iostat vmstat yum install iotop yum install nload yum install iptraf ...
- java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)
通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 1.下载sigar.jar sigar官方主页 sigar-1.6.4.zip 2.按照主页上的说明解压包后将相应的文件copy到j ...
随机推荐
- think PHP提取字符串中的数字,并到数据库中使用in查询所关联表的字段值
/* * 提取数字并去数据库取得相应的分类名 * $strs 需要处理的字符串 * $table 数据表名 * $condition 条件字段 * $field 获取的字段 */ public fun ...
- PAT甲级【2019年3月考题】——A1157 Anniversary【25】
Zhejiang University is about to celebrate her 122th anniversary in 2019. To prepare for the celebrat ...
- Python Challenge 关卡目录及解答过程
第0关:http://www.pythonchallenge.com/pc/def/0.html 线索:试着改变URL的地址-->把图片中得到的数字输入到URL中 2**38 输出: 第1关:h ...
- BCrypt密码加密
快速入门 (1)我们从官网下载源码 BCrypt 官网 http://www.mindrot.org/projects/jBCrypt/ (2)新建工程,将源码类BCrypt拷贝到工程 (3)新建测试 ...
- python基础--快速排序
1.快速排序 快速排序是一种交换排序. 快速排序由C. A. R. Hoare在1962年提出. 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大 ...
- Groovy学习:第一章 用Groovy简化Java代码
1. Groovy的安装 目前Groovy的最新版本为2.1.2版,下载地址为:http://groovy.codehaus.org/Download下载后解压groovy-binary-2.1.2. ...
- Java的动态代理Proxy
概念梳理: 1.什么是动态代理? 答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实.代理一般会实现它所表示的实际对象的接口.代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际 ...
- 【学习总结】Python-3-风格各异的数值类型实例
菜鸟教程-Python3-基本数据类型 可能是考点的各种形态的数值类型 int型:正数负数,八进制0开头,十六进制0x开头 float型:小数点的前后都可以没有数字,自动补全 complex型:虚部的 ...
- Springboot1.5.9整合WebSocket
一.WebSocket介绍 1.WebSocket是什么? WebSocket是协议,是HTML5开始提供的基于TCP(传输层)的一种新的网络协议, 它实现了浏览器与服务器全双工(full-duple ...
- Sql Server Management Studio 18 打开闪退问题
解决方案 找到MSSMS安装位置,例如我是安装到了D:\Program Files (x86)\Microsoft SQL Server Management Studio 18 将D:\Progra ...