服务器问题查询

查询java进程id:
ps -ef|grep java
查询某一进程中线程的情况:
top -Hp 29945
线程转换16进制
printf “%x\n” 16482
查看该进程下该线程的具体线程
jstack 16473|grep 4062
jstack是java虚拟机自带的一种堆栈跟踪工具,查询某一进程的具体情况
jstack 16473
展示如下:
服务器问题查询

Jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java JVM进程的一些简单情况
jps:列出pid和java主类名
jps -p :仅仅显示VM 标示,不显示jar,class, main参数等信息.
jps -m:输出主函数传入的参数
jps -l: 输出应用程序主类完整package名称或jar完整名称.
jps -v: 列出jvm参数, -Xms20m -Xmx50m是启动程序指定的jvm参数
展示如下:
服务器问题查询

jmap (linux下特有,也是很常用的一个命令)

观察运行中的jvm物理内存的占用情况。

参数如下:

-heap :打印jvm heap的情况
-histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live : 同上,但是只答应存活对象的情况
-permstat: 打印permanent generation heap情况
展示如下:
服务器问题查询

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:
-class:统计class loader行为信息

-compile:统计编译行为信息

-gc:统计jdk gc时heap信息

-gccapacity:统计不同的generations(不知道怎么翻译好,包括新生区,老年区,permanent区)相应的heap容量情况

-gccause:统计gc的情况,(同-gcutil)和引起gc的事件

-gcnew:统计gc时,新生代的情况

-gcnewcapacity:统计gc时,新生代heap容量

-gcold:统计gc时,老年区的情况

-gcoldcapacity:统计gc时,老年区heap容量

-gcpermcapacity:统计gc时,permanent区heap容量

-gcutil:统计gc时,heap情况

-printcompilation:不知道干什么的,一直没用过。

一般比较常用的几个参数是:

jstat -class 2083 1000 10 (每隔1秒监控一次,一共做10次)

参数解释:

Options — 选项,我们一般使用 -gcutil 查看gc 情况

vmid — VM 的进程号,即当前运行的java 进程号

interval– 间隔时间,单位为秒或者毫秒

count — 打印次数,如果缺省则打印无数次

S0 — Heap 上的 Survivor space 0 区已使用空间的百分比

S1 — Heap 上的 Survivor space 1 区已使用空间的百分比

E — Heap 上的 Eden space 区已使用空间的百分比

O — Heap 上的 Old space 区已使用空间的百分比

P — Perm space 区已使用空间的百分比

YGC — 从应用程序启动到采样时发生 Young GC 的次数

YGCT– 从应用程序启动到采样时 Young GC 所用的时间( 单位秒 )

FGC — 从应用程序启动到采样时发生 Full GC 的次数

FGCT– 从应用程序启动到采样时 Full GC 所用的时间( 单位秒 )

GCT — 从应用程序启动到采样时用于垃圾回收的总时间( 单位秒)

展示如下:
服务器问题查询