在Ubuntu下提高inotify性能可從以下方面入手:
調整內核參數
max_user_watches
(單個用戶可監控的文件/目錄數,默認8192,可設為更大值如524288)。max_user_instances
(單個用戶可創建的inotify實例數,默認128,根據需求增加)。max_queued_events
(事件隊列長度,默認16384,避免事件丟失)。sysctl -w
,永久修改需編輯/etc/sysctl.conf
并執行sysctl -p
。優化監控范圍
inotifywait -e
指定事件類型)減少無關事件。采用異步處理
批量處理事件
升級硬件與工具
inotify-tools
結合rsync
實現同步)。監控與調優
lsof -p <PID> | grep inotify
查看當前watch使用情況,避免泄漏。perf
工具分析性能瓶頸,針對性優化。關鍵參數調整示例:
# 臨時增加監控限制
sudo sysctl fs.inotify.max_user_watches=1048576
sudo sysctl fs.inotify.max_user_instances=2048
# 永久生效(編輯/etc/sysctl.conf)
echo "fs.inotify.max_user_watches=1048576" >> /etc/sysctl.conf
echo "fs.inotify.max_user_instances=2048" >> /etc/sysctl.conf
sudo sysctl -p
參考來源: