程序员必备 Linux 性能分析工具和方法
创始人
2024-09-28 13:23:09
0

在实际开发中,有时候会收到一些服务的监控报警,比如CPU飙高,内存飙高等,这个时候,我们会登录到服务器上进行排查。本篇博客将涵盖这方面的知识:Linux性能工具。

一次线上问题排查模拟

背景:服务在平稳运行一段时间后,CPU突然飙高。通过top命令,可以确认下,到底是哪个进程导致CPU飙高了(也许是误报呢?)。

top

从上面可以看到图中PID2816的进程,CPU使用率非常高。使用top -Hp 2816来对该进程下的线程进行观察。图中可以发现,2825这个线程CPU非常高。

查看进程下的线程信息

这里利用Python非常方便的把十进制的线程ID转化成了16进制。

进制转换

为什么要这么做呢?因为在接下来的线程DUMP文件中使用的就是16进制的NID。

线程DUMP文件

在实际中,我们应该利用jstack pid多DUMP几次,因为线程存在状态转换,因此多次DUMP有利于抓取到线程更多的信息。图中,你可以观察到,一个线程得到了锁,在运行,迟迟没有释放,而另一个线程一直在等待这个锁。至此,就可以到去查看代码去分析为什么锁迟迟不释放的原因了。

线程状态转换

性能监测工具top详解

上文的案例中,就使用到了top,而在实际中,top的信息量是很大的,这里详细分析下。

top

第一行:涉及到2个时间,一个是系统时间,一个是机器运行的时间。【我们应该重点关注的是机器运行的时间,Why? 有时候,重启机器能带来很多问题,你懂的!】

多少用户登录了系统?【通过who/w/history可以查到更多信息】

3个load值是什么含义?分别代表的是1MIN,5MIN,15MIN机器的负载情况,如何确定负载的大小呢?需要和CPU的核数相结合来看,比如该机器是4核CPU,那么如果load值超过了4,就意味着负载很大了!【在top下按下1可以观察出CPU的个数】,关于系统负载,具体可以阅读前面文章Linux中load average意义(请戳我)。

第二行:主要是总共有多少个任务,重点应该关注的是僵尸状态的任务数。

第三行:主要是CPU的一些信息。

US/SY:说的就是用户进程和系统进程使用CPU的占比。

NI:即NICE,表示被调整过线程优先级的进程占比,这个比例正常不应该很大。

ID:表示空闲;WA表示资源等待的时间,比如在瞬时大流量下,服务打了很多日志的话,那么这个值就会飙高,因为这会很消耗资源的。

HI:硬中断,一般就是外设引起的,如果HI飙高的话,那么意味着外设在硬件层面出现了问题。SI表示软中断。

ST:即steel,如果该主机是虚拟的话会有这个ST信息,也即是该虚拟机从宿主机获取CPU的时间片的百分占比。

用户空间和系统空间

第四、五行:这里主要说2个概念性的东西:buffer 和 cache。

buffer主要是什么呢?应该是待处理的数据,主要是处理2个系统之间速度不匹配的问题。而cache,一般应该是结果数据的缓存,比如从DB加载一些信息供查询用。

SWAP分区,就是想利用硬盘的做一部分缓存,如果SWAP交换非常频繁的话,就是说内存不够用!

列表说明:PID 进程ID、USER 用户、PR 优先级、VIRT 虚拟内存、RES 驻留内存、SHR 共享内存

这里需要指出的是,RES表示的是该进程实际占用的内存,而并不是申请的内存大小。也就是说当前进程所占用的内存物理大小是 RES-SHR。

作者丨 上善若水

来源丨公众号:码农有道(ID:b497155298)

dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

活动推荐

为了和大家一起探索AI相关技术在大数据、数据资产管理、数据库、运维等领域的最佳落地方式,挖掘由此激发的软件发展和技术进步,第九届DAMS中国数据智能管理峰会将于2024年11月29日在上海举办,携手一众产学研界技术领跑单位,带来新思路、重实践、可落地的全日干货盛宴。

活动详情:

https://www.bagevent.com/event/8805002?bag_track=WAZ

相关内容

全新开源项目公布,让PC ...
IT之家 8 月 11 日消息,据外媒 TechPowerup 报...
2026-08-12 08:42:40
汤臣倍健(300146)新...
证券之星消息,根据市场公开信息整理,8月10日汤臣倍健(30014...
2026-08-11 19:37:50
国家机构预警Sorry勒索...
IT时代网8月10日消息,国家计算机病毒应急处理中心10日通报,依...
2026-08-11 19:33:41
每周股票复盘:乐鑫科技(6...
截至2026年8月7日收盘,乐鑫科技(688018)报收于112....
2026-08-10 08:01:16
蚂蚁百灵Ling-3.0-...
智通财经获悉,蚂蚁百灵新一代原生混合推理模型Ling-3.0-fl...
2026-08-09 03:40:12
5年前老卡一夜涨价1.2万...
快科技8月7日消息,前不久亚利桑那州立大学研究员刚公开了针对英伟达...
2026-08-07 19:38:04

热门资讯

全新开源项目公布,让PC Ga... IT之家 8 月 11 日消息,据外媒 TechPowerup 报道,一批曾参与开发 Heroic ...
Flova 接入 Seedan... 最近AI视频行业,有三件事值得展开说说。 第一件:安徽卫视7月22日起在晚间时段首播全AI流程制作的...
AI短剧女主“方桃子”代言美瞳... 近期AI短剧《被裁掉的女孩》女主角“方桃子”,因在短视频平台账号主页发布的作品中植入某美瞳产品广告,...
中文在线携手火山引擎探索AI与... 观点网讯:8月10日,中文在线宣布与火山引擎达成深度业务合作。双方将围绕视频生成模型Seedance...
AI安全测试正在成为新的安全隐... 在过去几个月里,正在接受网络安全评估的AI智能体相继突破限制、访问互联网,甚至在某些情况下入侵了真实...
汤臣倍健(300146)新增【... 证券之星消息,根据市场公开信息整理,8月10日汤臣倍健(300146)新增【AI智能体】概念。 新增...
近200家硅谷初创企业反对限制... 钛媒体App 8月10日,美国一些高级官员公开表示拟对中国人工智能企业开展调查并实施制裁,引起美国业...
国家机构预警Sorry勒索病毒... IT时代网8月10日消息,国家计算机病毒应急处理中心10日通报,依托国家计算机病毒协同分析平台,该中...
每周股票复盘:乐鑫科技(688... 截至2026年8月7日收盘,乐鑫科技(688018)报收于112.06元,较上周的102.7元上涨9...