场景:
本地从kafka获取数据,模拟设备,通过808协议给第三方平台发送数据,一个设备一个连接。
问题:
使用netty做性能测试时,并发过大造成Too Many open files问题
每个设备对象,内部就一个netty对象请求,结果1000多个设备,使用服务器句柄达到了17w+,
解决如下: 最后通过修改bootstrap.group(new NioEventLoopGroup(1));然后句柄数据正常了。之前使用默认的new NioEventLoopGroup()
查看进程对应的句柄数
[root@xxxxx]# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more|grep '36576'
6619 36576
查看对应的连接
[root@xxxxx]# netstat -lnaop|grep 7008|wc -l
17
查看进程对应线程数
[root@xxxxx]# cat /proc/36576/status|grep 'Threads'
Threads: 4323