yangjianxv
作者yangjianxv·2016-12-26 14:56
部门总经理·成方金融科技有限公司

性能指标之资源指标-CPU-谁占用了CPU-函数级-truss

字数 618阅读 5279评论 1赞 1

当应用程序时出现core dump,或分析什么函数占用CPU时,可以采用truss。

truss命令显示了应用程序对外部库和内核的调用情况。应用程序一般使用这些调用来访问网络、文件系统以及显示信息。通过观察这些调用及其结果,可以了解应用程序需要什么,并由此找到解决方案。

truss 命令执行对指定命令的跟踪,并产生对系统调用、接收的信号和进程造成的机器故障的跟踪。每行跟踪输出报告 Fault 或 Signal 名称或 Syscall 名称和参数及返回值。

Truss的缺点是只能跟踪正在被执行的function,而不能回看已经执行过的function。比如:并不能知道什么文件被锁定并阻碍下一个进程执行。因为直到打开这个文件的function call被调用,跟踪进程才能开始记录。

1、 使用方法

truss pid

2、 示例

某cics程序占用CPU高。

首先,找其中一个cics的pid
ps –ef | grep cics

执行truss
truss -p 4325490

发现报错信息,不断重复 kill 2个进程

搜一搜kill的2个进程是什么

amqzlaa0是队列管理器代理
amqzxma0是处理控制器, The execution controller is the first job started by the queue manager. Deals with MQCONN requests。

微信公众号:性能测试与调优

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论1 条评论

overtopovertop系统工程师互联网公司
2016-12-29 16:20
为何此例子,反复kill这两个进程,进程还在,进程号不变?是在尝试kill,然后没有结束掉吗?
Ctrl+Enter 发表

本文隶属于专栏

作者其他文章

X社区推广