Jvm調(diào)優(yōu)和SpringBoot項(xiàng)目?jī)?yōu)化的詳細(xì)教程
一、Jvm調(diào)優(yōu)。
1、先看一下未設(shè)置JVM參數(shù)的情況,默認(rèn)情況下,沒(méi)有設(shè)置任何Jvm參數(shù)。
idea中安裝VisualVM監(jiān)控jvm的圖文教程
2、設(shè)置Jvm參數(shù)。
配置參數(shù):
關(guān)于這些設(shè)置的JVM參數(shù)是什么意思,參考Jvm調(diào)優(yōu)。
-XX:MetaspaceSize=128m (元空間默認(rèn)大?。? -XX:MaxMetaspaceSize=128m (元空間最大大小) -Xms1024m (堆最大大?。? -Xmx1024m (堆默認(rèn)大?。? -Xmn256m (新生代大?。? -Xss256k (棧最大深度大?。? -XX:SurvivorRatio=8 (新生代分區(qū)比例 8:2) -XX:+UseConcMarkSweepGC (指定使用的垃圾收集器,這里使用CMS收集器) -XX:+PrintGCDetails (打印詳細(xì)的GC日志)
復(fù)制參數(shù):
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails
進(jìn)行配置:
設(shè)置成功:
知識(shí)點(diǎn):
JDK8之后把-XX:PermSize 和 -XX:MaxPermGen移除了,取而代之的是
-XX:MetaspaceSize=128m (元空間默認(rèn)大?。?br /> -XX:MaxMetaspaceSize=128m (元空間最大大?。?br /> JDK 8開(kāi)始把類(lèi)的元數(shù)據(jù)放到本地化的堆內(nèi)存(native heap)中,這一塊區(qū)域就叫Metaspace,中文名叫元空間。
使用本地化的內(nèi)存有什么好處呢?最直接的表現(xiàn)就是java.lang.OutOfMemoryError: PermGen 空間問(wèn)題將不復(fù)存在,因?yàn)槟J(rèn)的類(lèi)的元數(shù)據(jù)分配只受本地內(nèi)存大小的限制,也就是說(shuō)本地內(nèi)存剩余多少,理論上Metaspace就可以有多大(貌似容量還與操作系統(tǒng)的虛擬內(nèi)存有關(guān)?這里不太清楚),這解決了空間不足的問(wèn)題。不過(guò),讓Metaspace變得無(wú)限大顯然是不現(xiàn)實(shí)的,因此我們也要限制Metaspace的大?。菏褂?XX:MaxMetaspaceSize參數(shù)來(lái)指定Metaspace區(qū)域的大小。JVM默認(rèn)在運(yùn)行時(shí)根據(jù)需要?jiǎng)討B(tài)地設(shè)置MaxMetaspaceSize的大小。
二、項(xiàng)目調(diào)優(yōu),修改配置文件。
其中比較重要的有:
參考文檔
server.tomcat.max-connections=0 # Maximum number of connections that the server accepts and processes at any given time. server.tomcat.max-http-header-size=0 # Maximum size, in bytes, of the HTTP message header. server.tomcat.max-http-post-size=0 # Maximum size, in bytes, of the HTTP post content. server.tomcat.max-threads=0 # Maximum number of worker threads. server.tomcat.min-spare-threads=0 # Minimum number of worker threads.
總結(jié)
到此這篇關(guān)于Jvm調(diào)優(yōu)和SpringBoot項(xiàng)目?jī)?yōu)化的文章就介紹到這了,更多相關(guān)Jvm調(diào)優(yōu)和SpringBoot項(xiàng)目?jī)?yōu)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Component和Configuration注解區(qū)別實(shí)例詳解
這篇文章主要為大家介紹了Component和Configuration注解區(qū)別實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11一文了解Java動(dòng)態(tài)代理的原理及實(shí)現(xiàn)
動(dòng)態(tài)代理指的是,代理類(lèi)和目標(biāo)類(lèi)的關(guān)系在程序運(yùn)行的時(shí)候確定的,客戶通過(guò)代理類(lèi)來(lái)調(diào)用目標(biāo)對(duì)象的方法,是在程序運(yùn)行時(shí)根據(jù)需要?jiǎng)討B(tài)的創(chuàng)建目標(biāo)類(lèi)的代理對(duì)象。本文將通過(guò)案例詳細(xì)講解一下Java動(dòng)態(tài)代理的原理及實(shí)現(xiàn),需要的可以參考一下2022-07-07Mybatis使用typeHandler加密的實(shí)現(xiàn)
本文詳細(xì)介紹了如何在Mybatis中使用typeHandler對(duì)特定字段進(jìn)行加密處理,涵蓋了從引入依賴、配置Mybatis,到實(shí)現(xiàn)typeHandler繼承類(lèi)和配置mapper層的詳細(xì)步驟,為需要在項(xiàng)目中實(shí)現(xiàn)字段加密的開(kāi)發(fā)者提供了參考和借鑒2024-09-09Java屬性文件操作之Properties與ResourceBundle詳解
這篇文章主要介紹了Java屬性文件操作之Properties與ResourceBundle詳解,兩個(gè)類(lèi)都可以讀取屬性文件中以key/value形式存儲(chǔ)的鍵值對(duì),ResourceBundle讀取屬性文件時(shí)操作相對(duì)簡(jiǎn)單,需要的朋友可以參考下2023-11-11[Java]詳解Socket和ServerSocket學(xué)習(xí)筆記
即時(shí)類(lèi)應(yīng)用或者即時(shí)類(lèi)的游戲,HTTP協(xié)議很多時(shí)候無(wú)法滿足于我們的需求,這會(huì),Socket對(duì)于我們來(lái)說(shuō)就非常實(shí)用了。本篇文章主要介紹了Socket和ServerSocket,有興趣的可以了解一下。2016-12-12Java過(guò)濾器filter_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java過(guò)濾器filter,通過(guò)過(guò)濾器,可以對(duì)來(lái)自客戶端的請(qǐng)求進(jìn)行攔截,進(jìn)行預(yù)處理或者對(duì)最終響應(yīng)給客戶端的數(shù)據(jù)進(jìn)行處理后再輸出2017-07-07