linux系统提高inotify限制解决User limit of inotify watches reached

报错:

User limit of inotify watches reached

问题: 

Linux系统中用于监视文件系统事件的inotify资源耗尽,通常是因为系统对文件监视数量的限制(inotify watches)已达到上限。

检查:

当前的inotify限制:

cat /proc/sys/fs/inotify/max_user_watches


解决方案:

  • 临时:提高inotify的限制:可以通过执行命令来增加限制。

    echo 524288 | sudo tee /proc/sys/fs/inotify/max_user_watches
  • 永久:


    vi /etc/sysctl.conf

    添加

    fs.inotify.max_user_watches=524288

    执行

    sudo sysctl -p


  • 建议增加

fs.inotify.max_user_instances=1024
fs.inotify.max_queued_events=32768


max_user_instances

= 一个用户最多能创建多少个 inotify “监听器”

什么时候会炸这个?

同时跑很多容器

Node 面板 + 游戏服 + 监控程序

Java 程序多实例

如果不改,可能出现这种报错:

inotify_init: Too many open files

? 对游戏服主机来说,属于保险项。




max_queued_events

= 内核里 inotify 事件排队容量

什么时候重要?

日志狂刷

文件被频繁创建/删除(模组缓存、存档写入)

自动构建、热重载系统

太小会丢文件变动通知,但 不会直接导致你现在这个报错。