登錄兩個控制台
打包開始后 在其中一台機器執行ps -ef |grep jenkins 找到執行打包的主進程
復制pid 在另一個終端上執行 top -H -p pid
將最耗cpu的線程id轉換為16進制輸出
printf "%x \n" pid
會輸出一個16進制的字符串
jstack pid | grep 16進制字符串 -A 30
輸出內容
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f7cbc5e0000, 262275072, 0) failed; error='Cannot allocate memory' (errno=12)
后百度發現 由於tomcat使用的內存較少 導致的問題, 定位到問題后 修改setenv.sh,添加如下參數
JAVA_OPTS="-server -Xms2048m -Xmx4096m -XX:PermSize=256M -XX:MaxPermSize=512m"
開始的時候-Xms2048m -Xmx2048m 都為2048 但是在打包測試過程中還是報異常,后來跟開發人員溝通后,大致了解 整個過程所需的內存范圍為4個G左右 后來修改 再次測試完全沒問題
