簡介
在實驗環境或生產環境中,往往一台linux服務器需要添加啟動n個項目,但是項目啟動占用的jvm內存默認值基本上都是很大的,800m到2G都有,這樣很容易將服務器的內存吃垮,從而導致系統強制oom(內存泄露),不留任何情面;
所以,我們在部署項目的時候需要進行jvm參數的調優設置,保證內存使用的穩定性;
1. 首先執行命令:free -h,查詢當前的內存占用情況,從下圖可看出,內存已被撐爆;
2. 開始進行優化,執行命令:top,查看各個應用的內存占用情況,選取內存占用過高的pid進程;
3. 然后獲取pid號5252,根據pid查詢對應的進程以及項目路徑,執行命令:ps -aux |grep -v grep|grep 5252
4. 定位到項目跟路徑之后,開始設置項目啟動jvm內存占用,不同項目可分配不同的內存;
- 如果是springboot項目jar啟動,則在啟動的時候指定jvm的內存分配:
- nohup java -jar -Xms128M -Xmx256M -XX:PermSize=128M -XX:MaxPermSize=256M process-activiti-0.0.1-SNAPSHOT.jar > activiti.log 2>&1 &
- 如果是tomcat項目啟動,則在bin目錄下,執行命令:vim catalina.sh,然后在頂部加上:
- JAVA_OPTS="-Xms128m -Xmx256m"
5. 重新啟動項目之后,執行命令查詢修改情況:jps -v
6. 將所有高消耗的項目都修改重啟之后,重新查看內存占用情況:free -h,如下圖,已經騰出了近4G空間,jvm參數調優設置完成;