[转帖]服务端性能测试

服务端,性能,测试 · 浏览次数 : 0

小编点评

**软件性能测试目标和指标** **目标:** * 评价系统当前性能,判断系统是否满足预期的性能需求。 * 寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。 * 判定软件系统的性能表现,预见系统负载压力,在应用部署之前,评估系统性能。 **关键指标:** * **资源指标:** * CPU使用率:指用户进程与系统进程消耗的CPU时间百分比。 * 内存利用率:指内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存。 *磁盘I/O:指磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作。 * **系统指标:** * 并发用户数:某一物理时刻同时向系统提交请求的用户数。 * 线上用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。 * 平均响应时间:系统处理事务的响应时间的平均值。 * 事务成功率:性能测试中,定义事务用于度量一个或多个业务流程的性能指标,如用户登录、保存订单、提交订单操作均可定义为事务。 * 超时错误率:主要指事务由于超时或系统内部其它错误导致失败占总事务的比率。

正文

https://www.jianshu.com/p/b192fda09c02

 

一、软件性能测试目标

软件性能测试的目的主要有以下三点:

1. 评价系统当前性能,判断系统是否满足预期的性能需求。

2. 寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。

3. 判定软件系统的性能表现,预见系统负载压力,在应用部署之前,评估系统性能。

而对于用户来说,则最关注的是当前系统:

1.是否满足上线性能要求?

2.系统极限承载如何?

3.系统稳定性如何?

二、软件性能测试中关键指标

在性能测试中最重要有两个指标,一个是资源指标,指应用服务对服务器系统资源占用,包括服务器资源的cpu、内存、IO、宽带。另一个是系统指标,指应用服务或者应用系统具体的表现,如并发用户数、响应时间、事物成功率、超时时间。

 

资源指标

CPU使用率:指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%。

内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%。

磁盘I/O:磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作,一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能。

网络带宽:一般使用计数器Bytes Total/sec来度量,Bytes Total/sec表示为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。

系统指标

并发用户数:某一物理时刻同时向系统提交请求的用户数。

在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。

平均响应时间:系统处理事务的响应时间的平均值。事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间。对于系统快速响应类页面,一般响应时间为3秒左右。

事务成功率:性能测试中,定义事务用于度量一个或者多个业务流程的性能指标,如用户登录、保存订单、提交订单操作均可定义为事务。单位时间内系统可以成功完成多少个定义的事务,在一定程度上反应了系统的处理能力,一般以事务成功率来度量。

超时错误率:主要指事务由于超时或系统内部其它错误导致失败占总事务的比率。

三、性能问题排查的过程

在性能测试过程中,如果出现性能问题,需要测试人员重点关注资源指标和系统指标或者应用性能数据,系统指标是直接观测到的测试数据,比如响应时间过长,事物请求成功率低,超时错误率高等等。当系统指标出现问题时一般会表现在资源指标上,比如cpu高,内存占用多,网络宽带占用高,连接数多等。

当观测到系统资源异常时,比如响应时间长,事务成功率低,超时错误率高等情况时。应该先查应用相关信息,比如日志,应用监控、数据库等等信息,如果这些信息没有问题,再对资源信息进行分析。资源信息分析如下。

CPU问题分析:一般情况下CPU满负荷工作,有时候并不能判定为CPU出现瓶颈,比如Linux总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化,即CPU尽可能最大化使用。因此,一般判断CPU为瓶颈,主要从两方面:一是CPU空闲持续为0,二是运行队列大于CPU核数(经验值3-4倍),即可判定存在瓶颈,对于CPU高消耗主要由什么引起的,可能是应用程序不合理造成,也可能是硬件资源不足,需要具体问题具体分析,比如问题SQL语句引起,则需要跟踪并优化引起CPU使用过高的SQL语句。

内存问题分析:一般至少有10%可用内存,内存使用率可接受上限为85%。当空闲内存变小时,系统开始频繁地调动磁盘页面文件,空闲内存过小可能是内存不足或内存泄漏引起,需要根据系统实际情况监控分析。

磁盘I/O问题分析:磁盘I/O对于数据库服务器、文件服务器、流媒体服务器系统来说,更容易成为瓶颈,一般从以下几个方面对磁盘I/O进行分析判断:

        每磁盘I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。

        监控磁盘读写,如果磁盘长时间进行大数据量读写操作,且cpu等待超过20%,则说明磁盘I/O存在问题,考虑提高磁盘I/O读写性能。

网络带宽问题分析:判断网络带宽是否是系统运行性能瓶颈的首要条件是网络带宽是否会影响系统交易执行性能。例如:减小网络带宽,并发用户数、响应时间与事务通过率等性能指标是否不能接受;或者增加网络带宽,并发用户数、响应时间与事务通过率等性能指标会得到明显提高。

