专栏首页公众号-测试驿栈性能测试-服务端瓶颈分析思路

性能测试-服务端瓶颈分析思路

概述

性能测试中,对服务端的指标监控也是很重要的一个环节。通过对各项服务器性能指标的监控分析,可以定位到性能瓶颈。

后端性能指标有CPU,内存,网络,I/O等等

分析思路

  • 整体系统CPU利用率
  • 内存利用率
  • 磁盘I/O的利用率和延迟
  • 网络利用率

CPU定位分析

CPU利用率大于50%,需要注意;大于70%,需要密切关注;高于90%,情况比较严重。

监控命令:vmstat、sar、dstat、mpstat、top、ps

类型

度量方法

衡量标准

利用率

1、vmstat 统计1-%idle 2、sar -u 统计1-%idle 3、dstat 统计1-%idl 4、mpstat -P ALL 统计1-%idle

注意>=50% 告警>=70% 严重>=90%

满载

1、vmstat的r值> cpu逻辑颗数 2、sar -q ,“runq-sz”>cpu逻辑颗数

运行队列大于1时,证明已经有一定的负载

内存定位分析

当物理内存不够时,会使用swap分区,所以性能测试过程中需要关注swap和mem的使用情况。

物理内存不够,大量的内存置换到swap空间,可能导致CPU和I/O的瓶颈。

监控命令:vmstat、sar、dstat、free、top、ps等

类型

度量方法

衡量标注

占用率

1、free 查看使用情况 2、vmstat 3、sar -r 4、ps

注意>=50% 告警>=70% 严重>=80%

满载

1、vmstat的si/so比例,swapd占比 2、sar -W 查看次缺页数 3、dmesg | grep killed

1、so数值大,且swapd已经占比很高,内存已经饱和 2、sar命令次缺页多意味内存已经饱和 3、内存不够用会触发内核的OOM机制

网络定位分析

监控命令:sar、ifconfig、netstat,以及查看net的dev速率。

通过查看发现收发包的吞吐率达到网卡的最大上限,网络数据报文有因为这类原因而引起的丢包、阻塞等现象都证明当前网络可能存在瓶颈。

为了减小网络对性能测试的影响,一般我们都在局域网中进行测试执行。

类型

度量方法

衡量标准

使用情况

1、sar -n DEV 的收发计数大于网卡上限 2、ifconfig RX/TX宽带超过网卡上限 3、cat /proc/net/dev的速率超过上限 4、nicstat的util基本满负荷

1、收发包的吞吐率达到网卡上限 2、有延迟 3、有丢包 4、有阻塞

满载

1、ifconfig dropped 有计数 2、netstat -s "segments retransmited"有计数 3、sar -n EDEV,rxdrop/s  txdrop/s有计数

有丢包统计

错误

1、ifconfig,“errors” 2、netstat -i,RX-ERR TX-ERR 3、sar -n EDEV,rxerr/s   txerr/s  4、ip -s link, “errors”

错误有计数

IO定位分析

I/O读写频繁的时候,如果I/O得不到满足会导致应用的阻塞。

需要考虑I/O的TPS、平均I/O数据、平均队列长度、平均服务时间、平均等待时间、IO利用率(磁盘Busy Time%)等指标

监控命令:sar、iostat、iotop

类型

度量方法

衡量标准

使用情况

1、iostat -xz,“%util” 2、sar -d,“%util” 3、cat /proc/pid/sched | grep iowait

注意>=40% 告警>=60% 严重>=80%

满载

1、iostat -xnz,“avgqu-sz ”>1 2、iostat await>70

IO疑似满载

错误

1、dmseg 查看io错误 2、smartctl /dev/sda

有错误信息

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux内存机制以及手动释放swap和内存

    我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念...

    飞天小子
  • Jmeter(四十三)_合理分配堆内存

    内存泄露是指你的应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源,这是一种状态描述;

    飞天小子
  • 雾计算简史(转载)

    1961 年,人工智能之父麦卡锡在一次会议上提出了「效用计算」这个概念,第一次体现了这种共享资源的思想。当时计算设备的价格非常昂贵,远非普通企业和机构所能承受,...

    飞天小子
  • Android性能优化来龙去脉总结

    一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样才能更好地提高用户体验。

    WeTest质量开放平台团队
  • 计算机怎么做到存储内容的(二)

    寄存器能存一个数字,这个数字有多少位,叫"位宽",早期电脑用 8 位寄存器,然后是 16 位,32 位,如今许多计算机都有 64 位宽的寄存器。写入寄存器前,要...

    硬核编程
  • SDP vs. VPN vs. 零信任,后来者居上?

    本文介绍了VPN、SDP和零信任网络之间的相互关系。迄今为止,VPN在网络安全领域的地位比较高,SDP和零信任网络目前还比较新,他们推出的目的就是为了填补VPN...

    SDNLAB
  • 修复 WPF 窗口在启动期间短暂的白底显示

    2017-11-03 15:08

    walterlv
  • scitools Understand安装及入门

    Understand是一个用来进行静态的软件分析、软件度量、软件可视化的工具。他类似于编译器。编译器的输入是代码,输出是可执行文件,而Understand工具的...

    kalifa_lau
  • 从事嵌入式开发,C语言学算法要学到很高深吗?

    懂得嵌入式开发,必须要精通C语言算法 从事嵌入式软件开发多年,嵌入式开发未来前景也非常广阔,消费类电子产品大部分都属于嵌入式开发系列,嵌入式软件开发从开发角度分...

    程序员互动联盟
  • ubuntu16.04对比工具Meld安装和使用

    根据需求选择需要的功能。 比如文件比较: 如果比较没有保存的内容可以选择空白比较。

    李小白是一只喵

扫码关注云+社区

领取腾讯云代金券