5.1 前言 有些时候我们需要查看下jvm中的线程执行情况,比如,发现服务器的CPU的负载突然增 高了、出现了死锁、死循环等,我们该如何分析呢?由于程序是正常运行的,没有任何的输出,从日志方面也看不出什么问题,所以就需要 看下jvm的内部线程的执行情况,然后再进行分析查找出原因。这个时候,就需要借助 ...
分类:
Web程序 时间:
2020-10-08 19:06:08
阅读次数:
33
java排除线上问题套路 线上问题有以下四种:cpu、gc、内存、网络 排除cpu问题套路 (1)ps -ef|grep '进程名字' (2)top -H -p 进程号 获取占用cpu较大的线程 (3)线程号转换为16进制 printf '%x\n' 线程号 (4)jstack '进程号'|grep ...
分类:
编程语言 时间:
2020-09-24 21:57:47
阅读次数:
52
一、如何排查? 1.先用top命令,找到cpu占用最高的进程PID如下图: 2.再用ps -mp pid -o THREAD,tid,time 查询进程中,哪个线程的cpu占用率高 记住TID。 3. jstack 29099 >> xxx.log 打印出该进程下线程日志。 4.sz xxx.log ...
分类:
其他好文 时间:
2020-09-17 13:52:15
阅读次数:
21
这是程序员cxuan的第15期原创分享static是我们日常生活中经常用到的关键字,也是Java中非常重要的一个关键字,static可以修饰变量、方法、做静态代码块、静态导包等,下面我们就来具体聊一聊这个关键字,我们先从基础开始,从基本用法入手,然后分析其原理、优化等。1初识static关键字static修饰变量static关键字表示的概念是全局的、静态的,用它修饰的变量被称为静态变量。publi
分类:
其他好文 时间:
2020-08-09 11:52:26
阅读次数:
68
今天一个电话面试问了这个问题。回来查了下答案,自己也顺带操作一遍,做个记录。之前只知道jstack工具可以查看线程状态这些。比如死锁这些,主要是之前不知道top -H -p pid这个命令的使用,这命令可以看到进程下面线程信息,拿到线程ID,然后再结合jstack命令使用就可以解决这个问题了。下面记 ...
分类:
编程语言 时间:
2020-07-23 22:18:51
阅读次数:
69
参数 标准参数:不会随着JDK版本的变化而变化 java -version/-help -X参数: 非标准参数:随着JDK版本变化而变化 Xint:解释执行 Xcomp:编译执行 Xmix:混合执行 -XX参数 boolean类型 -XX:[+/-]name:启动或停止 -XX: +UseSeria ...
分类:
其他好文 时间:
2020-07-22 01:56:56
阅读次数:
68
锁是个非常有用的工具,运用场景非常多,因为它使用起来非常简单,而且易于理解。但同时它也会带来一些困扰,那就是可能会引起死锁,一旦产生死锁,就会造成系统功能不可用。让我们先来看一段代码,这段代码会引起死锁,使线程t1和线程t2互相等待对方释放锁。 class DeadLockDemo { privat ...
分类:
编程语言 时间:
2020-07-19 11:36:05
阅读次数:
52
一、问题分析使用docker容器起服务,容器是基于openjdk:8-jre-alpine的,里面没有没有相关的内存分析工具,如jmap,jstack等解决参考文档:https://www.codeleading.com/article/40862545024/二、问题解决2.1、容器安装openj... ...
分类:
编程语言 时间:
2020-07-14 21:51:33
阅读次数:
127
引言 想必本文的读者对数据库都不会陌生,由于数据库良好的特性和服务的稳定性,使得我们的工作几乎离不开,而数据库连接池因为连接复用的优势也被广泛的使用,但凡事不可能只有好处而没有代价,使用连接池一个最直接的代价就是需要配置一堆的参数。其实很多时候这个复杂度也不存在,只要找个工程把配置拷贝一份,改一下用 ...
分类:
数据库 时间:
2020-07-09 13:47:40
阅读次数:
292
转自: java命令--jstack 工具 ps -mp 1 -o THREAD,tid,time | sort -rn jstack 1|grep D29 -A 30 printf "%x\n" 10426 jstack -l 10424 | grep 28ba jstack pid jstack ...
分类:
编程语言 时间:
2020-07-02 16:47:45
阅读次数:
59