springcloud項(xiàng)目占用內(nèi)存好幾個G導(dǎo)致服務(wù)器崩潰的問題
問題描述
springcloud項(xiàng)目部署或調(diào)試時,占用的內(nèi)存特別多。當(dāng)部署到服務(wù)器上去后,有可能導(dǎo)致服務(wù)器內(nèi)存占用過多而崩潰。
解決方案
1.本地調(diào)試時,IDEA中添加參數(shù)以減少本地內(nèi)存使用
按照下圖點(diǎn)擊,添加參數(shù) -Xms64m -Xmx128m


2.遠(yuǎn)程上線時,命令行添加參數(shù) 2.1單個服務(wù)直接部署
例如使用nohup執(zhí)行時,在java與-jar之間添加參數(shù)-Xms64m -Xmx128m
nohup java -Xms64m -Xmx128m -jar x.xx-xx.jar &
2.2對每個服務(wù)使用dockerFile編排
FROM java:8 COPY *.jar /security.jar CMD ["--server.port=8080"] EXPOSE 8080 ENTRYPOINT ["java","-Xms64m","-Xmx256m","-jar","security.jar"]
這是一個完整的dockerfile文件,最后一行中添加的兩個參數(shù)用于控制內(nèi)存大小
參數(shù)詳解
設(shè)置JVM內(nèi)存的參數(shù)有四個:
-Xmx: Java Heap最大值,默認(rèn)值為物理內(nèi)存的1/4,最佳設(shè)值應(yīng)該視物理內(nèi)存大小及計算機(jī)內(nèi)其他內(nèi)存開銷而定;
-Xms: Java Heap初始值,Server端JVM最好將-Xms和-Xmx設(shè)為相同值,開發(fā)測試機(jī)JVM可以保留默認(rèn)值;
-Xmn: Java Heap Young區(qū)大小,不熟悉最好保留默認(rèn)值;
-Xss: 每個線程的Stack大小,不熟悉最好保留默認(rèn)值;
到此這篇關(guān)于springcloud項(xiàng)目占用內(nèi)存好幾個G導(dǎo)致服務(wù)器崩潰的問題的文章就介紹到這了,更多相關(guān)springcloud占用內(nèi)存過高內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Security OAuth2 授權(quán)碼模式的實(shí)現(xiàn)
這篇文章主要介紹了Spring Security OAuth2 授權(quán)碼模式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
idea使用war以及war exploded的區(qū)別說明
本文詳細(xì)解析了war與warexploded兩種部署方式的差異及步驟,war方式是先打包成war包,再部署到服務(wù)器上;warexploded方式是直接把文件夾、class文件等移到Tomcat上部署,支持熱部署,開發(fā)時常用,文章分別列出了warexploded模式和war包形式的具體操作步驟2024-10-10
Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn)
MyBatis提供了一個用于操作數(shù)據(jù)庫的SqlRunner工具類,對JDBC做了很好的封裝,本文主要介紹了Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-10-10
Idea跑的項(xiàng)目沒問題將程序install成jar包運(yùn)行報錯空指針的問題
這篇文章主要介紹了Idea跑的項(xiàng)目沒問題,將程序install成jar包運(yùn)行報錯空指針的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06

