进程占用过高cpu的排查
1.
vmstat工具,可以查看系统级别的负载情况,包括进程、内存、IO、CPU、系统调用等等
用法:vmstat [options] [delay [count]]
第一行是自上次reboot之后的平均负载,之后的输出是该delay时间段内的增量值(比如中断数、系统调用数等,但像是内存、cpu负载这些参数等就还是实时值)
输出示例:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 8 266056 130176 1352704 0 0 294 35 665 1552 8 4 86 2 0
1 0 8 264356 130216 1354632 0 0 0 184 1958 2605 1 4 93 2 0
0 0 8 264248 130216 1354660 0 0 0 0 781 1364 1 1 99 0 0
参数解释:
Procs
r: The number of runnable processes (running or waiting for run time).
b: The number of processes in uninterruptible sleep.
Memory
swpd: the amount of virtual memory used.
free: the amount of idle memory.
buff: the amount of memory used as buffers.
cache: the amount of memory used as cache.
inact: the amount of inactive memory. (-a option)
active: the amount of active memory. (-a option)
Swap
si: Amount of memory swapped in from disk (/s).
so: Amount of memory swapped to disk (/s).
IO
bi: Blocks received from a block device (blocks/s).
bo: Blocks sent to a block device (blocks/s).
System
in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.
CPU
These are percentages of total CPU time.
us: Time spent running non-kernel code. (user time, including nice time)
sy: Time spent running kernel code. (system time)
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
2.
使用ps命令列出cpu使用率最高的几个进程:
ps -eo pid,user,pcpu,command --sort=-pcpu | head -n 10
3.
查看进程的线程和线程占用的资源:
ps -Lp 1567284
top -H -p 1567284
4.
查看进程打开了哪些文件、套接字、设备、目录等:
lsof -n -p 403601 参数-n是不进行dns解析,-p指示进程号
5.
int ioctl(int fd, ind cmd, …)参数:
fd是用户程序打开设备时使用open函数返回的文件标示符,cmd是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,这个参数的有无和cmd的意义相关
6.
查cpu的中断数:
cat /proc/interrupts | awk '{print $25,$22,$29,$50}'
参考:
https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/investigating_high_cpu_for_java_processes_on_linux_aix_hpux_solaris_windows_identifying_the_suspects?lang=en
https://www.tecmint.com/strace-commands-for-troubleshooting-and-debugging-linux/
https://www.howtoforge.com/linux-strace-command/
转载于:https://www.cnblogs.com/qxxnxxFight/p/11076687.html
进程占用过高cpu的排查相关推荐
- CPU占用过高问题的排查及解决
CPU占用过高问题的排查及解决 排查步骤 1.使用top 定位到占用CPU高的进程PID 然后按shift+p按照CPU排序 2.查看Java进程里面的线程的占用情况 或者是再用ps -mp ...
- WmiPrvSE.exe是什么进程?WMI Provider Host占用很高CPU怎么办?
WmiPrvSE.exe是什么进程?WMI Provider Host占用很高CPU怎么办? 时间:2018-01-06 来源:系统之家 作者:chunhua WmiPrvSE.exe是什么进程?WM ...
- svchost.exe占用过高CPU和内存的解决方案
svchost.exe占用过高CPU和内存的解决方案 废话不多少,直接说怎么解决这个烦人的问题: 首先要找出究竟是哪个服务占用了这么多的资源,方法有两种 1) 用管理员身份打开cmd.exe,输入ta ...
- 高内存占用或高CPU占解决办法
服务性能排查一般就两种:高内存占用或高CPU占用,需要具体问题具体分析.比如应用程序高内存占用,可能因为大文件读取.频繁IO,内存消耗频繁,导致频繁GC,进一步占用内存和CPU:比如应用程序高CPU占 ...
- mysql占用cpu_Mysql占用过高CPU时的优化手段(必看)
Mysql占用CPU过高的时候,该从哪些方面下手进行优化? 占用CPU过高,可以做如下考虑: 1)一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show process ...
- svchost.exe进程占用过高内存
2019独角兽企业重金招聘Python工程师标准>>> 有时候打开电脑,反应特别慢,特别卡,查看任务管理器发现svchost.exe进程占用过高的百分比的CPU,很大的原因都是因为W ...
- searchIndexer.exe占用过高CPU
1.searchIndexer.exe占用过高CPU很可能是Windows的索引损坏造成的. 这时候只要进入控制面板-索引选项-高级-重建即可解决 2. net stop "windows ...
- ps aux排序 (查看进程占用内存和cpu)
查看进程占用内存和cpu: ps aux排序 按内存升序排列: ps aux --sort=+rss 按内存降序排列: ps aux --sort=-rss 按cpu升序排列: ps aux --so ...
- java 一次CPU占用过高问题的排查及解决,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
最新文章
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)
- 关于伺服驱动控制的课本_西门子伺服电机驱动系列汇总,说明书参数及使用方法。...
- 汇编: mul乘法指令
- mysql的date函数可以干啥,MySql的Date函数
- 线上Bug无法复现怎么办?老司机教你一招,SpringBoot远程调试不用愁!
- python3精要(18)-函数主要概念
- C++设计模式--工厂方法模式
- 4行代码解决:L1-057 PTA使我精神焕发 (5分)
- 轻量级网络之mobilenet_v1
- C#中typeof 与GetType()的区别和methodinfo、memberinfo反射
- matlab如何把选中区域标亮
- java项目打jar包
- django settings 定义的变量不存在_使用Django部署机器学习模型(1)
- 2016年下半年《软件评测师》下午试卷及答案
- 拜托!不要用“ ! = null “ 做判空了
- 全国省市区表完整版(自己整理)
- 小迪渗透代码审计(柒)
- 零跑汽车冲刺港股:年营收31亿 去年曾募资88亿
- 上海电力学院计算机组成与结构试卷,数据结构
- 计算机应用课程思政的应用,计算机类课程思政改革——以“Office高级应用”课程为例...
热门文章
- linux 查看cuda版本_Ubuntu18.04+Tensorflow GPU版本环境搭建
- java jdbc 回滚_java_详解Java的JDBC API中事务的提交和回滚,如果JDBC连接是在自动提交模式 - phpStudy...
- 分类二级联动 php,学习猿地-php实现二级联动菜单
- 谁说 JavaScript 简单的?
- json在java中的使用_在Java中使用JSON
- 排序算法java快速排序_快速排序算法--Java实现
- 监测到本计算机上装有sql,检测局域网电脑是否有安装SQL Server数据库
- linux安装opencv让输入密码,linux下安装opencv的全过程(对初学者或者linux不熟悉的童鞋,非常适合)...
- linux实验报告一,linux实验报告
- Filter过滤器链(多个过滤器)