你的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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM