“tail: inotify resources exhausted” 这个错误表明系统的 inotify 资源已经耗尽。inotify 是 Linux 内核的一项功能,用于监视文件系统中的事件,例如文件的创建、删除、修改等。tail -f 命令使用 inotify 来实时监视文件的变化,如果系统中的 inotify 资源耗尽,tail 会退回到使用轮询(polling)模式,性能较差。

解决方法

1. 增加 inotify 资源限制

你可以通过增加系统允许的 inotify 资源数量来解决这个问题。

首先,查看当前的 inotify 资源限制:

cat /proc/sys/fs/inotify/max_user_watches
cat /proc/sys/fs/inotify/max_user_instances
  • 1.
  • 2.

然后可以通过以下方式增加限制:

编辑 /etc/sysctl.conf 文件:

sudo nano /etc/sysctl.conf
  • 1.

在文件末尾添加以下行,增加 inotify 资源限制:

fs.inotify.max_user_watches=524288
fs.inotify.max_user_instances=1024
  • 1.
  • 2.

保存并退出文件后,应用更改:

sudo sysctl -p
  • 1.
2. 查找并减少 inotify 使用

你可以使用 lsofinotifywatch 来找出哪些进程正在大量使用 inotify 资源:

sudo lsof | grep inotify
  • 1.

如果发现某些进程在频繁监视大量文件或目录,考虑减少这些监视操作或重新配置这些进程。

3. 清理不必要的进程

如果有大量不必要的进程正在使用 inotify,你可以考虑终止这些进程来释放 inotify 资源:

sudo kill -9 <pid>
  • 1.

请注意,终止进程前要确保它们不是关键进程。

4. 检查系统日志

有时,特定服务或程序可能引发大量 inotify 事件,检查系统日志可以帮助识别这些服务:

journalctl -xe
  • 1.

总结

“tail: inotify resources exhausted” 表示系统的 inotify 资源已耗尽,可能导致文件监视功能失效。通过增加 inotify 资源限制、查找并减少 inotify 的使用、终止不必要的进程,以及检查系统日志,可以有效解决这个问题。


我查出来是因为minio文件同步监控导致的
mc mirror -w --overwrite --remove /opt/backups/ minio2/database
改成定时执行的就行了去掉-w
mc mirror --overwrite --remove /opt/backups/ minio2/database