Java問題-java進程占用內存過高,排查原因


Java進程占用內存過高,排查原因

排查步驟

  1. top查看是否是java進程占用內存最高

    ]# top
    top - 18:26:43 up  5:23,  2 users,  load average: 0.00, 0.01, 0.04
    ...
       PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
       870 root      20   0  148504   2308   1448 R  0.3  0.2   0:00.04 java
    
  2. ps查看java線程

    ]# ps -p 2962 -L -o pcpu,pmem,pid,tid,tname,cmd
    %CPU %MEM    PID    TID TTY      CMD
     0.0  2.3    870    870 ?        ...
     0.0  2.3    870   1264 ?        ...
    
  3. jstack打印日志

    ]# jstack -l 870 > java_check.log
    
  4. 檢查日志,定位問題

    ]# printf "%x\n" 1264
    4f0
    ]# vim java_check.log
    #根據4f0定位線程
    
  5. 將日志交給開發,優化代碼

參考鏈接:

  1. Java進程占用內存過高
  2. 記錄一次jstack定位線上程序cpu占用過高的問題
  3. 記一次java程序CPU占用過高問題排查


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM