手机版 | 网站导航
观察家网 > 科技前沿 >

cpu性能测试(性能测试常见指标分析)

互联网 | 2023-03-02 14:59:18

关于cpu性能测试(性能测试常见指标分析) 的知识大家了解吗?以下就是小编整理的关于cpu性能测试(性能测试常见指标分析) 的介绍,希望可以给到大家一些参考,一起来了解下吧!

cpu性能测试(性能测试常用指标分析)

压力测试:压力极端暴力稳定性测试:在一定压力下,长时间跑步;基准测试:特定条件下的性能测试;负载测试:不同负载下的性能& n优优资源网bsp容量测试:更佳容量


(资料图片仅供参考)

外部指标

对外,性能测试主要关注以下三个指标

吞吐量:系统每秒可以处理的请求和任务的数量。

响应时间:服务处理请求或任务所需的时间。

错误率:错误结果的请求在一批请求中所占的比例。

响应时间的指标取决于具体的服务。智能提示等业务,返回数据有效期短(用户多输入一个字母需要重新请求),实时性要求比较高,响应时间上限一般在100ms以内。但对于导航等服务,由于返回结果的服务周期(整个导航过程)较长,响应时间上限一般为2-5s。

对于响应时间的统计,要从均值、. 90、. 99、分布等角度进行统计,而不是只给出均值。下图是响应时间统计的一个示例。

吞吐量指标受多种因素影响,如响应时间、服务器软硬件配置、 *** 状态等。

吞吐量越大,响应时间越长。

服务器硬件配置越高,吞吐量越大。

*** 越差,吞吐量越小。

在低吞吐量下,响应时间的平均值和分布相对稳定,不会引起太大的波动。

在高吞吐量下,响应时间会随着吞吐量的增加而增加,增长趋势可能是线性的,也可能是接近指数的。当吞吐量接近系统峰值时,响应时间会激增。

错误率与服务的具体实现有关。一般情况下, *** 超时等外部原因造成的错误比例不超过5%%,服务本身造成的错误率不超过1%。

系统的吞咽能力与请求、外部接口、IO等CPU消耗密切相关。

单个reqeust的CPU消耗越高,外部系统接口和IO的冲击速度越慢,系统的吞吐量越低,反之亦然。

系统吞吐量的几个重要参数:QPS(TPS)、并发和响应时间。

QPS(TPS):每秒请求//事务的数量

并发性:系统同时处理的请求//事务的数量。

响应时间:一般取平均响应时间。

(许多人经常混淆并发性和TPS理解)

理解了以上三个要素的含义后,我们就可以计算它们之间的关系了:

QPS(TPS)=并发数/平均响应时间

系统的吞吐量通常由QPS(TPS)和并发数决定。每个系统都有相对的限制。在应用场景访问的压力下,只要有一项达到系统的更高值,系统的吞吐量就上不去。如果压力继续增加,系统的吞吐量反而会下降。原因是系统过载,上下文切换,内存等消耗导致系统性能下降。

决定系统响应时间的因素

我们必须计划一个项目。许多人可以同时做多项工作,或者一个或多个人可以串联工作。总会有一条关键路径,就是项目的持续时间。

系统调用的响应时间和项目计划一样,也有一个关键路径,就是系统影响时间;

关键路径由CPU操作、IO、外部系统响应等组成。

在设计系统时,我们需要考虑CPU运行、IO、外部系统响应因素的影响以及对系统性能的初步估计。

正常情况下,我们面对的是需求。除了QPS和并发,还有一个维度:每日PV。

通过观察系统的访问日志,发现在用户数量较大的情况下,每个时间段内同一时间段的访问流量几乎相同。比如工作日的每天早上。只要我们能得到每天的流量图和QPS,我们就能计算出每天的流量。

通常的技术方法:

1.找出系统的更高TPS和每日PV,它们有相对稳定的关系(节假日和季节因素除外)

