你的java服務掛了嗎

問題背景

最近測試環境服務總是崩潰,運維小哥全部重啓後還是崩潰,查看了服務運行情況佔用內存確實挺高的,看來是時候優化一波jvm參數了。

優化前

top $(ps -e | grep java | awk '{print $1}' | sed 's/^/-p/')  

優化前

優化後

nohup java -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar
 ${LUJING}/${NAME}/${NAME}.jar --spring.profiles.active=dev >${LUJING}/${NAME}/nohup.out 2>&1 &

優化後

總結

通過優化前後對比,我們發現通過jvm參數調整後,VIRT、RES、%MEM這幾個指標都有了明顯的變化。

VIRT—virtual memory usage虛擬內存

1、進程“需要的”虛擬內存大小,包括進程使用的庫、代碼、數據等,單位kb,VIRT=SWAP+RES
2、假如進程申請100m的內存,但實際只使用了10m,那麼它會增長100m,而不是實際的使用量

RES:resident memory usage 常駐內存

1、進程當前使用的內存大小,但不包括swap out,單位kb, RES=CODE+DATA
2、包含其他進程的共享
3、如果申請100m的內存,實際使用10m,它只增長10m,與VIRT相反
4、關於庫佔用內存的情況,它只統計加載的庫文件所佔內存大小

%MEM

進程使用的物理內存百分比

發佈了18 篇原創文章 · 獲贊 21 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章