【1】tail: inotify cannot be used, reverting to polling: Too many open files

使用tail查看日志报的错误,使用命令查看异常线程:

[root@VM-8-2-centos tomcat8080]# lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head
13114 28695
3312 6785
3312 4692
3312 31762
3312 30970
3312 2812
3312 26291
3312 23529
3312 22566
3312 21930
[root@VM-8-2-centos tomcat8080]# ps -ef|grep 28695
root 28695 1 1 18:05 ? 00:00:57 java -jar bookshop-0.0.1-SNAPSHOT.jar

可以看到28695正是Java的进程。

解决

在 /etc/sysctl.conf文件中加入下面的配置:

fs.inotify.max_user_watches=1048576
fs.inotify.max_user_instances=1048576

​sysctl -p /etc/sysctl.conf​​ 使修改生效。

sysct.conf是什么?

是用来设置Linux内核参数 的,​​/etc/sysctl.conf​​是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。