网站建设iis配置,优化营商环境 提升服务效能,绍兴 网站制作,延边州网站建设一个服务端进程最大能支持多少条 TCP 连接#xff1f; 一台服务器最大能支持多少条 TCP 连接#xff1f; 一、原理 TCP 四元组的信息#xff1a;源IP、源端口、目标IP、目标端口。
一个服务端进程最大能支持的 TCP 连接个数的计算公式#xff1a;最大tcp连接数客户端的IP…一个服务端进程最大能支持多少条 TCP 连接 一台服务器最大能支持多少条 TCP 连接 一、原理 TCP 四元组的信息源IP、源端口、目标IP、目标端口。
一个服务端进程最大能支持的 TCP 连接个数的计算公式最大tcp连接数客户端的IP数 * 客户端的端口数 对 IPv4客户端的 IP 数最多为 2 的 32 次方客户端的端口数最多为 2 的 16 次方。那么一个服务端进程理想情况下最大的 TCP 连接数约为 2 的 48 次方2^32 (ip数) * 2^16 (端口数这数值是非常夸张的了约等于两百多万亿。 服务端进程最大能支持的 TCP 连接数远不能达到理论上限还会受到文件描述符、内存大小资源的限制毕竟 socket 在 Linux 的视角其实就是文件资源而且一个 socket 对象也会占用一定的内存资源。 限制因素 文件描述符限制每个 TCP 连接都是一个文件如果文件描述符被占满了会发生 Too many open files。Linux 对可打开的文件描述符的数量分别作了三个方面的限制 系统级当前系统可打开的最大数量通过 cat /proc/sys/fs/file-max 查看 用户级指定用户可打开的最大数量通过 cat /etc/security/limits.conf 查看 进程级单个进程可打开的最大数量通过 cat /proc/sys/fs/nr_open 查看 内存限制每个 TCP 连接都要占用一定内存操作系统的内存是有限的如果内存资源被占满后会发生 OOM。
二、计算tcp 因为Linux每维护一条TCP连接都要花费资源处理连接请求保活数据的收发时需要消耗一些CPU维持TCP连接主要消耗内存。 是考虑最大多少个连接所以我们先不考虑数据的收发那么TCP在静止的状态下就不怎么消耗CPU了主要消耗内存而Linux上内存是有限的。首先我们要知道一条处于 ESTABLISH 状态的 TCP 连接具体占用多大内存一个 TCP 对象占用的大小等于它所包含的一些数据结构占用大小的总和也是就把上面这些数据结构的大小累加起来就是一个 TCP 连接占用的大小了。 这里直接给大家一个结论一条处于 ESTABLISH 状态的 TCP 连接占用的大小是 3.44 KB0.81K2.19K0.19K0.25K。 每一条静止状态的TCP连接大约需要吃 3.44K 的内存。那么 8 GB 物理内存的服务器最大能支持的 TCP 连接数8GB/3.44KB2,438,956约240万当然 实际过程中的 TCP 连接肯定不是静止状态的还会进行发送数据和接收数据了那么这些过程还是会额外消耗更多的内存资源的并发很难达到百万级别。
三、压测验证 3.1-postman 3.2-ab 3.3-jmeter