unparallelled commited on
Commit
9e5d833
·
verified ·
1 Parent(s): feb336c

Upload scripts/ckpt_janitor.sh with huggingface_hub

Browse files
Files changed (1) hide show
  1. scripts/ckpt_janitor.sh +30 -0
scripts/ckpt_janitor.sh ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ # CP_CKPT_KEEP prunes .ckpt files but NOT their .zero_g1 sidecars. At
3
+ # CP_CKPT_FREQ=25 that leaked ~49 GB of orphans and filled a 193 GB disk, after
4
+ # which every save failed with only a [WARN] while training carried on. This
5
+ # deletes sidecars and .tmp files that no surviving .ckpt refers to.
6
+ set -uo pipefail
7
+ cd "$(dirname "$0")"
8
+ L=b3long_logs/janitor.log
9
+ while true; do
10
+ freed=0
11
+ for r in 0 1; do
12
+ d=checkpoints_bluscriptcp/rank_$r
13
+ [ -d "$d" ] || continue
14
+ for f in "$d"/*.zero_g1; do
15
+ [ -e "$f" ] || continue
16
+ stem=$(basename "$f" .zero_g1)
17
+ # keep if a matching .ckpt exists, or if a preserved copy references it
18
+ [ -f "$d/$stem.ckpt" ] && continue
19
+ ls "$d"/*"$stem".ckpt >/dev/null 2>&1 && continue
20
+ sz=$(stat -c%s "$f" 2>/dev/null || echo 0)
21
+ rm -f "$f" && freed=$(( freed + sz ))
22
+ done
23
+ # .tmp older than 10 min is a failed save, never an in-flight one
24
+ find "$d" -name '*.tmp' -mmin +10 -delete 2>/dev/null
25
+ done
26
+ avail=$(df -BG --output=avail /root | tail -1 | tr -dc '0-9')
27
+ [ "$freed" -gt 0 ] && echo "[$(date -u +%H:%M:%S)] freed $(( freed/1000000 )) MB, ${avail}G avail" >> "$L"
28
+ [ "$avail" -lt 25 ] && echo "[$(date -u +%H:%M:%S)] WARNING only ${avail}G avail -- a save needs 17.3G" >> "$L"
29
+ sleep 300
30
+ done