
Linux 问题故障定位的技巧大全
What:现象是什么样 When:什么时候发生 Why:为什么会发生 Where:发生的问题具体地点 How much:耗费了多少资源 How to do:解决问题的方法 内核CPU调度器功能和性能问题 线程状态分析: 内存为提高效率而生,内存问题不仅影响性能 理解以下概念:主存、虚拟内存、常驻内存、地址空间、OOM、页缓存、缺页、换页、交换空间、交换、用户分配器(如libc、glibc、libmalloc、mtmalloc)、LINUX内核级SLUB分配器 磁盘是计算机中最慢的子系统,最容易出现性能瓶颈 理解概念:文件系统(VFS)、文件系统缓存、页缓存、目录缓存、inode、inode缓存、noop调用策略 网络监测复杂度大,需了解延迟、阻塞、冲突、丢包等因素 自适应网卡根据网络环境自动调整 负载指的是计算机执行多少工作(Load Average是1分钟、5分钟、15分钟的平均值) 分析工具:uptime、top、vmstat 火焰图展示CPU调用栈,y轴为调用栈深度(函数层级),x轴为抽样次数 常用类型:on-CPU、off-CPU、Memory、Hot/Cold、Differential Nginx集群500+异常 Top观察系统指标: perf分析进程内部: 专业知识体系完整化 学习视频教程覆盖网络安全法、渗透测试、漏洞详解等
发布日期:2025-04-07 01:24:55
浏览次数:6
分类:精选文章
本文共 1873 字,大约阅读时间需要 6 分钟。
背景
有时在分析系统性能问题时,监控插件无法快速定位根源。这时需要结合服务器端深入分析,并结合经验,仅有一套好工具才能事半功倍,方便更高效地定位问题。问题定位的方法学
采用5W(What、When、Why、Where、How)结合H(How to do)的方法,提出性能分析问题:CPU分析
- on-CPU:执行中,分为用户态(user)和系统态(sys)
- off-CPU:等待下一轮CPU或I/O等状态,可细分为可执行、匿名换页、睡眠、锁、空闲等
需要理解以下概念:
- 处理器
- 核
- 硬件线程
- CPU内存缓存
- 时钟频率
- 每指令周期数(CPI)和每周期指令数(IPC)
- CPU指令
- 使用率
- 用户时间/内核时间
- 调度器
- 运行队列
- 抢占
- 多进程多线程
- 字长
分析工具
- uptime、vmstat、mpstat、top、pidstat用于查询CPU及负载情况
- perf用于跟踪进程内部函数耗时
使用方式
- 查看系统CPU使用情况:
top
- 查看所有CPU核信息:
mpstat -P ALL 1
- 查看进程CPU统计信息:
vmstat 1
-跟踪进程内部函数级CPU使用情况:perf top -p pid -e cpu-clock
内存分析
分析工具
- free、vmstat、top、pidstat、pmap用于统计内存信息
- valgrind用于内存泄漏检测
- dtrace动态跟踪需要对内核函数有深入了解
使用方式
- 查看系统内存使用:
free -m
- 查看虚拟内存统计:
vmstat 1
- 查看进程内存映像信息:
pmap -d pid
磁盘IO分析
分析工具
- iotop:查看详细IO信息
- iostat:查看系统IO统计
使用方式
- 查看系统IO信息:
iotop
- 统计IO详细信息:
iostat -d -x -k 1 10
网络分析
分析工具
- netstat用于显示网络连接状态
- sar用于查看网络性能指标
使用方式
- 查看网络统计信息:
netstat -s
- 查看UDP连接状况:
netstat -nu
系统负载分析
使用方式
- 查看负载情况:
uptime
、top
- 统计系统调用耗时:
vmstat
- 跟踪指定系统操作:
strace -c -p pid
火焰图分析
火焰图安装与使用
- 安装systemtap:
yum install systemtap systemtap-runtime
- 生成火焰图:
perf record -F 99 -p pid -g -- sleep 30 perf script > out.stacks1
示例火焰图DEMO
- Corsairs-mage-tilting-joystick图形展示cpu占用情况
内存级别火焰图
分析内存泄漏问题,使用火焰图可快速定位内存分配问题性能红蓝差分火焰图
通过比对修改前后火焰图,快捷定位性能变化原因案例分析
- 通过监控插件发现499、5xx状态码
- Cpu使用率升高
分析工具使用
top
perf top -p pid
火焰图显示json解析和内存操作占用CPU,发现解析json库性能问题
总结
- 通过火焰图定位code问题,优化代码性能
网络安全学习
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月30日 22时50分48秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux 输入重定向和管道符号
2023-02-02
Linux 运维王者从不离手的10款工具,全用过会变成高手?
2023-02-02
linux 运行.sh 让其执行其中的Python文件
2023-02-02
Linux 运行SHELL报错“-BASH: ./TEST.SH: /BIN/BASH^M: BAD INTERPRETER: NO SUCH FILE OR DIRECTORY”
2023-02-02
Linux 这4个进程相关的命令,太好用!
2023-02-02
Linux 进程和系统监测
2023-02-02
linux 进程控制入门
2023-02-02
Linux 进程管理及监控与性能评估
2023-02-02
Linux 进程管理详解
2023-02-02
linux 通过inode删除文件
2023-02-02
Linux 通过SSH跳板机实现端口转发
2023-02-02
Linux 通过压缩包安装 MySQL 并设置远程连接教程
2023-02-02
Linux 通过监控系统内存并定时重启指定服务
2023-02-02
Linux 逻辑卷详解
2023-02-02
Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
2023-02-02
linux 配置 skywalking
2023-02-02
linux 配置 vsftpd 匿名用户可增加、修改、删除文件
2023-02-02
linux 重启服务脚本,常见的linux上的服务重启脚本
2023-02-02