jenkins導致硬碟佔用滿了如何處理

假面Wilson發表於2024-06-12

現象:

從根目錄開始,使用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,填寫完之後,點選【儲存】按鈕即可使新的設定生效。

相關文章