在实际性能测试中,如果发现始终报连接超时,而实际手工访问可以正常访问,可以通过ping应用服务器IP或网关IP,如果出现网络严重延迟或丢包,则说明网络不稳定,需要检查网络。

通过对资源指标的分析,实际上各个方面都是互相依赖的,不能孤立的单从某个方面进行排查。当一个方面出现性能问题时,往往会引发其他方面的性能问题,例如,大量的磁盘读写势必消耗CPU和IO资源,而内存的不足会导致频繁地进行内存页写入磁盘、磁盘写到内存的操作,造成磁盘IO瓶颈,同时,大量的网络流量也会造成CPU过载,所以,在分析性能问题时,需要从各个方面进行考虑。

软件性能测试是执行、监控、分析、调优不断进行的过程,即监控是为分析提供更多的参考数据,分析是为了进行调优,调优是解决当前系统存在的性能瓶颈,为用户提供更好、更快的客户体验。由于分析、调优需要根据具体问题进行具体分析,本文未做过多说明,只对通用的关键指标进行监控分析,建议在实际工作中可从资源指标与系统指标两个方面,层层检测、步步排查,性能问题就无处藏身,一旦找到出现问题的原因,性能问题也就迎刃而解!

与[转帖]服务端性能测试相似的内容:

[转帖]服务端性能测试

https://www.jianshu.com/p/b192fda09c02 一、软件性能测试目标 软件性能测试的目的主要有以下三点: 1. 评价系统当前性能,判断系统是否满足预期的性能需求。 2. 寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。 3. 判定软件系统的性能表现,预见系统负载

[转帖]记一次压测引起的nginx负载均衡性能调优

https://xiaorui.cc/archives/3495 这边有个性能要求极高的api要上线,这个服务端是golang http模块实现的。在上线之前我们理所当然的要做压力测试。起初是 “小白同学” 起头进行压力测试,但当我看到那压力测试的结果时,我也是逗乐了。 现象是,直接访问Golang

[转帖]专注于GOLANG、PYTHON、DB、CLUSTER 记一次压测引起的nginx负载均衡性能调优

https://xiaorui.cc/archives/3495 rfyiamcool2016年6月26日 0 Comments 这边有个性能要求极高的api要上线,这个服务端是golang http模块实现的。在上线之前我们理所当然的要做压力测试。起初是 “小白同学” 起头进行压力测试,但当我看到

[转帖]《服务器应用场景性能测试方法 虚拟化》解读

《服务器应用场景性能测试方法 虚拟化》解读 https://aijishu.com/a/1060000000343436 今天为大家带来《服务器应用场景性能测试方法 虚拟化》的详细解读。 《服务器应用场景性能测试方_虚拟化》起草单位包括中国电子技术标准化研究院、云宏信息科技股份有限公司、飞腾信息技术

[转帖]Unixbench服务器综合性能测试方法及工具下载

UnixBench是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具。 UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器。 测试系统各个方面一系列的性能,然后将每

[转帖]Jmeter插件之ServerAgent服务器性能监控工具的安装和使用

https://www.cnblogs.com/pachongshangdexuebi/p/13354201.html 一、前言 性能测试时我们关注的重要指标是:并发用户数,TPS,请求成功率,响应时间,服务器的CPU,memory, I/O disk等。Jmeter的聚合报告可以查看并发数、吞吐量

[转帖]SPEC测试arm服务器性能,SPECJVM2008测试处理器性能_服务器评测与技术-中关村在线...

首先,我们使用SPECJVM2008测试最新至强E5处理器的虚拟化性能。 SPECJVM2008是一种通用的多线程Java基准测试工具,它能够反映JRE(Java Runtime Environment)运行Java的环境集合(包含JVM标准实现及Java核心类库)性能表现。该套测试工具主要体现物理

[转帖]使用JMX服务监控Java程序性能

https://www.jianshu.com/p/3c3c836c1c20?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 背景 单机收集服务器需要性能监控和测试。 JMX

[转帖]350万IOPS:NVMe SSD RAID卡性能测试解析

https://aijishu.com/a/1060000000225602 最近,有不止一位读者朋友希望我分享NVMe RAID卡的性能表现。记得在5年前,我写过一篇《存储极客:服务器SSD RAID__性能速查手册》,当时还是SAS和SATA SSD做阵列,而我当时在文章末尾写了下面这句: 时间

[转帖]阿里云SSD云盘性能测试:每GB空间30个IOPS

http://www.piaoyi.org/linux/aliyun-SSD-disk-test.html 正 文: 由于服务器需要高并发高IO,所以入手了阿里云的SSD云盘+IO优化的ECS实例。 阿里云SSD云盘:单盘最高提供20000随机读写IOPS、256MB/s吞吐量的存储性能。采用分布式