服务端的性能测试(一)

说起性能测试,许多移动端测试的人员可能会比较陌生,性能测试不是涉及到APP的启动时间、流量、大小、耗电量等的相关指标么。本文所讲的是一个与APP的性能测试完全不同的领域:服务端的性能测试。我们会针对服务端有一些不同的指标。

     那么究竟什么是服务端的性能测试?

     我们从最基本的功能测试说起吧。比如,我们要测试一个接口的返回,那么我们测试的时候,会有一个输入的参数,服务端接收到了后会返回一些数据,然后客户端会利用这些数据展示一些相应的结果,如果符合最开始的预期则功能正确。

 

    那么,我们如何对该接口进行性能测试呢?

    我们会模拟多个人同时进行访问这个接口,在保证返回数据正确的前提下,去监管服务端的程序下的各项性能指标和该服务器处理这些请求的时候服务器的硬件使用情况。

     好吧,这个比喻比较粗犷,但是涵盖了性能测试的基本注意点:

     1.功能首先要保证接口处理数据的正确性

     2.对并发性是有要求的

     3.服务器在并发压力的时候一些性能数值

 

     那么我们性能测试都要注意那些数值呢?我们主要应该关注两方面的性能指标:

     功能业务指标:响应时间(RT)、并发数、接口成功率、吞吐量(QPS/TPS)等等

     硬件资源指标:内存、CPU、Nerwork I/O等资源消耗情况

     今天我们先说一下我们的硬件资源指标的获取方式。

CPU:

     我们可以在linux系统上通过vmstat命令来获取一些关于CPU状态的数据:

 

 

     对操作系统了解的同学知道在系统中,进程通常处于三种状态:Running(运行)、Waiting(等待)、Blocked(阻塞)。

     CPU使用率:一些进程处于Running状态的时间对比总时间。在上面的主要通过sy、us、id三种数据来体现:

        sy  系统(中断和内核)占用CPU的百分比

  us  即是占用CPU的百分比

  id   CPU可用的百分比

  性能测试指标中,CPU使用率通常用sy + us来计算,我们接受上限一般在60%~85%。另外需要关注的是,在我们测试过程中,如果sy的值过于长的时间大于25%的状态,应该关注系统中断和上下文切换的数值,并根据具体的功能和实现来判断是否合理。

  运行进程队列数:运行状态+等待状态的进程数,展示了正在运行和等待CPU资源的进程任务数,可以看作CPU的运行清单,可以作为判断CPU是否成为上限瓶颈的重要依据。vmstat通过r的数值来体现:

  r: 可运行进程数,包括正在运行和已就绪等待运行的。

  如果r的值等于系统CPU总核数,则说明CPU已经满负荷。

Memory:

     可用内存:内存占用的数据,上述数值中free的值,可用内存过小将影响整个系统的运行效率,对于稳定运行的系统,free可控制的范围一般应该大于物理内存的25%,也就是说内存占用应该不大于物理内存的75%。

  页面交换:页面交换其中包括SWAP交换到内存中和内存中交换到SWAP,如果系统页面交换过多,需要引起注意。可以从vmstat的si和so获取:

  si   每秒从交换区读取到内存的数据大小

  so  每秒从内存写入到交换区的数据大小

     剩下的指标Nerwork I/O等通常可以通过一些工具来监控,如果同学们对此感兴趣可以在底下留言,后续我们会在性能测试工具的分享里一一为大家说明~

     今天主要为大家讲解了硬件资源的一些指标,如果大家感兴趣的话,下次的分享我们可以针对一些功能业务上的指标测试方法和获得数据上做一些说明。就酱,希望对大家有一些帮助

 

posted @ 2017-08-21 09:30  张老师的小黑屋  阅读(675)  评论(1编辑  收藏  举报