App下載

Java 垃圾收集日志添加的開銷

倚靠窗畔 2021-09-07 09:40:59 瀏覽數(shù) (2185)
反饋

在你的應用程序上啟用垃圾收集日志具有一定的優(yōu)勢。簡而言之,垃圾收集日志將幫助你優(yōu)化垃圾收集暫停時間,提高整體應用程序的響應時間,預測生產(chǎn)中斷,降低計算成本。盡管垃圾收集日志具有這些優(yōu)勢,但我們不確定垃圾收集日志會給應用程序增加什么開銷。因此,我們著手進行以下案例研究。

環(huán)境

對于我們的研究,我們選擇使用開源spring boot pet Clinic 應用程序。Pet Clinic 是一個典型的應用程序,旨在展示 spring boot 框架的功能。 

我們在 OpenJDK 11 中運行此應用程序。我們將此應用程序部署在 Amazon AWS t2.medium EC2 實例上,該實例具有 16GB RAM 和 2 個 CPU。測試是使用 Apache JMeter 壓力測試工具編排的。我們使用 AWS Cloudwatch 來衡量 CPU、內存利用率。簡而言之,這里是我們用來進行此案例研究的工具/技術:

  • OpenJDK 11
  • AWS EC2
  • AWS 云觀察
  • Apache JMeter

測試場景

在這個環(huán)境中,我們進行了2個測試:

  1. 基線測試——在這個場景中,我們使用 JMeter 工具運行寵物診所應用程序 20 分鐘,但沒有啟用垃圾收集 (GC) 日志,有 200 個并發(fā)用戶
  2. GC 日志啟用測試 –在此場景中,我們使用相同的 JMeter 腳本運行寵物診所應用程序并啟用垃圾收集 (GC) 日志 20 分鐘,同時有 200 個并發(fā)用戶。 

注意:如果您不知道如何啟用 GC 日志,請參閱這篇文章:'如何啟用 GC 日志?'

檢測結果

我們從 AWS Cloudwatch 獲取平均 CPU 和內存利用率,從 JMeter 工具獲取平均響應時間和吞吐量。從這兩種情況收集的數(shù)據(jù)總結在下表中。

收集的數(shù)據(jù)基線 測試啟用 GC 測試
平均 CPU 使用率8.35%10.10%
平均內存使用量20.80%20.50%
平均響應時間3901 毫秒3881 毫秒
平均吞吐量24.4/秒24.5/秒

如您所見,CPU 和內存消耗沒有明顯差異。同樣,平均響應和事務吞吐量也沒有明顯差異。 

結論

因此,根據(jù)我們的研究,我們可以得出結論,啟用垃圾收集日志文件沒有明顯的開銷。鑒于我們通過啟用垃圾收集日志獲得的好處,您可以考慮在所有生產(chǎn)實例上啟用 GC 日志記錄。


0 人點贊