性能瓶颈定位分析
2017-06-25 10:41 DataBases 阅读(768) 评论(0) 编辑 收藏 举报用vmstat、sar、iostat检测是否是CPU瓶颈
用free、vmstat检测是否是内存瓶颈
用iostat、dmesg 检测是否是磁盘I/O瓶颈
用netstat检测是否是网络带宽瓶颈
https://linux.cn/article-4452-1.html
1 首先进行OS层面的检查确认
首先要确认当前到底是哪些进程引起的负载高,以及这些进程卡在什么地方,瓶颈是什么。
一般情况下,服务器上最容易成为瓶颈的是磁盘I/O子系统,因为它的读写速度通常是最慢的;也会有其他原因:
1.某些进程/服务消耗更多CPU资源(服务响应更多请求或存在某些应用瓶颈);
2.发生比较严重的swap(可用物理内存不足);
3.发生比较严重的中断(因为SSD或网络的原因发生中断);
4.磁盘I/O比较慢(会导致CPU一直等待磁盘I/O请求);
一般先看整体负载如何
可以使用w 或sar -q 来查看服务器负载数据
sar -q 1
runq-sz: 运行队列的长度(等待运行的进程数)
plist-sz: 进程列表中进程(processes)和线程(threads)的数量
ldavg-1: 最后1分钟的系统平均负载(System load average)
ldavg-5: 过去5分钟的系统平均负载
ldavg-15: 过去15分钟的系统平均负载
查看CPU使用率
sar -u 2
07:20:28 PM CPU %user %nice %system %iowait %steal %idle
07:20:30 PM all 35.09 0.00 64.91 0.00 0.00 0.00
07:20:32 PM all 27.38 0.00 52.38 20.24 0.00 0.00
07:20:35 PM all 34.33 0.00 61.19 4.48 0.00 0.00
07:20:37 PM all 36.51 0.00 63.49 0.00 0.00 0.00
07:20:39 PM all 33.33 0.00 66.67 0.00 0.00 0.00
07:20:41 PM all 33.33 0.00 61.90 4.76 0.00 0.00
07:20:43 PM all 37.93 0.00 62.07 0.00 0.00 0.00
%user : 用户模式下消耗的CPU时间的比例;
%nice:通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例;
%system:系统模式下消耗的CPU时间的比例;
%iowait:CPU等待磁盘I/O而导致空闲状态消耗时间的比例;
%steal:利用Xen等操作系统虚拟化技术时,等待其他虚拟CPU计算占用的时间比例;
%idle:CPU没有等待磁盘I/O等的空闲状态消耗的时间比例;
注:
如果 %iowait 的值过高,表示硬盘存在I/O瓶颈
如果 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
如果 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。
磁盘IO分析
iotop 确认到底哪些进程消耗的磁盘I/O资源最多
由于是压力测试,所以测试进程IO都比较高。
数据库层可以查看日志,对日志中的sql进行分析。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架