1. 程式人生 > >JVM日誌分析及工具

JVM日誌分析及工具

JVM的GC日誌的主要引數包括如下幾個:

-XX:+PrintGC 輸出GC日誌

-XX:+PrintGCDetails 輸出GC的詳細日誌

-XX:+PrintGCTimeStamps 輸出GC的時間戳(以基準時間的形式)

-XX:+PrintGCDateStamps 輸出GC的時間戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)

-XX:+PrintHeapAtGC 在進行GC的前後打印出堆的資訊

-Xloggc:../logs/gc.log 日誌檔案的輸出路徑

在我做了如下的設定

Java程式碼  收藏程式碼
  1. -XX:+PrintGCDetails -Xloggc:../logs/gc.log -XX:+PrintGCTimeStamps  

以後打印出來的日誌為:

Java程式碼  收藏程式碼
  1. 0.756: [Full GC (System) 0.756: [CMS: 0K->1696K(204800K), 0.0347096 secs] 11488K->1696K(252608K), [CMS Perm : 10328K->10320K(131072K)], 0.0347949 secs] [Times: user=0.06 sys=0.00, real=0.05 secs]  
  2. 1.728: [GC 1.728: [ParNew: 38272K->2323K(47808K), 0.0092276 secs] 39968K->4019K(252608K), 0.0093169
     secs] [Times: user=0.01 sys=0.00, real=0.00 secs]  
  3. 2.642: [GC 2.643: [ParNew: 40595K->3685K(47808K), 0.0075343 secs] 42291K->5381K(252608K), 0.0075972 secs] [Times: user=0.03 sys=0.00, real=0.02 secs]  
  4. 4.349: [GC 4.349: [ParNew: 41957K->5024K(47808K), 0.0106558 secs] 43653K->6720K(252608K), 0.0107390 secs] [Times: user=0.03
     sys=0.00, real=0.02 secs]  
  5. 5.617: [GC 5.617: [ParNew: 43296K->7006K(47808K), 0.0136826 secs] 44992K->8702K(252608K), 0.0137904 secs] [Times: user=0.03 sys=0.00, real=0.02 secs]  
  6. 7.429: [GC 7.429: [ParNew: 45278K->6723K(47808K), 0.0251993 secs] 46974K->10551K(252608K), 0.0252421 secs]  

我們取倒數第二條記錄分析一下各個欄位都代表了什麼含義

Java程式碼  收藏程式碼
  1. 5.617(時間戳): [GC(Young GC) 5.617(時間戳): [ParNew(使用ParNew作為年輕代的垃圾回收期): 43296K(年輕代垃圾回收前的大小)->7006K(年輕代垃圾回收以後的大小)(47808K)(年輕代的總大小), 0.0136826 secs(回收時間)] 44992K(堆區垃圾回收前的大小)->8702K(堆區垃圾回收後的大小)(252608K)(堆區總大小), 0.0137904 secs(回收時間)] [Times: user=0.03(Young GC使用者耗時) sys=0.00(Young GC系統耗時), real=0.02 secs(Young GC實際耗時)]  

我們再對資料做一個簡單的分析

從最後一條GC記錄中我們可以看到 Young GC回收了 45278-6723=38555K的記憶體

Heap區通過這次回收總共減少了 46974-10551=36423K的記憶體。

38555-36423=2132K說明通過該次Young GC有2132K的記憶體被移動到了Old Gen,

我們來驗證一下

在最後一次Young GC的回收以前 Old Gen的大小為8702-7006=1696

回收以後Old Gen的記憶體使用為10551-6723=3828

Old Gen在該次Young GC以後記憶體增加了3828-1696=2132K 與預計的相符

============================

"Allocation Failure" is a cause of GC cycle to kick.

"Allocation Failure" means what no more space left in Eden to allocate object. So, it is normal cause of young GC.

