在客户端和服务端上分别运行各自的代码,并对Linux系统进行下列配置:注意,客户端和服务端必须都修改!!!
1、修改是永久生效。命令是临时生效。
2、fd 对应五元组(远程ip,远程端口,本机ip,本机端口,协议)
端口有65535个。对于服务端来说,如果只有一个端口,那么根据排列组合,fd最多65535个。因为ip,协议不会变。
因此,服务端增加多个监听端口。比如改成100个,那对于同一个客户端主机,就有六百万个了。若IP不一样,还能更多。
修改服务端源代码即可,创建fd数组。
3、sudo vim /etc/sysctl.conf,进入下面页面。
进行如下修改:
sudo modprobe ip_conntrack
sudo modprobe nf_conntrack
sudo sysctl -p 生效。
理解 + 实践。
如果按步骤操作有其他问题,问ai即可。
最终成功实现百万并发服务器:(由于VMware安装多台虚拟机太麻烦,太慢、且电脑空间不足,因此所有测试均在同一台虚拟机上完成,因此上面第三步的1048576都改成了4048576,且虚拟机内存改为16G,处理器8个):
刚好1048576