簡體   English   中英

選擇optthruput或gencon的哪個GC政策? IBM Websphere 7

[英]which GC Policy to choose optthruput or gencon ? IBM websphere 7

我有4 GB的堆大小分配給JVM。

為什么我應該為短期對象選擇genconn GC策略。 據我所知,genconn會將Heap分為兩部分(護理和使用權),這將增加應用程序的響應時間,但不會增加吞吐量,因為我有足夠的堆大小適合我的應用程序。 但是,如果我僅關注吞吐量,則不應該使用optthruput策略,這樣可以減少GC調用次數。

我只能想到genconn的一個優點是避免磁盤碎片。 對於上述情況,genconn還有其他優點嗎?

我不確定是否要在您的問題中添加一些評論,但我還是會這樣做。 您已經知道optthruput和gencon之間的區別,我將介紹這些GC策略的以下方面:

堆內存使用情況

如果您的應用程序流量很大,則在使用optthruput GC策略時您可能會消耗大量內存,因為JVM會一直分配內存,直到超過閾值為止,從而導致垃圾回收周期運行。

相反,使用gencon GC策略,JVM會首先在苗圃堆空間中分配內存,並且還會執行較小的GC周期以從內存中刪除未使用的對象。

根據我的經驗,gencon的總體堆使用量可以減少20-30%。

暫停時間

optthruput GC策略執行“停止世界垃圾收集”,這可能確實很昂貴,並且可能導致更長的暫停時間,從而導致會話或請求超時。 使用gencon GC策略,您不可能獲得很高的暫停時間,因為大多數垃圾回收是在運行完整的GC之前執行的。 gencon的唯一缺點是它可能會遇到碎片問題,但是如果您的應用程序分配了大量的短期對象,則比使用gencon更好。

如果您決定使用gencon,請先考慮使用optthruput策略獲取詳細的GC。 您可以輕松地設置Web Sphere,以在native_stderr.log文件中吐出GC日志。 您可以使用GCMV eclipse插件將GC日志提取到漂亮的圖表和統計信息中。

並假設即使在上述說明之后,如果您不喜歡gencon,那么至少也要考慮使用optavgpause GC策略。 它確實可以幫助您避免大的停頓時間。

希望這可以幫助!

最好的辦法是實際啟用verbosegc並測試您的應用程序。 沒有通用規則,沒有一種策略適合所有應用程序。 根據我的經驗,如果正確調整gencon,通常表現會更好。 使用optthruput,尤其是在使用較大的堆大小時,GC啟動時可能會有相當長的停頓。這些長停頓可能導致線程池使用率激增(由於應用程序線程被凍結),在極端情況下,這可能導致服務器崩潰。

使用調整后的gencon,大多數集合只能出現在苗圃中,這非常快。 您應該很少或沒有gc任期。 通常,與optthruput相比,同一應用程序通過gencon可以使用更小的堆。

正如我所說,最好的方法是進行壓力測試和比較。 您有一個非常漂亮的免費工具Garbage Collection和Memory Visualizer ,它是對任何使用WebSphere- IBM Support Assistant的人來說非常有用的工具的插件。

它將允許您導入verboseGC日志,顯示不同的圖表(如暫停時間,gc循環等)。 它可以讓您比較您的gc行為,並提供一些如何調整它的一般建議。

我在IBM Labs擔任Java Service Engg。 兩種政策都有其自身的取舍。 根據應用需求選擇策略。

optthruput可以:

需要吞吐量時可以考慮使用此策略。

Optthruput如何工作?

JVM允許連續分配對象,直到達到閾值,即(<4%可用的Java堆可用)。 一旦達到閾值,GC便會啟動以清除死物。 如果Xmx很大,則可能會有更多的暫停時間,但是直到達到閾值,應用程序才能正常工作。 例如:使用此策略可以有效地完成批處理。

Gencon:此政策旨在減少暫停時間。

Gencon政策如何運作?

Java堆分為Nursery和Tenture。 初始分配在托兒所區域完成。 一旦填充到苗圃區域,就會發生Scavenge GC(苗圃區域的部分GC)。 這樣可以將壽命長的物體移到保育區,並保持壽命短的苗圃。 一旦苗圃和保有權空間已滿,系統就會啟動GC清除死物。

如果保育空間設置不正確,則會經常發生清除gc的情況,這會中斷系統的性能。 過多的GC總是會影響系統的性能。

希望這些信息可以幫助您選擇策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM