java监控和性能优化
文章平均质量分 71
gary-liu
Like technology, like recording life. Since I went to a foreign company, I have to use English to quickly integrate it. WeChat Offical account: gary_foreign
展开
-
线上问题——CPU、load过高
使用 arthas 排查(推荐)这个要先装下开源的 arthas,更大的好处是直接可以在线上调试,见我的文章 线上排查问题利器——arthas最繁忙的top 线程,根据堆栈去分析代码thread -n 3 当前最忙的前N个线程并打印堆栈原生方法先确定是不是java进程看进程里使用最高的线程 top -H -p pid记录线程pid, 把线程的pid转成十六进制:printf "%x\n" threadPid, 转后线程pid是 newThreadPid打印线程的堆栈信息:jstack原创 2020-08-09 02:22:04 · 909 阅读 · 0 评论 -
线上排查问题利器——arthas
arthas 是阿里开源的线上诊断工具,挺好用的,开源地址:https://github.com/alibaba/arthas, 官方文档官方开源文档 挺详细,建议直接去看。安装及使用方式使用 arthas-boot.jar (推荐)到上面的开源地址下载 arthas-boot.jar,下载和启动命令如下。curl -O https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar使用 as.sh下载脚本文原创 2020-08-09 01:54:11 · 423 阅读 · 0 评论 -
线上问题——内存使用过高
简单处理——大对象倒序看看当前有哪些大对象,然后到代码中定位问题jmap -histo pid | sort -n -r -k 2 | head -50 参数说明: sort的前面部分是获取jvm的堆对象实例数,sort往后的是对jmap的结果进行二次编辑, -n:按照数字进行排序, -r:倒序, -k2:按照结果第2列进行排序(实例数), head -50:只看前50个实例数最高的。dump 内存使用情况后用工具分析到线上机器上 du原创 2020-08-09 01:17:07 · 262 阅读 · 0 评论 -
JConsole使用
本地程序监控执行命令jconsole,选择本地运行的java进程,就可以监控了远程监控java进程要对 Java 进程进行远程监控,在启动它的时候需要启用 JMX。 以远程主机上的 tomcat 为例,先为 jmx 找一个可用的远程端口,比如 9999,看该端口是否占用netstat -anp | grep 9999然后到tomcat的bin目录下的catalina.sh文件中加上如下配置CATA原创 2016-06-20 00:06:32 · 1062 阅读 · 0 评论 -
Java——命令jps、jstat、jmap、jstack、jhat、jinfo
JAVA_HOME/bin/ 目录下jdk提供了很多自带工具,下面以tomcat下的web项目为例。如果感觉输出内容太多可以使用 xxx | head -n 20 显示输出内容的头20行。jpsjps:显示当前用户的所有java进程的PID jps -helpusage: jps [-help] jps [-q] [-mlvV] [<hostid>]Definitions:原创 2017-04-30 18:03:20 · 2327 阅读 · 0 评论