linux问题排查 - 高cpu占用率的进程和线程

it2022-05-05  155

1.简介 一个程序,完成它预设的功能,并不能说明他是一个优良的程序.好的程序,应该是对资源的合理利用,亦或是用更少的资源(使用合理的算法),实现跟多的有效的产出 影响程序的资源一般而言分为4个:CPU,内存,IO,网络。本文着重讲解一下在linux系统下,如何查看高CPU占用率的进程,线程。

2.python代码 为了模拟真实场景,我们用python程序模拟一个高CPU占用的情景,即开大量的线程,线程内部也使用无限循环(空跑),以下为python代码cpu.py: 在linux系统中,使用 python cpu.py 运行该程序。

3.问题排查时使用的命令 如何确定高cpu消耗的进程 方法1 用top简单看一下 标红的部分,很明显能发现较高的cpu占用情况。

方法2 用ps -eo pid,pcpu | sort -n -k 2 (当然,可以tail一下) 如何确定高cpu消耗的线程: 方法1 用top -H 标红的部分就是高cpu消耗的线程信息。

方法2 用ps H -eo pid,tid,pcpu | sort -n -k 3 假如我知道高cpu消耗的进程号是多少了,查看它的线程信息的方法为: 方法 1: pstree -p pid 方法 2: 查看线程的详细信息:cat /proc/进程号/task/线程号/status 方法 3: 实时显示 top -H -p pid 方法 4: htop,通过htop查看单个进程的线程,然后按来进入htop的设置菜单。选择“设置”栏下

面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按退出设置。 方法 5: 查看该进程下所有的线程 ps -efL | grep pid


最新回复(0)