Some checks failed
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
1.8 KiB
Bash
46 lines
1.8 KiB
Bash
#!/bin/bash
|
|
# 記憶體使用趨勢監控腳本
|
|
# 用途:每 10 分鐘記錄一次記憶體使用狀況,持續 2 小時
|
|
|
|
LOG_FILE="/home/ogt/memory_trend_$(date +%Y%m%d_%H%M%S).log"
|
|
ITERATIONS=12 # 12 次 x 10 分鐘 = 2 小時
|
|
|
|
echo "===== 記憶體使用趨勢監控 =====" | tee -a $LOG_FILE
|
|
echo "開始時間: $(date)" | tee -a $LOG_FILE
|
|
echo "監控週期: 2 小時 (每 10 分鐘記錄一次)" | tee -a $LOG_FILE
|
|
echo "===============================" | tee -a $LOG_FILE
|
|
echo "" | tee -a $LOG_FILE
|
|
|
|
for i in $(seq 1 $ITERATIONS); do
|
|
echo "----------------------------" | tee -a $LOG_FILE
|
|
echo "[記錄 $i/$ITERATIONS] $(date)" | tee -a $LOG_FILE
|
|
echo "" | tee -a $LOG_FILE
|
|
|
|
# 系統記憶體總覽
|
|
echo "🔹 系統記憶體總覽:" | tee -a $LOG_FILE
|
|
free -h | tee -a $LOG_FILE
|
|
echo "" | tee -a $LOG_FILE
|
|
|
|
# Gunicorn workers 記憶體使用(前 5 名)
|
|
echo "🔹 Gunicorn Workers 記憶體使用:" | tee -a $LOG_FILE
|
|
ps aux --sort=-%mem | grep gunicorn | grep -v grep | head -5 | awk '{printf " PID: %-8s | MEM: %-6s | RSS: %-10s | CMD: %s\n", $2, $4"%", $6"KB", substr($0, index($0,$11))}' | tee -a $LOG_FILE
|
|
echo "" | tee -a $LOG_FILE
|
|
|
|
# momo.service 總記憶體
|
|
echo "🔹 momo.service 總記憶體:" | tee -a $LOG_FILE
|
|
systemctl status momo.service --no-pager 2>/dev/null | grep "Memory:" | tee -a $LOG_FILE
|
|
echo "" | tee -a $LOG_FILE
|
|
|
|
# 等待 10 分鐘(最後一次不等待)
|
|
if [ $i -lt $ITERATIONS ]; then
|
|
echo "⏳ 下次記錄時間: $(date -d '+10 minutes' '+%Y-%m-%d %H:%M:%S')" | tee -a $LOG_FILE
|
|
sleep 600
|
|
fi
|
|
done
|
|
|
|
echo "" | tee -a $LOG_FILE
|
|
echo "===== 監控完成 =====" | tee -a $LOG_FILE
|
|
echo "結束時間: $(date)" | tee -a $LOG_FILE
|
|
echo "日誌檔案: $LOG_FILE" | tee -a $LOG_FILE
|
|
echo "===================" | tee -a $LOG_FILE
|