场景:
本地从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

本文介绍在使用Netty进行性能测试时遇到的TooManyOpenFiles问题及解决方案。在模拟大量设备并发连接第三方平台的场景下,通过调整NioEventLoopGroup线程数,有效降低系统句柄数,解决资源过度消耗的问题。
2493

被折叠的 条评论
为什么被折叠?



