Linux 為提升磁碟 I/O 效能,採用 write-back 快取機制:寫入資料先存入記憶體 buffer/cache,由核心執行緒(kflushd/kworker)定期或在記憶體壓力大時回寫磁碟。若遇突發斷電、核心恐慌,未刷新的資料將遺失。sync 命令即強制將所有檔案系統的髒頁寫回磁碟,確保資料持久化。

# 基本用法
$ sync
# 同步特定掛載點(需 root)
# sync /mnt/data
# 查看髒頁數量
$ grep -i dirty /proc/vmstat
即使不手動執行 sync,核心也會透過兩種方式回寫:
pdflush/kworker 執行,間隔由 /proc/sys/vm/dirty_writeback_centisecs 控制(預設 5 秒)。dirty_ratio(預設 20%)或 dirty_background_ratio(預設 10%)時強制回寫。sync; sync; sync(傳統習慣,現代 init 系統已自動處理)。sync && eject /dev/sdX。sync; dd if=/dev/zero of=test bs=1G count=1 oflag=direct。blockdev --flushbufs /dev/sdX:針對區塊裝置刷新。fsync()/fdatasync():程式層面精確控制單一檔案落盤。理解 buffer/cache 與 sync 機制,能避免資料遺失風險,亦是儲存系統調優的基礎知識。