2026年租用 Mac Mini 7×24 決策矩陣
Valkey(Redis 相容)AOF 重寫視窗、記憶體碎片率與磁碟水位閾值清單
Valkey 是開源 Redis 相容引擎;在單一 APFS 卷上,AOF 重寫的暫態膨脹、RSS 碎片與夜間 長跑批次很容易搶同一條 I/O 車道。下文用決策矩陣把方針一次定錨,並以可複製的監控閾值收尾。延伸閱讀:Redis AOF/RDB 基礎稿、磁碟水位 FAQ;需要與 worker 禮讓排程可對照 launchd 節流矩陣。免登入購買可先行鎖定硬體余量。
七乘二十四綜合決策矩陣
欄位由左至右代表快取偏輕、與 worker 混合、耐久優先或 SSD 偏窄。下列數字為多數單機場景的起點,上線前請用實際寫入率與鍵型壓測微調。
| 論點 | 低負載・快取偏輕 | 混合(worker 同居) | 嚴格耐久/窄碟 |
|---|---|---|---|
| AOF 重寫 | 自動+appendfsync everysec,尖峰對齊低谷 | BGREWRITEAOF 與 bgsave 至少相隔十五分鐘 | 手動窗為主;自動 RDB 與冷備與重寫三選二錯峰 |
| 碎片率 | mem_fragmentation_ratio 維持低於約 1.3為理想 | 約 1.5 持續數小時→黃;約 1.8→紅 | 低谷啟用 activedefrag 並設 CPU 上限 |
| maxmemory | 實體 RAM 約 65% 作為上限起點,allkeys-lru | 約 55–60%;佇列列 noeviction | noeviction+寫入側顯性錯誤處理 |
| 磁碟水位 | 空閒率低於約 20%→黃 | 重寫前絕對空閒低於約 5 GiB→黃 | 空閒率低於約 10%或絕對低於約 2 GiB→紅,停止非關鍵寫入 |
重寫會短暫讓 AOF 與暫存檔並存,窄碟不能只看成長比例,必須同時看絕對吉位元組余量。
持久化策略
在 appendonly yes 前提下,自動重寫由 auto-aof-rewrite-percentage(常見起點 100)與 auto-aof-rewrite-min-size(常見起點 64mb)共同決定。寫入放大快時,優先拉高 min-size 以避免連續 fork;審計極嚴的小集合才評估 appendfsync always,一般混合負載以 everysec 為預設折衷。手動 BGREWRITEAOF 前務必先確認 INFO persistence 中 aof_rewrite_in_progress:0,並選在監控可見的業務低谷執行。
maxmemory 淘汰
實體 RAM 需預留給作業系統、連線緩衝與同機 worker。maxmemory 建議從實體的約 55–65% 起評,再依 used_memory 告警階梯收斂:達上限的約 80% 發頁級警告、約 95% 視為重大事件並與淘汰策略聯動。可重建的快取可用 allkeys-lru;僅淘汰帶 TTL 的鍵可用 volatile-lru 或 volatile-ttl;不可靜默丟訊息的 broker/佇列角色宜採 noeviction,讓寫入失敗浮上應用層。
備份視窗
檔案層拷貝會與 AOF 重寫爭用同一卷的頻寬與 inode。冷備、快照或 rsync 應落在穩態低谷,並與 BGREWRITEAOF/BGSAVE 至少相隔十五分鐘以上;拷貝前同樣檢查持久化進行旗標。建議至少保留兩代離線副本並定期做還原演練,把「檔頭 magic/最後一筆命令」與業務抽樣對齊,避免只有備份沒有驗證。
長跑任務與快取共存
同一主機上請用 DB 編號與鍵前綴區分語意,把巨大 payload 與長生命週期中繼結果遷到本機檔案或物件儲存,讓 Valkey 專心承載熱集。夜間批次高峰時,對寫入側在磁碟/記憶體黃線先做節流;需要與系統排程禮讓時,可將 worker 包在 nice/低 I/O 優先序內,細節見站內 launchd 稿。
可執行閾值與指令
監控儀表板請固定並列 INFO memory 與 INFO persistence。啟用主動整理時,可從低谷時段逐步調整 activedefrag yes、active-defrag-ignore-bytes、active-defrag-threshold-lower/upper,並觀察 CPU 占用與尾延遲。
- mem_fragmentation_ratio:連續三個採樣週期超約 1.5→黃;超約 1.8→紅(先離峰複測)
- used_memory/maxmemory:約 80% 警告、約 95% 重大
- 磁碟:空閒率約 20%/10% 黃紅;絕對空閒約 5 GiB/2 GiB 黃紅
valkey-cli INFO persistence | egrep 'aof_enabled|aof_rewrite_in_progress|aof_current_size'
valkey-cli CONFIG GET "auto-aof-rewrite-*"
落地步驟(核對清單)
- 盤點不可丟失與可重建鍵空間並寫入運維手冊。
- 設定 maxmemory 與淘汰策略,並接上80%/95%兩級告警。
- 校準 auto-aof-rewrite-*,讓自動重寫尖峰落在可觀測低谷。
- 儀表板固定碎片率、RSS、重寫旗標、卷空閒率與絕對空閒。
- 冷備與快照與重寫/
bgsave錯開,並外送至少兩代。 - 每季做一次還原演練,記錄實測 RPO/耗時。
常見問題
- 能直接照搬 Redis 設定嗎?
- 語法大多相容,仍以實際 Valkey 版本為準;上線前請用影子流量驗證重寫耗時與恢復路徑。
- 碎片率不高卻仍然延遲尖刺?
- 改查 fsync 節奏、單鍵熱點、慢日誌與網路往返;比率只是入口指標。
購買引導
選型時同時看RAM 余量(maxmemory+worker+OS)與SSD 余量(AOF 成長+重寫暫態+日誌)。建議先用較寬裕的租用規格在離峰重放真實 fork/fsync 負載,再把閾值與夜窗寫進值班手冊。
總結:七乘二十四的骨架是重寫/bgsave/冷備/長跑 I/O 不重疊,並把碎片率與磁碟黃紅線接到寫入側節流。完成參數表後,請由 方案頁選定余量、於 購買頁下單,再依 幫助中心驗證連線並上線閾值。