SpringBoot項(xiàng)目啟動(dòng)內(nèi)存占用過(guò)高問(wèn)題及解決
一、問(wèn)題描述
在使用SpringBoot 開發(fā)過(guò)程中
發(fā)現(xiàn)不管是本地還是測(cè)試環(huán)境只要一啟動(dòng),動(dòng)不動(dòng)就占用1G內(nèi)存
然而本地和測(cè)試環(huán)境的訪問(wèn)量卻并沒有多少,導(dǎo)致資源浪費(fèi)
二、解決方案(親測(cè)可用)
2.1、啟動(dòng)命令示例(具體配置可根實(shí)際情況調(diào)整)
nohup java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Xms128m -Xmx128m -Xmn32m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC ****.jar >/dev/null 2>&1&
2.2、命令參數(shù)詳解
- -XX:MetaspaceSize=128m:元空間默認(rèn)大小
- -XX:MaxMetaspaceSize=256m:元空間最大大小
- -Xms128m:堆最大大小
- -Xmx128m:堆默認(rèn)大小
- -Xmn32m:新生代大小
- -Xss256k:棧最大深度大小
- -XX:SurvivorRatio=8:新生代分區(qū)比例 8:2
- -XX:+UseConcMarkSweepGC:指定使用的垃圾收集器,這里使用CMS收集器
- -XX:+PrintGCDetails:打印詳細(xì)的GC日志
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot中排查內(nèi)存泄漏的方法小結(jié)
- SpringBoot+Spring Security基于內(nèi)存用戶認(rèn)證的實(shí)現(xiàn)
- SpringBoot項(xiàng)目啟動(dòng)數(shù)據(jù)加載內(nèi)存的三種方法
- SpringBoot使用Caffeine實(shí)現(xiàn)內(nèi)存緩存示例詳解
- SpringBoot?SpringSecurity?詳細(xì)介紹(基于內(nèi)存的驗(yàn)證)
- SpringBoot基于過(guò)濾器和內(nèi)存實(shí)現(xiàn)重復(fù)請(qǐng)求攔截功能
- Springboot 如何設(shè)置啟動(dòng)內(nèi)存
相關(guān)文章
SpringBoot接口冪等性4種解決方案+避坑實(shí)戰(zhàn)指南
接口冪等性,看似簡(jiǎn)單,實(shí)則關(guān)乎資金安全、用戶體驗(yàn)和系統(tǒng)穩(wěn)定性,今天,咱們就來(lái)聊聊在SpringBoot項(xiàng)目中,如何真正落地接口冪等性,避免成為“背鍋俠”,感興趣的朋友跟隨小編一起看看吧2025-09-09
SpringBoot +Vue開發(fā)考試系統(tǒng)的教程
這篇文章主要介紹了SpringBoot +Vue開發(fā)考試系統(tǒng),支持多種題型:選擇題、多選題、判斷題、填空題、綜合題以及數(shù)學(xué)公式。支持在線考試,教師在線批改試卷。本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-05-05
Springboot中使用Filter實(shí)現(xiàn)Header認(rèn)證詳解
這篇文章主要介紹了Springboot中使用Filter實(shí)現(xiàn)Header認(rèn)證詳解,當(dāng)在?web.xml?注冊(cè)了一個(gè)?Filter?來(lái)對(duì)某個(gè)?Servlet?程序進(jìn)行攔截處理時(shí),它可以決定是否將請(qǐng)求繼續(xù)傳遞給?Servlet?程序,以及對(duì)請(qǐng)求和響應(yīng)消息是否進(jìn)行修改,需要的朋友可以參考下2023-08-08
mybatis實(shí)現(xiàn)批量更新全過(guò)程
Mybatis實(shí)現(xiàn)批量更新的三種方式:foreach標(biāo)簽、casewhen語(yǔ)句和choose語(yǔ)句,foreach標(biāo)簽適用于大量數(shù)據(jù)更新,casewhen語(yǔ)句適用于一次性批量更新較少記錄,BatchExecutor批處理器適用于需要在一次數(shù)據(jù)庫(kù)會(huì)話中批量執(zhí)行多個(gè)SQL語(yǔ)句,但可能不支持所有數(shù)據(jù)庫(kù)2025-11-11
簡(jiǎn)單學(xué)習(xí)Java API 設(shè)計(jì)實(shí)踐
API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件的以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。需要的可以了解一下2019-06-06
SpringBoot項(xiàng)目中多數(shù)據(jù)源配置方法與使用場(chǎng)景
在 Spring Boot 中配置多數(shù)據(jù)源是一個(gè)非常常見的需求,本文將為大家詳細(xì)介紹兩種主流的實(shí)現(xiàn)方式與使用場(chǎng)景,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-07-07
詳解如何在Java中重寫equals()和hashCode()方法
在 Java 中,equals() 和 hashCode() 方法是 Object 類中定義的重要方法,它們用于比較對(duì)象的相等性以及計(jì)算對(duì)象的哈希值,本文將詳細(xì)介紹如何在 Java 中重寫 equals() 和 hashCode() 方法,并討論其最佳實(shí)踐,需要的朋友可以參考下2024-08-08

