笔记簿
ᴄᴏᴅɪɴɢ ɪs ᴀʀᴛ
首页
关于
搜索
登录
注册
近期文章
高CPU占用排查并生产故障 - 简单排查生产故障
##### 第一步:top命令查看当前服务器cpu占用最多的进程(top)  通过ps aux | grep PID命令,可以进一步确定是Java进程出现了问题。但是无法定位到某一行  ##### 第二步:根据占用cpu较高的进程id显示当前进程中线程的使用情况(ps -mp pid -o THREAD,tid,time)  ##### 第三步:找出占用高cpu的线程tid,并将其转换为16进制的(printf "%x\n" pid)  ##### 第四步:最后打印线程的堆栈信息(jstack pid|grep tid -A 30)  ##### 最后,总结下排查CPU故障的方法和技巧有哪些: 1. top命令:Linux命令。可以查看实时的CPU使用情况。也可以查看最近一段时间的CPU使用情况。(uptime:top命令的精简版)load average 负载均衡 1分钟/5分钟/15分钟 三个时间段的负载值,如果三个值平均值大于60%,则系统资源吃紧;大于80%,建议添加机器 2. PS命令:Linux命令。强大的进程状态监控命令。可以查看进程以及进程中线程的当前CPU使用情况。属于当前状态的采样数据。 3. jstack:Java提供的命令。可以查看某个进程的当前线程栈运行情况。根据这个命令的输出可以定位某个进程的所有线程的当前运行状态、运行代码,以及是否死锁等等。 4. pstack:Linux命令。可以查看某个进程的当前线程栈运行情况。 5. vmstack -n 2 3 :查看CPU的性能(2:采样时间间隔;3:采样次数)procs:进程 / r:running / b:block 阻塞 6. free -m :查看内存使用情况。 7. df -h :查看磁盘空间。 8. iostat -d 2 3:查看IO ###### JVM调优与上线排查 1. jps:虚拟机进程状况工具 2. jstat:虚拟机统计信息监视工具 3. jinfo:java配置信息工具 4. jhat:虚拟机堆转储快照分析工具 5. jmap:内存映像工具 (jmap -heap pid) 6. jstack:java堆栈跟踪工具 7. VisualVM:多合一故障处理工具 8. jconsole:jdk自带的查看jvm的运行情况的工具 9. Memory Analyzer Tool(MAT)Eclipse插件 10. java -Xmx1024m -version 测试压内存
«首页
6
7
8
9
10
末页»
近期文章
Spring @Transactional原理及使用
技术评审,你拿什么来吐槽?
springboot安全问题之CSRF
html页面通过js生成pdf文档
Docker简介与安装
Redis 分布式锁
RabbitMQ入门
高CPU占用排查并生产故障
Shell 读取控制台输入
Shell 工具cut
文章分类
Java
RabbitMQ
Redis
Spring
SpringMVC
SpringBoot
Mysql
Go
Mybatis
Apollo
Consul
Linux
Docker
Nginx
Other
天气