总结:为什么要限制最大连接数?

一个tcp连接需要:1,socket文件描述符;2,IP地址;3,端口;4,内存

原因:

建立连接需要消耗资源,详情查看:

https://blog.csdn.net/qj4522/article/details/84892762 

https://blog.csdn.net/solstice/article/details/6579232 

1、内存资源

tcp连接归根结底需要双方接收和发送数据,那么就需要一个读缓冲区和写缓冲区,这两个buffer在linux下最小为4096字节,可通过cat /proc/sys/net/ipv4/tcp_rmem和cat /proc/sys/net/ipv4/tcp_wmem来查看。 所以,一个tcp连接最小占用内存为4096+4096 = 8k ,那么对于一个8G内存的机器,在不考虑其他限制下,最多支持的并发量为:8 1024 1024/8 约等于100万。此数字为纯理论上限数值,在实际中,由于linux kernel对一些资源的限制,加上程序的业务处理,所以,8G内存是很难达到100万连接的,当然,我们也可以通过增加内存的方式增加并发量

2、CPU资源

3、文件描述符占满带来的问题

背景:业务反馈jmxmon插件没有下载。

排查:进入机器看agent日志,发现机器找不到组,这种一般是因为机器网络问题,机器性能问题,uuid和host上不一致等,或者真的没有组

检查下是否是sudo配置问题,发现,原来是文件描述符被占满了

 没有组的报错日志:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值