第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java堆內存保存大字節(jié)數組

Java堆內存保存大字節(jié)數組

qq_笑_17 2023-11-01 20:55:33
我們的微服務應用程序使用 Java 8 Spring Boot 2。在本地運行負載測試注意到堆消耗內存但從未釋放回來。我正在使用 G1 垃圾收集器運行應用程序,并且還從 JVisualVM 執(zhí)行了手動 GC,但分配的內存仍然永遠不會被釋放。我獲取了堆轉儲并對其進行了分析,我可以清楚地看到系統(tǒng)類加載器創(chuàng)建的大字節(jié)數組被列為泄漏嫌疑對象。我看到字節(jié)數組實例保存了對端點“/test”的 HTTP 請求。但負載測試已經完成,線程回到運行負載測試之前的位置。不知道為什么系統(tǒng)類加載器加載的字節(jié)數組包含所有這些元素并無緣無故地占用所有這些堆。JVisualVM泄密嫌疑人字節(jié)數組具有傳出引用的對象/test 端點是 @RestController 類中的唯一方法@RequestMapping(value = "/test", method = RequestMethod.GET)@CrossOrigin(origins = "*")public void test() {    logger.info("Testing1...");}以下是與服務器相關的Spring Boot application.properties:server.port=8090server.tomcat.max-threads=200server.tomcat.accept-count=100server.tomcat.min-spare-threads=20server.error.whitelabel.enabled=falseserver.max-http-header-size=2097152
查看完整描述

2 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

Tomcat 緩存了許多對象以使其運行速度更快。通過設置,server.max-http-header-size=2097152您使這些緩存對象之一聲明 2 MB 內存并保留它。

該文檔有以下內容processorCache

協議處理程序緩存處理器對象以提高性能。此設置指示緩存這些對象的數量。-1表示無限制,默認為200。如果不使用Servlet 3.0異步處理,一個好的默認值是使用與maxThreads設置相同的值。如果使用 Servlet 3.0 異步處理,一個好的默認值是使用 maxThreads 和最大預期并發(fā)請求數(同步和異步)中的較大者。

所以我的建議是將設置server.max-http-header-size為更合理的值,例如8KB(默認值),并在測試表明您確實需要它時慢慢加倍(相關:當總標頭大小大于時,Tomcat 拋出“400 Bad request”?server.max-http-header-size)。


查看完整回答
反對 回復 2023-11-01
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

在運行壓力測試之前獲取轉儲,并在運行壓力測試之后獲取轉儲。Eclipse MAT 允許您比較兩個轉儲之間的直方圖,以便您知道發(fā)生了內存泄漏。

我建議使用 Java Mission Control (JMC) 來監(jiān)視 JVM,您可以在其中仔細查看內存消耗(堆和非堆)。請注意正在使用的內存和已提交的內存之間的區(qū)別。

較新版本的 Java 具有更復雜的算法,其中 JVM 將內存返回給操作系統(tǒng)。對于 Java 8,一種選擇是使用 Eclipse Open J9 JVM。

查看完整回答
反對 回復 2023-11-01
  • 2 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號