日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Hotspot JVM中跟踪过多的垃圾回收

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Hotspot JVM中跟踪过多的垃圾回收 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于內存泄漏或其他內存問題,經常導致應用程序凍結,僅使垃圾收集器(GC)進程運行失敗,試圖釋放一些空間。 直到看門狗(或沮喪的管理員)重新啟動應用程序并且問題從未解決之前,這種情況一直發生。 本文的目的是說明如何識別過多的GC,以及如何在發生堆垃圾時進行堆轉儲。 假定Hotspot JVM 1.6或更高版本。 相關的JVM標志 使用以下標志,我們可以指示Hotspot JVM在應用程序變為GC驅動時引發堆轉儲。 首先,應添加-XX:+ HeapDumpOnOutOfMemoryError標志。 我們的目標是在由于不停止GC而導致應用程序吞吐量下降時生成OutOfMemory錯誤。 有兩個JVM標志將有幫助:
  • -XX: GCTimeLimit = 98 –定義拋出OutOfMemory錯誤之前在GC中花費的時間比例的限制
  • -XX: GCHeapFreeLimit = 2 –定義完整GC之后拋出OutOfMemoryError之前的可用空間的最小百分比
默認情況下,兩個標志都是啟用的,但是內存不足錯誤不會經常觸發。 因此,需要更深入的了解才能確定每個標志何時有用以及默認值是什么。 Oracle文檔 ? 過多的GC時間和OutOfMemoryError。 如果在垃圾回收上花費了太多時間,則并發收集器將拋出OutOfMemoryError:如果在垃圾回收中花費了總時間的98%以上,而回收的堆少于2%,則將拋出OutOfMemoryError。 此功能旨在防止應用程序長時間運行,而由于堆太小而幾乎沒有進展,甚至沒有進展。 如有必要,可以通過在命令行中添加選項-XX:-UseGCOverheadLimit來禁用此功能。 該策略與并行收集器中的策略相同,除了執行并發收集所花費的時間不計入98%的時間限制。 換句話說,只有在應用程序停止時執行的收集才計入過多的GC時間。 此類收集通常是由于并發模式故障或顯式收集請求(例如,對System.gc()的調用)引起的。 如第二段所述, GCTimeLimit在并行收集器上不能很好地工作,因為在這種情況下花費在GC上的時間不太重要。 為GCHeapFreeLimit選擇默認值 ? 選擇默認值的方式應使當應用程序變得無響應(或由GC驅動)時,將導致內存不足。 無響應性是一個主觀定義,可能因應用程序而異,因此,對于不同的應用程序,其結果值可能會(略有不同)不同。 首先,應該創建一個簡單的測試。 在應用程序內部運行并分配大量對象的類。 可以快速收集部分對象,并可以長期保留部分對象。 在運行測試之前,應添加GC日志記錄標志。 對于我的應用程序,添加了以下標志: -Xmx960m-詳細:gc -XX:+ PrintGCDetails -XX:+ PrintGCDateStamps -XX:+ PrintTenuringDistribution -Xloggc:/root/gc.log -XX:+ HeapDumpOnOutOfMemoryError -XX:HeapDumpPath = / root / dumps GC日志的輸出如下所示。 第一個完整的GC周期–應用程序響應Swift: [完整GC [PSYoungGen:290112K-> 33213K(308672K)] [PSOldGen:655359K-> 655359K(655360K)] 945471K-> 688573K(964032K)] 幾分鐘后–應用程序無響應: [完整GC [PSYoungGen:290112K-> 213269K(308672K)] [PSOldGen:655359K-> 655359K(655360K)] 945471K-> 868629K(964032K)] 對于950 Mb堆,內存空間的分配為:老gen = 650Mb,年輕= 300Mb。 當應用程序響應時,老一代將充滿強大的參考數據,而大多數年輕一代則是垃圾。 因此,GCHeapFreeLimit的一個估計是(清除所有年輕人,不清除任何舊東西)300/950?32%。 但是,隨著時間的流逝,無法將年輕空間中的物體提升為舊空間,因為空間已滿。 就像在Oracle文檔中所說的那樣: 最年輕的集合并不需要保證完全升級所有活動對象。 (-XX:+ HandlePromotionFailure標志)。 由于促銷失敗,因此引用的對象比年輕一代期望的要多得多。 為了安全起見(減少誤報),我假設當年輕空間的1/3以上是垃圾空間而舊空間已滿時,系統由GC驅動。 因此,我建議類似我的應用的比率是200/950?20%。 -XX: GCHeapFreeLimit = 20 實驗表明,OOM在超出20%限制的1-2分鐘過量GC后發生,在此期間發生30-35個完整GC。 結論 在沒有靈丹妙藥的Java中,識別過多的垃圾回收是一項艱巨的任務。 熱點JVM開發人員提供了一些方法,這些方法將經常有助于識別根本原因。 如果正確使用GCHeapFreeLimit和GCTimeLimit標志,可以使用適當的值來闡明問題。 參考文獻 1. http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html 2. http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html 參考:來自The Art of Java博客的JCG合作伙伴 Art Gourevitch 在Hotspot JVM中跟蹤過多的垃圾收集 。

