Linux下如何查看高CPU占用率线程_铽可喏_新浪博客

本文介绍如何在Linux环境下设置线程名称以便于调试,使用top命令查找高CPU占用率的进程,以及如何进一步分析这些进程内的线程状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、  在程序中设置线程名,并显示线程名和线程ID,便于调试
添加头文件
#include “sys/prctl.h”
#include “sys/syscall.h”
 
线程主函数的开始处,放在主循环的外面,避免多次显示
char tname[16];
memset(tname, 0, sizeof(tname));
prctl(PR_SET_NAME, (unsigned long)"tcp_modbustcp"); //设置线程名,最大15个字节
prctl(PR_GET_NAME, (unsigned long)tname);
printf("%s - Thread tid=%d tname=%s\n", __PRETTY_FUNCTION__, (int)syscall(__NR_gettid), tname);

另一种设置线程名字的ID为调用函数:pthread_setname_np(pthread_t thread, const char *name)
 
2、  通过top命令找到高CPU占用率进程ID
3、  执行以下命令,执行后显示格式为线程ID,线程名,用户时间和内核时间
awk '{print $1,$2,$14,$15}' /proc/[pid]/task/*/stat
等待5秒钟后,重复执行以上命令,比较两次用户时间和内核时间的差值,大的为高CPU占用率线程

4.要让top输出某个特定进程pid并检查该进程内运行的线程状况:

$ top -H -p pid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值