java虚拟机基础学习以及有用的tips

看了一个ppt,感觉不错.linux部分已经总结在了<Linux的一些有用命令>这篇博文里了.这篇主要tips下jvm的一些基础知识点和实际设置点.

java虚拟机基础学习以及有用的tips_第1张图片


java虚拟机基础学习以及有用的tips_第2张图片

java虚拟机基础学习以及有用的tips_第3张图片

Java内存问题的两个主要发生区段:
1.Java内存--包括heap堆内存和permanent区
2.本地内存--包括JVM进程内存和java使用的第三方本地代码
Java内存不足:
1.Java堆内存heap不足,无法再分配新对象或内存块
2.permanent区内存不足,无法再加载类到内存中
本地内存不足:
1.物理内存不够,无法再得到内存
2.第三方本地代码有内存泄漏的Bug,例如oracle oci driver本地代码
  JVM的JIT或者JVM本身的Bug


Web应用服务器,主要是load变高。
Load高主要是资源不够导致,比如数据库连接池不够。
1 可以通过 top 和 vmstat 查看load状况
2 通过ps -eLf | grep java | wc –l 统计java线程
  通过ps -eLf | grep httpd | wc –l 统计 apache线程
  这样可以判断是否是机器在超负荷运转。  也可通过日志大小判断。
3 通过filter日志判断系统慢在什么地方。
4 通过debug日志判断cache ,数据库或者依赖的其他系统是否正常。
5 通过dump 线程查看线程都在干什么。
6 通过jstat 查看java gc状况。
7 通过 dump内存 查看java 内存是否存在泄漏。
8 通过sar 看看机器历史记录有助问题排查。



你可能感兴趣的:(JAVA虚拟机)