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的主要内容,如果未能解决你的问题,请参考以下文章

排查 Too many open files

linux下tomcat之too many open files

线上服务器too many open files 问题排查记录

Linux服务器报错too many open files错误解决方案

错误 open too many files

Too many open files错误与解决方法