linux问题排查 - 高cpu占用率的进程和线程
来源:互联网 发布:国民党将领 知乎 编辑:程序博客网 时间:2024/05/17 04:39
1.简介
一个程序,完成它预设的功能,并不能说明它是一个优良的程序。好的程序,应该是对资源的合理利用,亦或是
用更少的资源(使用合理的算法),实现更多有效的产出。
影响程序的资源一般而言分为4个:CPU、内存、IO、网络。本文着重讲解一下在linux系统下,如何查看高CPU占用率的进程,线程。
2.python代码
为了模拟真实场景,我们用python程序模拟一个高CPU占用的情景,即开大量的线程,线程内部也使用无限循环(空跑),以下为python代码cpu.py:
#-*- coding:utf-8 -*-import time, threading#测试线程的个数num = 500def loop(): print 'thread %s is running...' % threading.current_thread().name k = 0 while k < 500: k += 1 time.sleep(1)def special(): print 'thread %s is running...' % threading.current_thread().name while True: pass#启动一些普通线程for i in range(num): t = threading.Thread(target=loop, name='normal-' + str(i)) t.start()t = threading.Thread(target=special, name='special')t.start()在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查看单个进程的线程,然后按<F2>来进入htop的设置菜单。选择“设置”栏下
面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按<F10>退出设置。
方法 5: 查看该进程下所有的线程 ps -efL | grep pid
注意:
如您发现本文档中有明显错误的地方,
或者您发现本文档中引用了他人的资料而未进行说明时,请联系我进行更正。
转载或使用本文档时,请作醒目说明。
必要时请联系作者,否则将追究相应的法律责任。
note:
If you find this document with any error ,
Or if you find any illegal citations , please contact me correct.
Reprint or use of this document,Please explain for striking.
Please contact the author if necessary, or they will pursue the corresponding legal responsibility.
- linux问题排查 - 高cpu占用率的进程和线程
- Linux 系统 CPU 占用率较高问题排查思路
- linux-一次load高但是cpu占用率低的排查
- linux 排查进程的cpu占用高
- linux下进程CPU占用率高问题定位
- Linux下java进程CPU占用率高如何定位问题
- Linux下java进程CPU占用率高如何定位问题
- Linux下java进程CPU占用率高如何定位问题
- 云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路
- 云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路
- Linux java进程CPU占用率高
- JAVA 进程异常高的 CPU 占用率
- windbg调试cpu占用率高的进程
- java进程CPU占用高的问题排查
- CPU飙高问题 - 线程排查
- 怎样定位CPU占用率高的问题
- 查看linux线程的CPU占用率
- Linux下java进程CPU占用率高分析方法
- TensorFlow学习总结
- 直接访问tomcat下静态资源:文本、图片等
- hdu 1116 (有向欧拉图) 欧拉图问题
- android内存优化
- 【Android】神奇的android:clipChildren属性
- linux问题排查 - 高cpu占用率的进程和线程
- 关于春雨线下诊所的创意策划
- phpExcel初步使用
- 拆点最大流-POJ-3281-Dining
- VC修改窗口属性
- 系统辨识char3_1——polyfit实现最小二乘辨识的原理
- 安卓图片优化
- java经验之谈
- codevs#3147[题解]矩阵乘法2