网站压力性能免费在线测试:阿里云PTS等服务器(3)
    经常看到不少人的在购买主机前会询问服务器的配置到底能够承受多少的访问量。这个问题其实比较难回答,因为影响服务器负载承受能力除了CPU、内存、硬盘等硬件条件外,还可能和你的Apache、Nginx、PHP、MysqL等优化有关系,另外还和你的Html、JS等文件有关系。
所以,为了防止突发的高请求对服务器负载能力产生的不利影响,同时也是为了检测网站Web压力,我们需要提前对服务器进行压力测试,预测自己服务器到底能够承受多大的访问量。首先我们可以对VPS或者服务器本身的承受力进行一个大致的检测,常用的方法就是Web压力测试。
之前部落也分享过一些Web压力测试工具:Webbench,Apache Bench,http_load,另外可在Windows平台使用的Web压力测试工具:Pylot,利用这些工具基本上就可以对自己的服务器的承载能力概况有一个基本的了解了。不过,为了能够更加精准地测试网站性能,还需要用到本文要介绍的工具。
阿里云PTS,是阿里云面向全网用户免费开放的性能云测试平台,官方给它取了名字:Lite(PS:也不知道英文名字是怎么想出来的),主要是提供压测目标和监控集管理,包括提供简单易用的性能测试脚本模板模式和代码模式、测试场景配置、测试执行及执行数据实时展示,还有提供完善的性能结果报表和强大的性能分析图形展示。
阿里云PTS还提供了一款应用性能监控工具:PTS Radar,用户只需要在服务器上安装它就可以对服务器和应用进行监控。采用无锁队列进行监控数据的传输,基本不会对系统造成额外的资源消耗。采集的性能数据可以和PTS性能测试数据进行关联分析。
阿里云PTS如果在国内使用自然有相当大的优势,不过国外的话还是选择功能同样强大的老牌网站性能测试工具:Load Impact,这是一家位于瑞典的领先的SaaS性能测试提供商,它可以模拟不同数量的用户向你的网站发送不同的请求,你可以看到CPU、内存、磁盘空间和网络带宽的变化情况。
利用Load Impact可以轻松获取到你的网站的用户承载数量的瓶颈。同样的服务还有loader.io,它比Load Impact更强大一些,支持定义页面头部信息、URL地址参数、授权密码等。loader.io测试结果能看到响应时间(平均/最小/最大相应时间),响应数(成功/超时/
4XX错误/5XX错误),带宽(接收/发送)等信息。
阿里云PTS、Load Impact、loader.io虽然同为网站性能测试服务,但是各有各有的优势及不足,且可用于测试的免费配额也会不同。阿里云PTS每VUM(每分钟每并发用户数)¥0.004,每月每用户1万VUM免费使用。loader.io每次最多10,000个连接,每次测试时间限制为1分钟。Load Impact允许同时100个用户,最长5分钟测试。
网站压力性能免费在线测试:阿里云PTS,Load Impact,loader.io服务器负载能力测试
一、阿里云PTS添加测试目标网站和服务器
1、阿里云PTS:
:pts.aliyun/lite/index.htm
2、阿里云PTS原来是用于阿里云ECS性能测试用的,现在是对全网开放,关于ECS性能测试可以参考:阿里云服务器ECS购买方法和VPS主机性能与速度简单测试。
3、使用你的阿里云账号登录到阿里云PTS平台,然后直接在控制面板中添加你想要测试的
网站域名。如果不是使用默认端口(如HTTP:80,HTTPS:443),请手工指定(如:ample:8080)。输入中仅需提供host:port,不需要输入,或者URL路径。
4、添加测试网站后,还需要下载验证文件到网站空间上并保证能够通过URL正常访问。
5、下面还有一个添加监控服务器,这个主要是安装PTS Radar,将你的VPS的性能数据与阿里云PTS测试结合起来,便于你分析VPS的性能。
6、PTS Radar监控工具运行基于Java环境,安装监控工具前必须安装Java并已设置JAVA_HOME目录,Linux的话先下载JDK:acle/technetwork/java/javase/downloads/index.html
7、根据你的Linux VPS系统位数选择不同的Java SE安装包,下载前记得勾选同意协议。
8、接着进入到Local目录:cd /usr/local,新建文件夹:mkdir jdk8,进入该文件夹:cd jdk8,将刚刚下载的安装包上传到这里,然后执行解压:tar zxvf (注意换成自己的安装包)。
9、配置环境变量:vi .bash_profile,.bash_profile文件是隐藏文件,一般存在于Root目录下,不到的可以执行命令:
cd ~ls -a|more
10、将以下命令添加到.bash_profile文件当中,
export JAVA_HOME=/usr/local/jdk8/jdk1.8.0_51export CLASSPATH=.:${JAVA_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
11、保存退出执行以下命令生效:source .bash_profile。输入命令:java -version,看到下图就表示已经成功配置好Java环境了。
12、下载PTS Radar的Linux包:PTS Radar下载地址。解压文件:unzip radar-for-linux.zip。到server.properties文件,修改signature字段等于Lite用户设置中的用户标识。
13、signature字段需要到你的PTS平台的用户设置中。
14、在这里就可以到用户标识。
15、进入监控工具目录,运行chmod +x radar.sh赋予执行权限和./radar.sh start启动Radar(可通过agent.log日志,查看监控工具启动运行信息)
16、打开你的PTS控制面板,你就可以看到添加的网站和服务器都显示已经成功了。(点击放大)
二、阿里云PTS测试网站性能的方法
1、进入到阿里云PTS性能测试环境中,先来配置一下想要测试的网站性能的各项指标。(点击放大)
2、以下是阿里云PTS性能测试指标名词解释:
压测目标: Lite用户被压测系统入口地址。
思考时间:用于模拟与服务器的各种交互之间存在等待时间的行为,在模拟脚本中通常设置于两个请求步骤之间。
步调时间:步调时间即脚本迭代运行频率控制时间。
测试元素:在测试模板模式脚本中构成脚本的元素,目前包括了HTTP GET请求、POST请求、思考时间。
施压机:运行脚本并生成负载压力的代理服务器
线程数:在施压机中每个线程独立运行脚本模拟虚拟用户,每个线程代表一个虚拟用户。
预热时长:在设置的预定时间内均匀的增加线程达到设置的预定线程数。
事务:事务是性能测试脚本的一个重要特性,要度量服务器的性能需要定义事务;在Lite模板模式脚本中,每个事务包含一个HTTP请求。
3、在测试元素库中添加你的测试方式:Get、Post、思考时间等。
4、点击启动测试,这时阿里云PTS会根据你的设置开始对网站进行压力测试了,你可以看到网站响应时间、TPS、并发用户数等实时数据情况。(点击放大)
5、阿里云PTS会提供详细的测试报告,主要是TPS即每秒系统能够处理的交易或事务的数量、响应时间、并发用户数 、错误率、请求状态、CPU系统平均负载等。
6、关于请求状态,即反映了HTTP压测结果的HTTP状态码,状态码含义如下:
成功200:服务器已成功处理了请求并提供了请求的网页。 成功204:服务器成功处理了请求,但没有返回任何内容。 重定向3xx:需要客户端采取进一步的操作才能完成请求。 客户端错误4xx:表示请求可能出错,妨碍了服务器的处理。 服务器错误5xx:表示服务器在处理请求时发生内部错误,这些错误可能是服务器本身的错误而不是请求出错。
三、Load Impact国外优秀的网站压力测试服务可用于VPS
1、Load Impact:
:loadimpact/
2、Load Impact是国外一个优秀的老牌网站压力测试工具,部落之前在八个免费在线网站速度测试服务有讲到过利用Load Impact来测试网站的速度。Load Impact几经改进,现在
已经支持VPS服务器性能监控了。
3、先到Load Impact注册一个账号,然后登录到Load Impact,输入你想要测试的网站域名。
4、接着我们就可以看到Load Impact正在开始对网站进行压力检测了,主要数据指标有:每分钟模拟用户数、带宽、连接数、数据传输、总请求数、平均请求数等。(点击放大)
5、从Load Impact的测试结果,你可以直接看到自己的网站随着用户请求增多响应时间的变化。
6、还有详细的用户增长和网站负载变化曲线图。
7、如果自己有VPS主机,可以下载安装Load Impact软件,支持Debian、Ubuntu、Windows等。
8、安装了Load Impact软件到自己的服务器后,你可以添加CPU、内存、Load时间等更加详细的监控指标。
9、这样在使用Load Impact进行压力测试时,就更能直观地看到 VPS主机的CPU、内存等数据变化了。
四、loader.io压力测试最大支持10000连接
1、loader.io:
官方网 站:loader.io/
2、loader.io最大支持10000个连接,一个主域名,每次测试时最多同时可以对两个页面进行测试,每次测试时间限制为1分钟。使用前需要注册一个loader.io账号。
在线代码运行器3、接着添加你想要进行压力测试的网站域名。
4、验证你的网站。
5、设置测试任务,主要是:每次测试 连接数、每秒平均连接数、保持连接负载等,你可以根据自己的需要来设置连接数。
6、loader.io的Advanced settings设置可以最高错误率和超时时间,如果 你测试的页面的密码的话,可以设置Basic authentication。