Linux系统报错排查:Too many open files in system

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统报错排查:Too many open files in system相关的知识,希望对你有一定的参考价值。

参考技术A 输出如下:

修改linux系统参数。vi /etc/security/limits.conf 添加

修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了:

kafka too many open files的解决方法

参考技术A 在生产环境中,为了方便将kafka做成了一个服务,使用systemctl start kafka,kafka用户来对kafka进行启动,可是在最近的一次升级中启动应用时,kafka出现too many open files的报错并且宕机,

在linux系统下每一个进程都会有其相应的文件打开限制,可以使用cat /proc/<pid>/limits来进行查看。使用命令行启动的应用会共用执行该命令用户的文件打开数,若是将其做成一个服务,如果不经过相应的配置,那么该进程默认的文件打开数为4096,所以解决该问题不仅需要提高kafka用户的文件打开数,而且需要在启动脚本中配置文件打开数,

1)进入kafka用户中,执行ulimit -n可以查看kafka用户的文件打开数

2)若是该文件打开数小,那么需要在/etc/security/limits文件中添加:

kafka soft nofile <文件打开数>
kafka hard nofile <文件打开数>

3)也可以使用ulimit -n <文件打开数>来进行临时配置

1)kafka.service脚本如下

[Unit]
Description=kafka service
Requires=zookeeper.service
After=zookeeper.service

[Service]
ExecStart=/data/apps_data/kafka/bin/kafka-server-start.sh /data/apps_data/kafka/config/server.properties
ExecStop=/home/kafka/bin/kafka-server-stop.sh
Type=simple
User=kafka
Group=kafka
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

[Unit]
Description=kafka service
Requires=zookeeper.service
After=zookeeper.service

[Service]
ExecStart=/data/apps_data/kafka/bin/kafka-server-start.sh /data/apps_data/kafka/config/server.properties
ExecStop=/home/kafka/bin/kafka-server-stop.sh
Type=simple
User=kafka
Group=kafka
LimitNOFILE=<文件打开数>
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

3)更改往后执行systemctl daemon-reload重载脚本

4)重启kafka生效

以上是关于Linux系统报错排查:Too many open files in system的主要内容,如果未能解决你的问题,请参考以下文章