問題背景
最近測試環境服務老是崩潰,運維小哥所有重啓後仍是崩潰,查看了服務運行狀況佔用內存確實挺高的,看來是時候優化一波jvm參數了。html
優化前
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 &
java
總結
經過優化先後對比,咱們發現經過jvm參數調整後,VIRT、RES、%MEM這幾個指標都有了明顯的變化。
VIRT—virtual memory usage虛擬內存
一、進程「須要的」虛擬內存大小,包括進程使用的庫、代碼、數據等,單位kb,VIRT=SWAP+RES
二、假如進程申請100m的內存,但實際只使用了10m,那麼它會增加100m,而不是實際的使用量
RES:resident memory usage 常駐內存
一、進程當前使用的內存大小,但不包括swap out,單位kb, RES=CODE+DATA
二、包含其餘進程的共享
三、若是申請100m的內存,實際使用10m,它只增加10m,與VIRT相反
四、關於庫佔用內存的狀況,它只統計加載的庫文件所佔內存大小
%MEM
進程使用的物理內存百分比
spring
原文出處:https://www.cnblogs.com/coniglio/p/12173087.html運維