翻譯自: https://www.javacodegeeks.com/2012/06/tracking-excessive-garbage-collection.html

總結

以上是生活随笔為你收集整理的在Hotspot JVM中跟踪过多的垃圾回收的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色欧洲| 欧美久久精品一级黑人c片 1000部多毛熟女毛茸茸 | 国产精品成熟老女人 | 91美女免费看 | 久一视频在线观看 | 婷婷五月情 | 青青草成人免费 | 波多野结衣视频一区二区 | 91亚洲精品视频 | 成人看片泡妞 | 国产精品久久久久久福利 | 亚洲九九九 | 久久久久久影院 | 国产大尺度视频 | 在线观看亚洲精品视频 | 色xxxx| 日韩大片免费在线观看 | 色婷婷综合久久久久中文 | 好吊色视频988gao在线观看 | 国产三级麻豆 | 免费人妻精品一区二区三区 | 风流老熟女一区二区三区 | 午夜黄色一级片 | 欧美性猛交 xxxx | 在线成人av | 国产成人在线视频免费观看 | 欧美另类一区二区 | 欧美精品久久久久久久多人混战 | 欧美亚洲自拍偷拍 | 黄色免费看片 | 精品福利一区二区 | 熟妇人妻系列aⅴ无码专区友真希 | 99青草 | 福利在线一区二区三区 | 老司机深夜福利视频 | 欧美国产综合 | 久久午夜福利电影 | 久久久精品影院 | 蜜桃成人网 | 婷婷成人综合网 | 暖暖视频日本 | 欧美日韩精品一区二区三区四区 | 欧美日韩亚洲一区二区三区 | 亚洲无人区码一码二码三码 | 午夜视频精品 | 亚洲国产专区 | 黄色小网站在线观看 | 国产欧美一区二区精品性色超碰 | 国产天堂资源 | 久久久夜精品 | 亚洲视频h| 99ri在线观看 | 短视频在线观看 | www,五月天,com| 亚洲国产精品av | 97视频国产 | 亚洲综合在线中文字幕 | 九九热精品视频在线 | 91新网站| 温柔少妇的高潮呻吟 | 91夫妻视频 | 成人动漫一区 | 美女试爆场恐怖电影在线观看 | 朋友人妻少妇精品系列 | 都市激情中文字幕 | 叼嘿视频91 | 西西444www无码大胆 | 五月婷在线观看 | 人人狠狠综合久久亚洲 | 老汉av网站 | 韩国黄色片网站 | 黄色片在线观看免费 | 国产精品无码成人网站视频 | 欧美一级夜夜爽 | 亚洲成人不卡 | 啪免费视频 | 午夜淫片| 免费人成又黄又爽又色 | 欧美黄色性生活 | av在线三区 | 美国福利片| 欧美在线日韩 | 高清国产一区二区三区四区五区 | 久久国内精品视频 | 在线麻豆 | 91干视频| 日日摸夜夜添夜夜添高潮喷水 | 欧美三级手机在线观看 | 欧美成人另类 | 九色porny自拍视频 | 日美一级片 | 黄色一级片在线播放 | 精品乱子伦一区二区 | 日韩久久中文字幕 | 丰满人妻一区二区三区免费 | 欧美一区自拍 | 亚洲久爱| 天天干干干干干 | 欧美视频日韩 |