xiaowei-system/scripts/lance-vacuum.sh

35 lines
1.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# LanceDB 周期性 VACUUM2026-09-05 建立)
# 背景zhiyid/consolidate 每次写入产生新版本且从不清理 → 35G 膨胀5.9万版本残留)
# 策略:每周日凌晨 3:30 停 zhiyid → optimize(cleanup_older_than=0) → 重启
# 注意:与 CBM 索引刷新(周日 3:00)错开 30 分钟,避免资源叠加
set -u
export XDG_RUNTIME_DIR=/run/user/$(id -u)
LOG=/home/muc/.logs/lance-vacuum.log
PY=/home/muc/.hermes/venvs/lance-compact/bin/python
SCRIPT=/home/muc/.hermes/scripts/lance_compact.py
echo "=== $(date '+%F %T') LanceDB VACUUM 开始 ===" >> "$LOG"
# 1. 停写(织忆短暂不可用 ~10min凌晨可接受
systemctl --user stop zhiyid.service zhiyi-consolidate.service >> "$LOG" 2>&1
sleep 2
# 2. VACUUM失败不阻塞重启
BEFORE=$(du -sb /var/lib/memoryweave 2>/dev/null | cut -f1)
"$PY" "$SCRIPT" >> "$LOG" 2>&1 || echo " ⚠️ VACUUM 失败,见上方日志" >> "$LOG"
AFTER=$(du -sb /var/lib/memoryweave 2>/dev/null | cut -f1)
echo " 空间: $(numfmt --to=iec $BEFORE)$(numfmt --to=iec $AFTER)" >> "$LOG"
# 3. 重启服务
systemctl --user start zhiyi-consolidate.service zhiyid.service >> "$LOG" 2>&1
sleep 8
# 4. 健康确认
if systemctl --user is-active zhiyid.service > /dev/null 2>&1; then
echo " ✅ zhiyid 恢复" >> "$LOG"
else
echo " ⚠️ zhiyid 未恢复!" >> "$LOG"
systemctl --user restart zhiyid.service >> "$LOG" 2>&1
fi
echo "=== $(date '+%F %T') VACUUM 结束 ===" >> "$LOG"