意思是說沒法分配更多的空間給Eden區

  • "[GC (Allocation Failure) ...]" - Header of the GC (Garbage Collection) message with the reason code "Allocation Failure" for the GC. So you can read this example as "A GC is performed because of Allocation Failure."

Seeing GC Allocation Failure in GC logs is totally NORMAL and not a problem by itself.

When using the Parallel GC collector/compactor, the Heap is split in between Young and Old spaces. GC Allocation failure is your case simply indicates the JVM reaches its max capacity of the YG space and now has to cleanup the short-lived objects or "garbage" from your Java application.

This situation only becomes problematic is being executed too frequently and/or taking too much time to complete given it is a stop-the-world event.

從以上解釋來看Allocation Failure 只是代表年輕帶不足,不是說GC產生了問題

Gc日誌分析工具

(1)GCViewer

https://github.com/chewiebug/GCViewer

中文解釋:http://www.cnblogs.com/o-andy-o/p/4058271.html


其它監控方法

Jvisualvm動態分析jvm記憶體情況和gc情況,外掛:visualGC


 

相關推薦

JVM日誌分析工具

JVM的GC日誌的主要引數包括如下幾個: -XX:+PrintGC 輸出GC日誌 -XX:+PrintGCDetails 輸出GC的詳細日誌 -XX:+PrintGCTimeStamps 輸出GC的時間戳(以基準時間的形式) -XX:+PrintGCDateSta

Java效能分析問題解決(二)jvm致命錯誤導致程序直接掛掉,錯誤日誌分析解決

前言:   最近伺服器一臺機器,經常發現jvm錯誤日誌,因為程式有監控,所以程序能夠自動啟動,沒有產生什麼大的影響,利用空閒時間分析下這個問題以及給出最後的解決方案: jvm出現的致命錯誤,會在預設工

linux中日誌分析系統故障的修復

執行 term ima 查詢 mbr sys 是否 mark .com 步驟:1查看及分析/var/log/messsages日誌文件2查看及分析用戶登錄日誌Last:命令用於查詢成功登錄到系統的用戶記錄Lastb命令用於查詢登錄失敗的用戶記錄MBR扇區故障1.備份MBR扇

squid代理服務的ACL訪問控制、日誌分析反向代理(4.1版本)

