详解进程栈分析的两个命令:Pstack和Starce
概述
今天主要分享两个命令,详解析比较多用来分析进程具体调用,进程平时排查问题会用到比较多的栈分。

pstack
pstack用来跟踪进程栈,命令这个命令在排查进程问题时非常有用,详解析比如我们发现一个服务一直处于work状态(如假死状态,进程好似死循环),栈分使用这个命令就能轻松定位问题所在;可以在一段时间内,命令多执行几次pstack,详解析若发现代码栈总是进程停在同一个位置,那个位置就需要重点关注,栈分很可能就是命令出问题的地方;
1、安装pstack
yum install *pstack* -y
2、详解析分析mysql进程
ps -ef|grep mysql
3、进程将进程的栈分栈跟踪信息写入文件pstack.log
pstack 2313 >> pstack.log pstack 2313 >> pstack.log pstack 2313 >> pstack.log
4、如下所示,可以看到函数调用关系为:_start->__libc_start_main->connection_event_loop->listen_for_connection_event->poll.

strace
strace常用来跟踪进程执行时的系统调用和所接收的免费源码下载信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
1、安装strace
yum install -y strace
2、strace分析
strace cat /dev/null
这里每一行都是一条系统调用,等号左边是系统调用的函数名及其参数,右边是该调用的返回值。云南idc服务商 strace 显示这些调用的参数并返回符号形式的值。
strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。
3、跟踪可执行程序
strace -f -F -o ~/straceout.txt myserver-f -F选项告诉strace同时跟踪fork和vfork出来的进程,-o选项把所有strace输出写到~/straceout.txt里 面,myserver是要启动和调试的程序。
4、跟踪服务程序
strace -o output.txt -T -tt -e trace=all -p 2313跟踪2313进程的所有系统调用(-e trace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),最后将记录结果存在output.txt文件里面。
企商汇相关文章
有个领导想在自己安装了ubuntu的系统中装个打印机,我说行啊,我来帮你装,顺便就截了几张图,分享给大家步骤。网络打印机是有一个IP地址的哦!和共享打印机的添加方法不太一样,但是可以借鉴参考。1、打开2025-11-05
在不放弃你的 Plasma 桌面的情况下获得 GNOME 的感觉。GNOME 有一种极简主义设计的倾向。它是一种美丽的桌面体验,并且是第一个在我使用 Linux 时引起别人赞叹的2025-11-05
关系型数据库已经成为计算机文化的一部分,因其很多优点:获取持久化数据可以将数据持久化到磁盘,并且很容易访问到其中一小块数据。并发关系型数据库中有“事务”的概念,有效保障了多个程序访问同一份数据时的一致2025-11-05
本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起。根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来产生兼容性问题。本文是基于MySQL-52025-11-05以疯卖酷品——探索独特品牌营销方式(创新、激情、疯狂,为酷品打造销售奇迹)
摘要:如今市场竞争激烈,产品同质化现象越来越严重,让消费者眼花缭乱。在这个背景下,如何让自己的产品脱颖而出,吸引更多消费者的目光呢?以疯卖酷品或许是一个有趣而有效的策略。本文将通过探索独...2025-11-05
译者 | 卢鑫旺审校 | 梁策 孙淑娟DevOps从根本上改变了软件开发的方式。它进一步为创建更快、更灵活、更具协作性的开发和交付过程铺平了道路。因此,为了改进现有工作流程或向DevOps流程引入新功2025-11-05

最新评论