場景:
本地從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