一.背景 2021年2月,收到反馈,视频APP某核心接口高峰期响应慢,影响用户体验. 通过监控发现,接口响应慢主要是P99耗时高引起的,怀疑与该服务的GC有关,该服务典型的一个实例GC表现如下图: 可以看出,在观察周期里: 平均每10分钟Young GC次数66次,峰值为470次: 平均每10分钟Full GC次数0.25次,峰值5次: 可见Full GC非常频繁,Young GC在特定的时段也比较频繁,存在较大的优化空间.由于对GC停顿的优化是降低接口的P99时延一个有效的手段,所以决定对该核…
一.使用 dstat -tcdlmnsygr --disk-util 查看当前系统资源使用状况,当前cpu使用率100% 二.使用TOP命令 查看当前占用CPU进程,可以看到当前占用CPU进程最高的是MYSQL load average出现负载 三.开启慢SQL的配置 1.LIUNX 系统 在mysql配置文件my.cnf中增加 slow_query_log    布尔型变量,默认为真.没有这变量,数据库不会打印慢查询的日志. slow_query_log_file=/usr/local/mys…
You need to enable JavaScript to run this app.   原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等情况,可查看当前链接:https://app.yinxiang.com/fx/bf7839b3-5f7b-4212-9f7d-5f5577e952ea MySql CPU彪高到百分之1000的排查思路   查看当前MySql的CPU已经在百分之 1019   下述为当前MySql的所以子线程的CPU使用状况,可以看到当前已经有11个线程…
原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/2fee7b91-fc6e-4e96-838a-b6926b422368 线上服务器CPU彪高的调试方式 1. 使用TOP获取对应的CPU彪高的进程ID 2. top -p 8948 -H 查看8948进程所对应的所有线程,查看引起CPU彪高的线程PID,此处为9037 3. jstack 8948 >/home/xi…
JVM调优之Java进程消耗CPU过高 查找问题思路 1.查看cpu使用率,发现有线程cpu占用率很高  tops 咱们拿18092线程举例示范 2.查询pid对应的进程 ps -ef|grep 18092|grep -v grep 3.查找对应进程中的线程使用cpu的情况 top -Hp 18092 发现18097线程占用CPU时间最长 4.根据线程号查看是哪个线程频繁占用CPU 将线程号转化为十六进制的形式 printf "%x\n" 18097 在堆栈信息中查找线程ID对应的信息…
Twitter 工程师谈 JVM 调优 2016年03月24日 10:22:30 wenniuwuren https://blog.csdn.net/wenniuwuren/article/details/50969363   一. 调优需要关注的几个方面内存调优CPU 使用调优锁竞争调优I/O 调优 二. Twitter 最大的敌人:延迟导致延迟的几个原因?最大影响因素是 GC其他的有:锁和线程调度.I/O.算法数据结构选取不当效率低 三. 内存性能调优 (1)内存占用调优         O…
1.JVM调优总结(1):一些概念:http://www.importnew.com/18694.html 2.JVM调优总结(2):基本垃圾回收算法:http://www.importnew.com/18740.html 3.JVM调优总结(3):垃圾回收面临的问题:http://www.importnew.com/18747.html 4.JVM调优总结(4):分代垃圾回收:http://www.importnew.com/19255.html 5.JVM调优总结(5):典型配置:http:…
jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多.下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps.top.printf.jstack.grep. 第一步先找出Java进程ID,服务器上的Java应用名称为mrf-center: root@ubuntu:/# ps -ef | grep mrf-center | grep -v grep root 21711 1 1 14:47 pts/3…
jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多.下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps.top.printf.jstack.grep. 第一步先找出Java进程ID,服务器上的Java应用名称为mrf-center: root@ubuntu:/# ps -ef | grep mrf-center | grep -v grep root 21711 1 1 14:47 pts/3…
首先查看服务器版本默认信息: 修改tomcat/bin/catalina.sh,在最顶端加入JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -Xloggc:/usr/local/java/apache-tomcat-7.0.78/bin/gc.log" 随后在 -Xloggc指定路径下,打开gc.log,部分信息如下: Java HotSpot(TM) 64-Bit Server VM (25.144-b01) for linux-amd64 JRE…