大叔问题定位分享(44)kafka服务重启
背景
kafka部分进程重启,报错如下:
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
at java.lang.Thread.run(Thread.java:748)
定位
通过ulimit -a查看当前用户open files是65535
再进一步查看kafka进程的open files(位置/proc/$pid/ulimits)是4096
两个配置不一样,原因是kafka进程由systemd启动,使用的配置和当前用户不一样,配置文件位置:
/usr/lib/systemd/system/kafka.service
LimitNOFILE=65535
修改之后重新加载systemd配置
systemctl daemon-reload
重启kafka进程
systemctl restart kafka
查看/proc/$pid/ulimits确认生效。