Jenkins服務器磁盤空間爆滿問題解決
現象:
從根目錄開始,使用du -h -x --max-depth=1 查看哪個目錄占用過高,打算對於過高目錄中的內容適當刪減騰出一些空間
通過追蹤查詢,發現是jenkins的構建紀錄未清理,而且最近我們項目測試構建很頻繁,導致磁盤最近爆漲。
注:查看隱藏文件的命令:
du -sh .[!.]* * | sort -hr
解決方法:
1、手工刪除構建記錄
這是最基本的一種操作方法,通過直接物理刪除構建記錄進行磁盤空間管理。手工刪除構建記錄方式如下:
進入Jenkins根目錄,Windows下默認位於當前用戶目錄中的.jenkins文件夾。
手工刪除構建記錄,構建記錄位於.jenkins\jobs\XXX\builds中(其中XXX為具體項目名稱)。根據需要直接刪除對應的構建歷史即可。
2、轉移磁盤空間
轉移磁盤空間的思路是通過改變Jenkins的默認主目錄達到把構建記錄轉移到其他磁盤的方式。以Windows系統為例,通常用戶目錄所在的磁盤會安裝很多軟件導致磁盤空間處於不充裕的狀態,而其他磁盤空間則可以進行動態划分和管理。如果能把Jenkins構建記錄存放到相對較大而又可以動態管理的空間中無疑會在很大程度上解決磁盤空間不足的問題。具體操作方式也非常簡單:
1、創建Jenkins根目錄環境變量JENKINS_HOME,將該環境變量映射到具體某個工作目錄
2、重啟Jenkins即可
當然,轉移磁盤空間只是一種相對優化的策略,如果構建需求量非常巨大,該策略通常也是治標不治本,所以我們還有第三種策略。
3、 自動丟棄構建歷史數據
一次構建包含兩方面的產物:構建記錄和構建工件。構建記錄是一種跟蹤、分析和反饋的依據,具有保存價值;而已經過時的構建工件則通常可以直接丟棄。基於以上思路,Jenkins為我們提供了“丟棄舊的構建”配置功能,通過進行合理配置即可達到保存構建記錄丟棄構建工件的效果,配置方式如下:
在這里我們需要填寫自定義的丟棄舊的構建設置,這里我們將“保持構建的天數”以及“發布包保留天數”均設置為7天,將“保持構建的最大個數”設置為30條,而我們每次取用jar包或war包時都只想獲取最新版本,所以說我們這里只保存最新版的軟件版本信息,因而在“發布包最大保留#個構建”中填寫1,填寫完之后,點擊【保存】按鈕即可使新的設置生效。