cpu进程占用过高检测工具
AI-摘要
KunKunYu GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
cpu进程占用过高检测工具
[TOC]
使用到的工具
- htop
- jstack
/opt/java8/bin/jstack
Usage:
jstack [-l] <pid>
(to connect to running process) 连接活动线程
jstack -F [-m] [-l] <pid>
(to connect to a hung process) 连接阻塞线程
jstack [-m] [-l] <executable> <core>
(to connect to a core file) 连接dump的文件
jstack [-m] [-l] [server_id@]<remote server IP or hostname>
(to connect to a remote debug server) 连接远程服务器
Options:
-F to force a thread dump. Use when jstack <pid> does not respond (process is hung)
-m to print both java and native frames (mixed mode)
-l long listing. Prints additional information about locks
-h or -help to print this help message
1. 首先排查哪些进程cpu占用率高。 通过命令 htop
看的pid 为31147的进程和4375的进程
2. 查看对应java进程的每个线程的CPU占用率
ps -Lp 31147 cu
3. 通过jdk/bin 命令查找 每个环境jdk路径可以从/etc/profile查看
/usr/local/jdk1.8.0_201/bin/jstack -F 31147
4 转换线程ID
printf "%x\n" 41157
5 定位cpu占用线程
jstack 31147 |grep a0c5
4 判别和处理load高问题
一般根据cpu数量去判断,也就是Load平均要小于CPU的数量,负载的正常值在不同的系统中有着很大的差别。在单核处理器的工作站中,1或2都是可以接受的。多核处理器的服务器(比如24核)上,load 会到达20 ,甚至更高。
4.1 a) 数据库层面
-
1 top -u mysql -c 检查当前占用cpu资源最多的进程命令。-c 是为了显示出进程对应的执行命令语句,方便查看是什么操作导致系统load飙高。
-
2 根据不同的情况获取pid 或者MySQL的端口号
-
3 如果是MySQL 数据库服务导致laod 飙高,则可以使用如下命令 show processlist; SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND <> 'sleep' AND TIME>100; 或 orzdba 工具检查逻辑读/thread active的值。用法orzdba --help orztop 工具检查当前正在执行的慢sql,用法orztop -P $port
-
4 获取异常的sql之后,剩下的比较好解决了。结合第一部分中的几条原因
-
a 选择合适的索引
-
b 调整sql 语句 比如对应order by 分页采用延迟关联
-
c 业务层面增加缓存,减少对数据库的直接访问等
4.2 b) OS 系统层面 检查系统IO
使用iostat 命令查看r/s(读请求),w/s(写请求),avgrq-sz(平均请求大小),await(IO等待), svctm(IO响应时间)
r/s ,w/s是每秒读/写请求的次数。
util是设备的利用率。如果它接近100%,通常说明设备能力趋于饱和(并不绝对,比如设备有写缓存)。有时候可能会出现大于100%的情况,这多半是计算时四舍五入引起的。
svctm是平均每次请求的服务时间。这里有一个公式:(r/s+w/s)*(svctm/1000)=util。举例子:如果util达到100%,那么此时 svctm=1000/(r/s+w/s),假设IOPS是1000,则svctm大概在1毫秒左右,如果长时间大于这个数值,说明系统出了问题。
await是平均每次请求的等待时间。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
avgqu-sz是平均请求队列的长度。毫无疑问,队列长度越短越好
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
作者编辑不易,如有转载请注明出处。完整转载来自https://wangairui.com 网站名称:猫扑linux
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果