zoukankan      html  css  js  c++  java
  • 查看 java 进程占用内存[转]

    使用ps查看JAVA进程使用的内存和虚拟内存( Linux内存管理 ):

    $ ps -p ${pid} -o rss,vsz  
    RSS     VSZ
    7152568 17485844

    VSZ是虚拟内存,RSS是实际使用的内存,单位KB。你会发现,RSS会远远超过了-Xmx的设定。

      为什么呢?首先要搞清楚JVM的内存机制: JVM内存区域总体分两类,heap区 和 非heap 区(本地内存) 。

    heap区: 堆区分为Young Gen,Old Gen。
    非heap区: Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
      这样,大概懂了吧。-Xmx设定的仅仅只是heap区。
      
      
      JDK1.8有Native Memory Tracker也可以帮助定位内存。NMT必须先通过VM启动参数中打开,不过要注意的是,打开NMT会带来5%-10%的性能损耗。
    -XX:NativeMemoryTracking=[off | summary | detail]

    off: 默认关闭
    summary: 只统计各个分类的内存使用情况.
    detail: Collect memory usage by individual call sites.

    一般在启动参数上加入-XX:NativeMemoryTracking=detail,然后通过jcmd查看NMT报告以及查看对比情况。
    jcmd <pid> VM.native_memory [summary | detail | baseline | summary.diff | detail.diff | shutdown] [scale= KB | MB | GB]

    summary: 分类内存使用情况.
    detail: 详细内存使用情况,除了summary信息之外还包含了虚拟内存使用情况。
    baseline: 创建内存使用快照,方便和后面做对比
    summary.diff: 和上一次baseline的summary对比
    detail.diff: 和上一次baseline的detail对比
    shutdown: 关闭NMT

    其中scale参数可以指定展示的单位,可以为KB或者MB或者GB

    $ jcmd ${pid} VM.native_memory summary

    $ jcmd ${pid} VM.native_memory summary
    
    Total: reserved=8491110KB, committed=7220750KB
    -                 Java Heap (reserved=6293504KB, committed=6291456KB) 
                                (mmap: reserved=6293504KB, committed=6291456KB) 
     
    -                     Class (reserved=1107429KB, committed=66189KB) 
                                (classes #11979)
                                (malloc=1509KB #18708) 
                                (mmap: reserved=1105920KB, committed=64680KB) 
     
    -                    Thread (reserved=159383KB, committed=159383KB) 
                                (thread #156)
                                (stack: reserved=158720KB, committed=158720KB)
                                (malloc=482KB #788) 
                                (arena=182KB #310)
     
    -                      Code (reserved=255862KB, committed=41078KB) 
                                (malloc=6262KB #9319) 
                                (mmap: reserved=249600KB, committed=34816KB) 
     
    -                        GC (reserved=449225KB, committed=449225KB) 
                                (malloc=166601KB #1714646) 
                                (mmap: reserved=282624KB, committed=282624KB) 
     
    -                  Compiler (reserved=395KB, committed=395KB) 
                                (malloc=265KB #856) 
                                (arena=131KB #3)
     
    -                  Internal (reserved=146041KB, committed=146041KB) 
                                (malloc=132185KB #276370) 
                                (mmap: reserved=13856KB, committed=13856KB) 
     
    -                    Symbol (reserved=31487KB, committed=31487KB) 
                                (malloc=29209KB #91080) 
                                (arena=2278KB #1)
     
    -    Native Memory Tracking (reserved=33212KB, committed=33212KB) 
                                (malloc=168KB #2575) 
                                (tracking overhead=33044KB)
     
    -               Arena Chunk (reserved=2284KB, committed=2284KB)
                                (malloc=2284KB) 
     
    -                   Unknown (reserved=12288KB, committed=0KB)
                                (mmap: reserved=12288KB, committed=0KB) 
    
    COLLECTOR_PID=`ps -ef|grep "ProcessName" | grep -v grep | awk '{print $2}'`
    OUTDIR=/opt/chkmem
    HOSTNAME=`hostname`
    
    prstat -s rss 1 1 > ${OUTDIR}/${HOSTNAME}_coll_${COLLECTOR_PID}_prstat_`date '+%Y%m%d_%H%M%S'`.txt
    
    /opt/jdk1.8.0_40/bin/jcmd ${COLLECTOR_PID} VM.native_memory detail > ${OUTDIR}/${HOSTNAME}_coll_${COLLECTOR_PID}_nmd_`date '+%Y%m%d_%H%M%S'`.txt
    
    pmap -x ${COLLECTOR_PID} > ${OUTDIR}/${HOSTNAME}_coll_${COLLECTOR_PID}_pmap_`date '+%Y%m%d_%H%M%S'`.txt
    

     .

    感觉空虚寂寞,只是因为你无所关注,无处付出。
  • 相关阅读:
    电脑hosts文件、hosts文件说明、hosts文件域名和ip
    java复制对象属性值、复制值
    查找替换、idea全局搜索、全局替换、全局搜索替换
    谷歌浏览器问题、
    http请求类、RestTemplate、请求工具类
    easypoi导入
    vue下载本地文件、vue下载本地文件报错、vue下载本地文件找不到
    arm汇编指令的条件码
    GNU内嵌汇编
    shell脚本错误:syntax error near unexpected token '$' ''
  • 原文地址:https://www.cnblogs.com/whatlonelytear/p/15655847.html
Copyright © 2011-2022 走看看