TCP百万并发之参数设置

要想服务器能够支持百万个client的连接,我们要知道,是什么会限制服务器连接的数量。这里我们需要搞清楚这几个问题;

  1. 操作系统能否支持百万连接?
  2. 操作系统维持百万连接需要多少内存?

1. 操作系统能否支持百万连接?

大多数的操作系统是不能达到百万级别的连接,是因为系统参数限制了这一操作,达到数十万以及数百万的连接的时候,会大量地消耗操作系统的资源。但是我们可以修改。

全局修改

我们使用cat /proc/sys/fs/file-nr,查看全局最大文件打开数Max open files.
在这里插入图片描述
我们可以看到第三个数字1048576,有100w,说明此操作系统可以达到100w的连接。如果有的操作系统没有达到这个数值,怎么办呢?
我们可以用 root 权限修改 /etc/sysctl.conf 文件:添加这两个参数

fs.file-max = 1048576
net.nf_conntrack_max = 1048576

fs.file-max:是打开文件fd最大值
net.nf_conntrack_max:表示网络netfilter可以容纳的最多文件个数。

使用:sudo sysctl -p /etc/sysctl.conf 使文件生效。

进程限制

在一个进程中,我们怎么修改参数使之暂时生效呢。
执行:

ulimit -a 

在这里插入图片描述
可以看到,这里有个open files参数,我们可以使用 -n来设置

ulimit -n 1048576

但是这个机器重启就会恢复到原来的数值。

我们怎么样可以永久修改呢?
修改 /etc/security/limits.conf 文件

在文件的最后一行添加:

 * soft nofile 1048576
 * hard nofile 1048576

这四个分别代表 domain, type

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值