欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

系統(tǒng)運維問題排查-java內存過高分析及說明

 更新時間:2025年07月21日 09:12:48   作者:運維Math  
本文總結了監(jiān)控Java進程內存與線程狀態(tài)的常用命令及參數(shù),包括top排序、jmap查看內存分布、jstat分析GC數(shù)據(jù)、jstack解析線程狀態(tài)等,強調需使用與進程一致的用戶執(zhí)行,并解析了線程狀態(tài)和內存區(qū)域的含義

1、查看內存使用情況

使用top查看進程使用內存情況,shift+m讓內存使用率按照降序排序,shift+p讓cpu使用率按照降序排序。

2、查看某個進程的線程情況

ps p $pid -L -o pcpu,pmem,pid,tid,time,tname,cmd

3、執(zhí)行 jmap $pid命令觀察內存使用情況

4、執(zhí)行 jstat -gcutil $pid 5s 命令查看內存使用情況

結果列含義:

  • S0 — Heap上的 Survivor space 0 區(qū)已使用空間的百分比
  • S1 — Heap上的 Survivor space 1 區(qū)已使用空間的百分比
  • E — Heap上的 Eden space 區(qū)已使用空間的百分比
  • O — Heap上的 Old space 區(qū)已使用空間的百分比
  • P — Perm space 區(qū)已使用空間的百分比
  • YGC — 從應用程序啟動到采樣時發(fā)生 Young GC 的次數(shù)
  • YGCT– 從應用程序啟動到采樣時 Young GC 所用的時間(單位秒)
  • FGC — 從應用程序啟動到采樣時發(fā)生 Full GC 的次數(shù)
  • FGCT– 從應用程序啟動到采樣時 Full GC 所用的時間(單位秒)
  • GCT — 從應用程序啟動到采樣時用于垃圾回收的總時間(單位秒)
  • GCT 是YGCT 和FGCT的時間總和。

5、執(zhí)行 jmap –heap $pid 命令

查看各內存區(qū)域的設置

6、執(zhí)行 jmap -histo:live $pid 命令

查看每個 class 的實例數(shù)目、內存使用率和類全名。每分鐘執(zhí)行一次,連續(xù)執(zhí)行 5 次

7、獲取dump文件

jmap -dump:live format=b,file=./dump.bin $pid

8、查看進程堆棧信息

jstack -l $pid> /usr/local/temp/jstack.log

JSTACK命令打印解析

日志格式

  • "Keep-Alive-Timer"代表線程的名稱。在實際開發(fā)中,要取一個和業(yè)務相關、見名知意的名字,便于排查問題。
  • “prio=8”表示線程的優(yōu)先級。
  • “os_prio=0”表示操作系統(tǒng)級別的優(yōu)先級。
  • “tid=0x000055868e1e9000”表示線程id。
  • “nid=0x394f”表示操作系統(tǒng)映射的線程id。
  • “0x00007fabd4f44000”表示線程棧的起始地址。

具體分析

waiting to lock <0x00000000d6349040>,即試圖在地址為0x00000000d6349040所在的對象獲取鎖;而該對象卻被線程加了鎖(locked <0x00000000d6349040>)。

  • waiting on condition [0x00007fabd5b4e000]:說明正在等待某個條件觸發(fā)。
  • waiting for monitor entry [0x000000001bbcf000]:說明該線程正在等待獲取鎖。

其中:java.lang.Thread.State: WAITING (parking):一直等那個條件發(fā)生;

java.lang.Thread.State: TIMED_WAITING (parking或sleeping):定時的,那個條件不到來,也將定時喚醒自己。MEM。

注意:jmap和jstack需要使用與進程一致的用戶才能執(zhí)行

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java 自旋鎖(spinlock)相關知識總結

    Java 自旋鎖(spinlock)相關知識總結

    這篇文章主要介紹了Java 自旋鎖(spinlock)相關知識總結,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-02-02
  • java二維數(shù)組基礎知識詳解

    java二維數(shù)組基礎知識詳解

    這篇文章主要介紹了java二維數(shù)組基礎知識詳解的相關資料,需要的朋友可以參考下
    2023-02-02
  • Java中如何保證緩存一致性問題

    Java中如何保證緩存一致性問題

    這篇文章主要介紹了Java中如何保證緩存一致性問題,文章將通過主題提出的問題展開一些解決方案分析,需要的小伙伴可以參考一下
    2022-04-04
  • Java?協(xié)程?Quasar詳解

    Java?協(xié)程?Quasar詳解

    這篇文章主要介紹了Java?協(xié)程?Quasar詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Java transient關鍵字使用小記

    Java transient關鍵字使用小記

    這篇文章主要為大家詳細介紹了Java transient關鍵字的使用方法,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java同時處理多個數(shù)據(jù)的常見方法

    Java同時處理多個數(shù)據(jù)的常見方法

    在Java中,同時處理多個數(shù)據(jù)通常涉及多線程、并發(fā)編程或異步編程,這里我將提供一個使用多線程的示例,因為多線程是處理多個數(shù)據(jù)并行的常見方式,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-11-11
  • JavaWeb 實現(xiàn)多個文件壓縮下載功能

    JavaWeb 實現(xiàn)多個文件壓縮下載功能

    文件下載時,我們可能需要一次下載多個文件,批量下載文件時,需要將多個文件打包為zip,然后再下載。本文給大家分享實現(xiàn)思路及具體實現(xiàn)代碼,對javaweb實現(xiàn)文件壓縮下載功能感興趣的朋友一起學習吧
    2017-07-07
  • SpringBoot Redisson 集成的實現(xiàn)示例

    SpringBoot Redisson 集成的實現(xiàn)示例

    本文主要介紹了SpringBoot Redisson 集成的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • spring-data-jpa使用自定義repository來實現(xiàn)原生sql

    spring-data-jpa使用自定義repository來實現(xiàn)原生sql

    這篇文章主要介紹了在spring-data-jpa中使用自定義repository來實現(xiàn)原生sql,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Android設備如何保證數(shù)據(jù)同步寫入磁盤的實現(xiàn)

    Android設備如何保證數(shù)據(jù)同步寫入磁盤的實現(xiàn)

    這篇文章主要介紹了Android設備如何保證數(shù)據(jù)同步寫入磁盤的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09

最新評論