2.通过压力测试或者经验估算得到更高TPS,然后跟进1的关系,计算出系统日吞吐量更高的Yoyo资源 *** 。B2B和 *** 面对的客户群体不同。这两个客户群体的 *** 行为是不适用的,他们之间的TPS和PV关系所占的比例也是不同的。

从服务器的角度来说,性能测试主要集中在CPU、内存、服务器负载、 *** 、磁盘IO等方面。

中央处理器

服务后台的所有指令和数据处理都由CPU处理,服务对CPU的利用率对服务的性能起着决定性的作用。

Linux系统的CPU主要有以下维度的统计数据

Us:用户使用c尤优资源 *** pu时间的百分比。

Sy:系统状态使用的cpu时间百分比

ni:nice-weighted进程分配的用户状态cpu时间的百分比

Id:空空闲cpu时间百分比

WA:CPU等待IO完成的时间百分比

Hi:硬中断消耗时间的百分比

Si:软中断消耗时间的百分比

Us&sy:大部分后台服务使用的CPU时间片在Us和sy中占比更高。同时,这两个指标相互影响。us的比例越高,sy的比例越低,反之亦然。通常高sy比意味着被测服务在用户模式和系统模式之间切换频繁,系统整体性能会有一定程度的下降。另外,在使用多核CPU的服务器上,CPU 0负责CPU核之间的调度,CPU 0的高利用率会导致其他CPU核之间的调度效率低。所以CPU 0在测试的时候需要注意。

Ni:每个Linux进程都有一个优先级,优先级高的进程优先执行。这叫pri。除了优先级之外,流程还有一个修改后的优先级值。这个修正值称为过程的nice值。一般来说,被测服务和服务器整体的ni值不会很高。如果测试时ni值偏高,需要从服务器Linux系统配置和被测服务运行参数查找原因。

Id:在线服务运行过程中,需要保持一定的id冗余,以应对突然激增的流量。在性能测试过程中,如果id始终很低,吞吐量没有上升,就需要检查被测的服务线程/进程配置和服务器系统配置。

Wa:磁盘、 *** 等IO操作会导致CPU的wa指数提升。一般 *** IO占用的wa资源不会很高,而频繁的磁盘读写会导致wa激增。如果被测试的服务不是IO密集型的,那么有必要检查被测试服务的日志量和数据加载频率。

Hi&si:硬中断是外设对CPU的中断,即外设硬件发送给CPU或内存的异步信号是硬中断信号;软中断软件本身发送给操作系统内核的中断信号。通常是硬中断处理程序或者进程调度程序对操作系统内核的中断,也就是我们常说的系统调用。性能测试时,hi会有一定的CPU利用率,但不会太高。对于IO密集型服务,si的CPU利用率会更高。

常见的性能瓶颈

当吞吐量达到上限时,系统负载没有达到阈值:一般是被测服务分配的系统资源太少造成的。如果在测试过程中发现这种情况,可以从ulimit的维度、系统打开的线程数量、分配的内存来定位问题的原因。

CPU的us和sy不高,但wa高:如果测试的服务是磁盘IO密集型的,wa高是正常的。但是,如果不是这种服务,wa高最有可能的原因有两个。之一,服务读写磁盘的业务逻辑有问题,读写频率太高,写的数据太多,比如数据加载策略不合理,日志太多,都可能导致这个问题。第二,服务器内存不足,服务在交换分区不断换进换出。

同一请求的响应时间波动很大:这个问题发生在正常吞吐量下。有两个可能的原因。一是服务对资源的加锁逻辑有问题,导致在处理一些请求的过程中,有大量时间等待资源解锁;第二,Linux本身分配给服务的资源有限,有些请求需要等待其他请求释放资源后才能继续执行。

内存持续上升:在吞吐量固定的前提下,如果内存持续上升,很可能是被测服务存在明显的内存泄漏,需要使用valgrind等内存检查工具进行定位。

标签: 性能测试

  • 标签:性能测试

上一篇:

下一篇:

相关推荐