本篇文章是根据某一个公开课进行整理的,如何在服务端和客户端去实现单机百万的并发。
从客户端角度看,单机如果能发出百万并发,那我可以做出一个能发出百万并发的压测工具。从服务端角度看,可以优化现有的服务器支持更多的并发。
服务端支撑百万并发
每个连接占用内存3KB ~ 10KB,100W连接占用内存:100W * 10KB = 10GB
普通X86物理机:40Cores / 192GB Memory / 10KB Network / 1TB SAS
Nginx-1.14.2
Client端发出超过65535的连接数
65535 * Count(网卡数)
提供APP接入VIP
单机服务端最大TCP连接数
每个tcp连接都要占用一定内存,每个socket就是一个文件描述符fd
1024以下端口为保留端口,每个socket占用在3KB-10KB
文件句柄修改 /etc/security/limits.conf
单机Client端最大TCP连接数
一块网卡对应一个IP地址
一个IP地址对应65535个端口
一个端口只能一个socket监听
一个socket(ip、port)可以接受多个socket连接
什么是socket
create,listen,accept,connect,read和write等等