AdSense

網頁

2024/3/26

Jenkins Pipeline工作無法執行 Disk space is below threshold

Jenkins裝好後無法執行pipeline工作(即使是簡單的hello world pipeline)。點擊pipeline的[Build Now],只顯示"Build scheduled",但[Build History]沒有出現任何運行紀錄。


問題環境:

  • AWS EC2 t2.small, Amazon Linix 2023
  • Jenkins 2.440.2

仔細一看是Build-In Node的狀態是[offline](下線),這就是pipeline不工作的原因,因為pipeline是透過Node執行。(Dashboard > Manage Jenkins ≫ Nodes > Built-In Node

而Node下限的原因是[Free Swap Space]和[Free Temp Space]不足,出現Disk space is below threshold of 1.00 Gib. Only 974.74 MiB out of 978.03 MiB left on /tmp.錯誤訊息。



解決方式如下。


增加Free Swap Space空間

在Jenkins伺服器(這邊為EC2 Linux),輸入free|grep -i Swap可看到Swap space為0。

$ free|grep -i Swap
Swap:              0           0           0

輸入sudo dd if=/dev/zero of=/swapfile bs=1M count=2K配置swapfile檔案2GiB的大小(1M x 1K)。

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2K
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 28.9261 s, 74.2 MB/s

輸入sudo chmod 600 /swapfile修改swapfile讀寫權限。

$ sudo chmod 600 /swapfile

輸入sudo mkswap /swapfile設定swap交換區。

$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=8e9ec486-d3c5-46bc-847a-c192b084bfa6

輸入sudo swapon /swapfile把swapfile設定為swap交換空間。

$ sudo swapon /swapfile

輸入sudo swapon -s確認設定成功。

$ sudo swapon -s
Filename				Type		Size		Used		Priority
/swapfile                               file		2097148		0		-2

輸入free|grep -i Swap可看到Swap空間已經增加。

$ free|grep -i Swap
Swap:        2097148           0     2097148

重啟Jenkins,可看到Build-In Node的[Free Swap Space]變成2.00GiB。




增加Free Temp Space空間

輸入df -h檢查檔案系統狀況,可看到/tmp的可用容量為975M,此即為Jenkins使用的Free Temp Space。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           979M     0  979M   0% /dev/shm
tmpfs           392M  5.4M  386M   2% /run
/dev/xvda1       20G  4.3G   16G  22% /
tmpfs           979M  3.3M  975M   1% /tmp
/dev/xvda128     10M  1.3M  8.7M  13% /boot/efi
tmpfs           196M     0  196M   0% /run/user/1000

輸入sudo mount -o remount,size=2G /tmp重新掛載/tmp為2GiB大小。

$ sudo mount -o remount,size=2G /tmp

再次輸入df -h,可看到/tmp的可用容量變為2.0G。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           979M     0  979M   0% /dev/shm
tmpfs           392M  5.4M  386M   2% /run
/dev/xvda1       20G  4.3G   16G  22% /
tmpfs           2.0G  3.3M  2.0G   1% /tmp
/dev/xvda128     10M  1.3M  8.7M  13% /boot/efi
tmpfs           196M     0  196M   0% /run/user/1000

重啟Jenkins,可看到Build-In Node的[Free Swap Space]變成2.00GiB。




完成以上後,pipeline便可以正常執行。


沒有留言:

AdSense