運行 部署 安裝 logs com 日誌文件 gcc 客戶端請求 inter squid代理服務的ACL訪問控制、日誌分析及反向代理 squid的ACL訪問控制列表 squid提供了強大的代理控制機制,通過合理的設置ACL(Access Control List,訪問控制列

apache2.4編譯安裝,搭建虛擬主機日誌分析訪問控制

com one httpd-2.4 combine led 定義 開啟 認證用戶 創建 這幾天在看LAMP,都編譯好了,今天打算做幾個虛擬主機,順便記錄下問題,php7是以php-fpm的方式與apache 連接的,php7有好多新特性 這裏就不一一說了。。。 這裏只是簡單

大資料技術學習筆記之Hadoop框架基礎3-網站日誌分析MapReduce過程詳解

一、回顧     -》Hadoop啟動方式         -》單個程序             sbin/h

nginx 日誌分析效能排查

最近一直在做效能排查,思路就是根據分析nginx日誌,得到響應耗時的url、以及請求時間,再得到這段時間的請求量,併發量,分析是併發的原因,還是本身就比較慢,如果是應用本身的原因,只需要找到對應的程式碼,然後進行優化就好了 我找到的幾個原因,基本就是後端s

大資料視覺化之Nginx伺服器日誌分析視覺化展示(Nginx+flume+HDFS+Spark+Highcharts)

專案說明: 本專案為一個web程式,能夠利用大資料技術,對nginx伺服器的訪問日誌進行圖形化展示。當訪問此程式時,可以看到nginx日誌中統計出來的全天分時網站點選量等資訊的圖表展示。每條Nginx日誌的平均大小為250位元組左右,假設每天產生1億條訪問日誌

推薦一款關於MongoDB日誌分析工具--Mtools

分享 性能監控 rowspan tar.gz operation 生成 rss 有用 分析 一. 需求背景 MongoDB數據庫的強大的文檔模型使其成為處理數據的最佳方式。文檔適用於廣泛的流行數據模型,支持各種各樣的場景。文檔模型可以包含鍵值、關系數據集和圖形數據集,當然,

nginx伺服器access_log日誌分析配置詳解

nginx的log日誌分為access log 和 error log 其中access log 記錄了哪些使用者,哪些頁面以及使用者瀏覽器、ip和其他的訪問資訊 error log 則是記錄伺服器錯誤日誌 錯誤日誌的形式如下: 201.158.69.116 -

apache日誌分析系統cpu,記憶體,負載情況監控

1.根據Apache Log,獲取當天秒併發數最多的記錄 tail -10000 ./demo.fdipzone.com_access_log.2014-01-16_01 | cut -d"[" -

Tomcat啟動:A fatal error has been detected by the Java Runtime Environment(JVM Crash分析相關資料)

2013年1月10號注: 今天更新程式碼之後,突然出現一個問題:Tomcat啟動時,總是會出現jvm fatal error錯誤導致tomcat無法正常啟動,以下是錯誤資訊: # # A f

jvm】- jvm監控工具垃圾回收日誌分析工具

俗話說,工欲善其事必先利其器,對於jvm調優,如果沒有幾款強大的工具,無異於是盲人摸象了. 監控工具的話,Jdk本身其實自帶很多可以監控的工具,而且功能強大,用這些基本就夠了. 一款叫Jconsole,一款叫JVisualvm. 兩款均放在你jdk的安裝目錄下的bin資料

jvm參數分析工具

16px 標記清除 對象 標記 默認 ace 日誌 mil init -Xmx4G 設置堆的最大內存大小為4GB,也可通過-XX:MaxHeapSize=4GB進行設置 -Xms256m 設置堆的初始內存大小為256兆,如果未設置此選項,則初始大小將設置為新生代和

Logwatch日誌分析工具

logwatch日誌監控介紹:Logwatch是使用 Perl 開發的一個日誌分析工具。Logwatch能夠對Linux 的日誌文件進行分析,並自動發送mail給相關處理人員,可定制需求。Logwatch的mail功能是借助宿主系統自帶的mail server 發郵件的,所以系統需安裝mail server

pt-query-digest查詢日誌分析工具

tcp 技術 一段時間 ext 所在 mda pop json sdn 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 工具簡介 pt-query-digest是用於分析mysql慢查詢的一個工具,它可以分析binlog、General log、slo

Linux系統內對高CPU的監控日誌分析

文件 mos anti sage them 其中 generate ted cpu 使用linux系統時,占用cpu資源過高和,用腳本排查: 1,實時監控,一旦有cpu占用高的進程,程序啟動; 2,再對進程分析,得出對應線程; 3,對對應線程所在的程序日誌文檔進行分析,比如

通過 JVM 日誌來進行安全點分析

stopped 順序 ren val 詳細 nbsp 另一個 5.1 術語 百度搜索:小強測試品牌 轉發+點贊=支持 交流群:522720170 許多事件都可能會導致JVM暫停所有的應用線程。這類暫停又被稱為”stop-the-world”(STW)暫停。觸發STW暫停

慢查詢日誌分析工具之pt-query-digest

lan git bash pre 日誌分析 windows images git 所有 curl 簡介 pt-query-digest 是用於分析mysql慢查詢的一個工具,與mysqldumpshow工具相比,py-query_digest 工具的分析結果更

Apache日誌分析工具awstats配置

日誌分析工具awstats安裝 日誌分析工具awstats配置 Apache日誌分析工具awstats Apache編譯安裝步驟 Apache日誌分析工具awstats配置 awstats軟件下載地址:http://www.awstats.org/#DOWNLOADhttps://awstat