JVM optimization:修订间差异

来自WHY42
(Riguz移动页面Java:内存占用分析JVM memory analysis,不留重定向)
无编辑摘要
第1行: 第1行:
这几天发现自己写的Web程序很占内存,512m的服务器部署两个tomcat,一个mysql :<。性能吃紧,学习下JVM的欸村分析方法。
=Linux system tool =
 
== View threads==
 


=查看Java进程=
=查看Java进程=
第44行: 第47行:


#参考文章 [[http://blog.csdn.net/blade2001/article/details/9066001]]
#参考文章 [[http://blog.csdn.net/blade2001/article/details/9066001]]
[[Category:Java]]
 
[[Category:JVM]]
[[Category:Linux/Unix]]

2024年4月15日 (一) 02:54的版本

Linux system tool

View threads

查看Java进程

jps
top #shift +m按内存排序


有介绍说可以通过PS命令查看进程的线程占用情况,但这里没能提供更多的信息

ps -mp 31560 -o THREAD,tid,time,rss,size,%mem

jmap命令

jmap [option] <pid>
    <none>               to print same info as Solaris pmap
    -heap                to print java heap summary
    -histo[:live]        to print histogram of java object heap; if the "live"
                         suboption is specified, only count live objects
    -permstat            to print permanent generation statistics
...

其中,jmap -histo:live [pid] 可以查看当前Java进程创建的活跃对象数目和占用内存大小。

jmap -dump:live,format=b,file=xxx.xxx [pid] 则可以将当前Java进程的内存占用情况导出来,方便用专门的内存分析工具(例如:MAT)来分析。

jmap -histo:live 31560 | head -n 10

其中:

  1. [C is a char[]
  2. [S is a short[]
  3. [I is a int[]
  4. [B is a byte[]
  5. [[I is a int[][]
  1. 参考文章 [[1]]