1. 程式人生 > >一個簡單但實用的檢視JVM記憶體是否存在記憶體溢位以及檢視GC情況的命令

一個簡單但實用的檢視JVM記憶體是否存在記憶體溢位以及檢視GC情況的命令

jstat -gcutil pid 2000:2秒鐘列印一次記憶體佔用和GC情況

可以檢視記憶體佔用情況,GC次數及耗時,以及每次GC成果

S0:倖存區1佔用率

S1:倖存區2佔用率

E:Eden區佔用率

O:老年區佔用率

M:元資料區(java8,相當於java7及之前的永久代的概念)使用大小

ccs:壓縮後使用率

YGC:young gc 次數,

YGCT:young gc耗時

FGC:full gc次數

FGCT:full gc耗時

GCt:GC共耗時

可以通過每次GC後 各區的佔用率發生的變化來判斷GC成果,

如果FULL GC頻繁說明記憶體已經存在溢位可能或已經溢位,應用處理能力將會下降甚至停擺,因為大量時間在GC上面

如果YGC頻繁,s0,s1,eden區使用率又沒有明顯下降,也需要注意,他們中的資料在增長到一定程度時,可能會進入old區,需要觀察full gc情況

如果每次YGC後,但是s0,s1,eden區記憶體使用下降明顯,一般不會有問題,說明jvm中存在了佔比較重的短生命週期物件,能及時回收掉釋放給其它請求或任務使用,只要保持獲取與釋放平衡就不會有太大問題

ps:當建立物件時前區剩餘空間不夠的時候就會觸發YGC,如果回收後還不夠則會轉移到後一區

相關推薦

一個簡單實用檢視JVM記憶體是否存在記憶體溢位以及檢視GC情況命令

