在给kafka程序做高并发压力测试时突然出现这个,找了下原因,发现是Linux的文件句柄问题。
在Linux中是有文件句柄(open files)限制的
一般来说Linux默认是1024,在高并发服务器还蛮容易达到这个量级。
稍微改一下句柄的数量就好了
命令:ulimit -a
执行:ulimit -n 数量 修改句柄
注:最大值为655350
llw@ubuntu:~/kafka$ ulimit -n 102400
llw@ubuntu:~/kafka$ ulimit -a
之后就不会出现这个异常了。
PS:这个是临时性的,只对当前的终端生效!
如需永久生效,则可以改配置文件/etc/security/limits.conf和/etc/profile
如果只是做下测试,没必要改成永久生效。