惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
P
Palo Alto Networks Blog
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Blog — PlanetScale
Blog — PlanetScale
S
Schneier on Security
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
雷峰网
雷峰网
T
Tenable Blog
人人都是产品经理
人人都是产品经理
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Scott Helme
Scott Helme
SecWiki News
SecWiki News
C
CERT Recently Published Vulnerability Notes
Recorded Future
Recorded Future
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
Cloudbric
Cloudbric
C
Check Point Blog
Engineering at Meta
Engineering at Meta
TaoSecurity Blog
TaoSecurity Blog
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
N
News and Events Feed by Topic
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
腾讯CDC
量子位
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
Kaspersky official blog
Vercel News
Vercel News
F
Full Disclosure
T
Troy Hunt's Blog
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs

博客园 - ClawStudio

maven项目,httpclient jar包冲突 mysql5 数据库连接丢失问题,autoReconnect=true不起作用 博文阅读密码验证 - 博客园 org.springframework.web.method.HandlerMethod 与 org.springframework.messaging.handler.HandlerMethod 转换失败 dubbo常见错误 jvm实战-jvm调优 使用http load测试qps 博文阅读密码验证 - 博客园 jvm理论-字节码指令 博文阅读密码验证 - 博客园 jvm理论-字节码指令案例 jvm理论-class文件 jvm理论-常量池-string 博文阅读密码验证 - 博客园 jvm理论-运行时数据区 java nio-理解同步、异步,阻塞和非阻塞 真正的mybatis_redis二级缓存 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园
jvm工具
ClawStudio · 2017-01-12 · via 博客园 - ClawStudio

jvm工具

知识,经验是基础,数据是依据,工具是运营知识处理数据的手段

数据:运行日志、异常堆栈、GC日志、线程快照、堆转存储快照

JPS:虚拟机进程状况工具

jvm process status tool

(Local Virtual Machine Identifier)LVMID和名称。

-q:仅输出VM标识符,不包括classname,jar name,arguments in main method 
-m:输出main method的参数 
-l:输出完全的包名,应用主类名,jar的完全路径名 
-v:输出jvm参数 
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 
-Joption:传递参数到vm,例如:-J-Xms512m

jstat:虚拟机统计信息监视工具

运行期定位虚拟机性能问题首选工具

jstat -gc pid 

可以显示gc的信息,gc次数,及时间。

S0C、S1C、S0U、S1U :幸存区使用情况(总容量,已使用容量) 

EC、EU:Eden使用情况。

OC、OU:年老代使用情况。

PC、PU:持久代使用情况。

YGC、YGCT 、FGC、FGCT、GCT:GC次数和时间。

jstat -gccapacity 22044 250 3

可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小。

NGCMN、NGCMX、NGC:年轻代大小(初始化、最大、当前使用)
S0C、S1C、EC:年轻代大小(幸存者、Eden)
OGCMN、OGCMX、OGC、OC:年老代大小(初始化、最大、当前使用、容量)
PGCMN、PGCMX、PGC、PC:持久代大小(初始化、最大、当前使用、容量)
YGC、FGC:GC次数

jstat -gcutil 22044 250 3

统计gc信息统计

S0,S1,E,O,P:已使用占当前容量百分比。

S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
EC:年轻代中Eden(伊甸园)的容量 (字节)
EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
OC:Old代的容量 (字节)
OU:Old代目前已使用空间 (字节)
PC:Perm(持久代)的容量 (字节)
PU:Perm(持久代)目前已使用空间 (字节)
YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
NGCMN:年轻代(young)中初始化(最小)的大小 (字节)
NGCMX:年轻代(young)的最大容量 (字节)
NGC:年轻代(young)中当前的容量 (字节)
OGCMN:old代中初始化(最小)的大小 (字节)
OGCMX:old代的最大容量 (字节)
OGC:old代当前新生成的容量 (字节)
PGCMN:perm代中初始化(最小)的大小 (字节)
PGCMX:perm代的最大容量 (字节)
PGC:perm代当前新生成的容量 (字节)
S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E:年轻代中Eden(伊甸园)已使用的占当前容量百分比
O:old代已使用的占当前容量百分比
P:perm代已使用的占当前容量百分比
S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)
S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)
ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)
DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)
TT: 持有次数限制
MTT : 最大持有次数限制

参考:

http://nassir.iteye.com/blog/1517484

http://blog.csdn.net/zhaozheng7758/article/details/8623549

jinfo:Java配置信息工具

实时参考和调整虚拟机各项参数

参考:http://blog.csdn.net/gtuu0123/article/details/6056758

jmap:Java内存映像工具

-dump:[live,]format=b,file=<filename> 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件. 

-finalizerinfo 打印正等候回收的对象的信息.

-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况.

-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量. 

-permstat 打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来. 

-F 强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效. 

-h | -help 打印辅助信息 

-J 传递参数给jmap启动的jvm. 

jmap -J-d64 -histo 22044 >/usr/local/22044_histo.log

jmap -dump:format=b,file=/usr/local/22044_dump.log 22044

jmap -J-d64 -heap 22044

jmap -J-d64 -permstat 22044

参考:http://blog.csdn.net/fenglibing/article/details/6411953

jhat:虚拟机堆转储快照分析工具

与jmap搭配使用,分析jmap生成的堆转储快照。

参考:http://blog.csdn.net/gtuu0123/article/details/6039474

jstack:Java堆栈跟踪工具

生成虚拟机当前时刻的线程快照,一般称为threaddump或javacore文件。

-F当’jstack [-l] pid’没有相应的时候强制打印栈信息

-l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.

-m打印java和native c/c++框架的所有栈信息.

-h | -help打印帮助信息

参考:

http://jameswxx.iteye.com/blog/1041173

http://jingyan.baidu.com/article/4f34706e3ec075e387b56df2.html

HSDIS:JIT代码反编译

参考:http://www.infoq.com/cn/articles/zzm-java-hsdis-jvm

JConsole:Java监视与管理控制台

参考:http://jiajun.iteye.com/blog/810150

Visual:多合一故障处理工具

不需要被监视的程序基于特殊的Agent运行,可直接应用在生产环境

远程监控tomcat

1、服务器没有安装screen,需要先安装screen

安装screen:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html

2、通过 hostname -i 检测服务器本机ip

3、在服务器启动jstatd 

http://ihuangweiwei.iteye.com/blog/1219302