jstat -gcutil pid 2000:2秒鐘列印一次記憶體佔用和GC情況 可以檢視記憶體佔用情況,GC次數及耗時,以及每次GC成果 S0:倖存區1佔用率 S1:倖存區2佔用率 E:Eden區佔用率 O:老年區佔用率 M:元資料區(java8,相當於ja

Node做後臺開發的一個簡單實用的應用(程式碼加部署)

下面通過一個微信小程式後端的程式碼,來介紹一下Node做後臺開發的一些思路。 這段程式碼的功能是:       建立一個Http埠服務,監聽來自9000埠的訊息,微信小程式是通過9000埠給該node後臺程式傳送post請求,node後臺程式接受完資料後,然後請求圖靈機器

UNE BASE SIMPLE MAIS PARFAITE POUR SENTENCE EMBEDDINGS(一個簡單很難超越的Sentence Embedding基線方法)

法語簡介: ABSTRAIT Le succès des méthodes de réseau de neurones pour le calcul des intégrations de mots a conduit à des méthodes acti

【Android】一個簡單實用的toolbar

在很多軟體中都可以看到風格統一的標題欄,上面包括返回鍵,當前頁的名稱等,下面詳細分析       這裡我們在佈局檔案中引用了一個toolbar,下面是toolbar的佈局檔案: <RelativeLayout xmlns:android="http://sche

檢視JVM各個代的記憶體狀態

//在Linux執行 jmap -heap [pid] //可以看到如下資訊Attaching to process ID 23990, please wait...Warning: the type "const char*" (declared in the remot

ASP.NET Core 打造一個簡單的圖書館管理系統(一) 基本模型以及數據庫的建立

allow shel 系列 sqlserver rar 刪除數據庫 mvc 5 字段 約定 前言: 本系列文章主要為我之前所學知識的一次微小的實踐,以我學校圖書館管理系統為雛形所作。 本系列文章主要參考資料: 微軟文檔:https://docs.microsoft.c

ASP.NET Core 打造一個簡單的圖書館管理系統(一) 基本模型以及資料庫的建立

前言: 本系列文章主要為我之前所學知識的一次微小的實踐,以我學校圖書館管理系統為雛形所作。 本系列文章主要參考資料: 微軟文件:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcore-2.1&ta

ASP.NET Core 打造一個簡單的圖書館管理系統(四)密碼修改以及密碼重置

 前言:   本系列文章主要為我之前所學知識的一次微小的實踐,以我學校圖書館管理系統為雛形所作。   本系列文章主要參考資料:   微軟文件:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcor

簡述Java記憶體分配和回收策略以及Minor GC 和 Major GC(Full GC)

記憶體分配: 1. 棧區:棧可分為Java虛擬機器和本地方法棧 2. 堆區:堆被所有執行緒共享,在虛擬機器啟動時建立,是唯一的

一個簡單實用的C++記憶體

1 自定義記憶體池效能優化的原理 如前所述,讀者已經瞭解到"堆"和"棧"的區別。而在程式設計實踐中,不可避免地要大量用到堆上的記憶體。例如在程式中維護一個連結串列的資料結構時,每次新增或者刪除一個連結串列的節點,都需要從記憶體堆上分配或者釋放一定的記憶體;在維護一個動態陣列

linux檢視jvm實際堆記憶體情況

linux如何檢視jvm實際記憶體情況   解決方法: 1.檢視jvm的pid(下面的8499),執行:jps [[email protected] ~]# jps 8499 Bootstrap 11284 Jps

《Java》Java實現一個簡單的“檢視檔案的二進位制碼瀏覽器”

一、檢視檔案的二進位制碼     想檢視一個檔案的二進位制碼有很多工具可以用HEX的方式讀檔案,例如:Notepad++、UltraEdit、HexViewer等等。 Notepad++的HEX-Editor:   二、DIY瀏覽器 1.初步實現的瀏覽功能: 軟體採用命

你真的懂隨機嗎——shuffle一個簡單實用的隨機演算法

正經學徒,佛系記錄,不搞事情 隨機數的定義: 其實隨機數是分為真隨機數和偽隨機數的 所謂真隨機數,根據百科的解釋,真隨機數必須依賴於物理現象,例如大樂透,拋硬幣,公路上第五輛過來的車是單號還是雙號 而偽隨機數又區分為強偽隨機和弱偽隨機 弱隨機數:首先要滿足是隨機的,但容易找出

一個簡單實用的Android除錯應用技巧

在應用開發中,我們常常會進行日誌列印或者debug除錯,以此來分析執行時的一些資訊,便於發現bug和問題。Android Studio的Debug功能很好用,但是有時候有些情況下,就顯得不是那麼快捷和便利。 比如 我們除錯的點在應用一開啟的時候,很靠前,例如Appli

動態檢視JVM記憶體的工具

JAVA JPS 命令詳解 JPS 名稱: jps - Java Virtual Machine Process Status Tool 命令用法: jps [options] [hostid]               options:命令選項,用來對輸出格式進行控

一個簡單記憶體倒排索引

有任務需要對使用者的詞,檢索到相應的廣告詞。(個性化的廣告詞),概括為:通過簡短(a,b,c,d)  檢索出 廣告詞(A, B ,C, D) 1、如果記憶體一個比較簡單的是在記憶體中做索引。       記憶體建索引的節省記憶體的方法:       1)廣告詞索引:id1-

強烈推薦一個線上學習C++的網站,非常贊!簡單+高效+實用

網址:http://en.cppreference.com/w/cpp/language/reference 為什麼點贊: 1、在Search欄裡輸入你需要參考的內容,如lvalue 很快就能得到參考內容: 2、同時還能看到例子程式碼: 如果只能是看就用不著點讚了,

通過記憶體模擬硬碟實現一個簡單的塊裝置驅動

本文的主要工作是通過硬碟來模擬記憶體,按照塊裝置驅動程式設計的框架實現一個簡單的塊裝置驅動程式。 一、前期的準備工作 1、基本開發環境 Linux核心版本:Linux-3.4.10 開發板 : JZ2440(ARM9) 2、塊裝置驅動的一般開發步驟 a、分配一個gendi

記憶體池——實現一個簡單的固定大小的記憶體

最近在STL當中看到了第二級記憶體分配器,這裡有個記憶體池的內容,在這在知乎上看到了記憶體池的相關內容,所以萌生了一個想自己寫一個簡單的記憶體池的想法。 這種簡單的記憶體池,援引自知乎的: 實現固定記憶體分配器: 即實現一個 FreeList,每

JVM配置優化和記憶體分配情況檢視

JVM引數配置和記憶體檢視 一、引數配置的方式 示例tomcat版本為:apache-tomcat-7.0.69 1.     catalina.bat 更改%CATALINA_HOME%/bin下的catalina.bat(catalina.sh)檔案,在開頭加入一行: