2 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
Tomcat 緩存了許多對象以使其運(yùn)行速度更快。通過設(shè)置,server.max-http-header-size=2097152
您使這些緩存對象之一聲明 2 MB 內(nèi)存并保留它。
該文檔有以下內(nèi)容processorCache
:
協(xié)議處理程序緩存處理器對象以提高性能。此設(shè)置指示緩存這些對象的數(shù)量。-1表示無限制,默認(rèn)為200。如果不使用Servlet 3.0異步處理,一個(gè)好的默認(rèn)值是使用與maxThreads設(shè)置相同的值。如果使用 Servlet 3.0 異步處理,一個(gè)好的默認(rèn)值是使用 maxThreads 和最大預(yù)期并發(fā)請求數(shù)(同步和異步)中的較大者。
所以我的建議是將設(shè)置server.max-http-header-size
為更合理的值,例如8KB(默認(rèn)值),并在測試表明您確實(shí)需要它時(shí)慢慢加倍(相關(guān):當(dāng)總標(biāo)頭大小大于時(shí),Tomcat 拋出“400 Bad request”?server.max-http-header-size
)。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
在運(yùn)行壓力測試之前獲取轉(zhuǎn)儲,并在運(yùn)行壓力測試之后獲取轉(zhuǎn)儲。Eclipse MAT 允許您比較兩個(gè)轉(zhuǎn)儲之間的直方圖,以便您知道發(fā)生了內(nèi)存泄漏。
我建議使用 Java Mission Control (JMC) 來監(jiān)視 JVM,您可以在其中仔細(xì)查看內(nèi)存消耗(堆和非堆)。請注意正在使用的內(nèi)存和已提交的內(nèi)存之間的區(qū)別。
較新版本的 Java 具有更復(fù)雜的算法,其中 JVM 將內(nèi)存返回給操作系統(tǒng)。對于 Java 8,一種選擇是使用 Eclipse Open J9 JVM。
添加回答
舉報(bào)