python百万并发压测_100W高并发(转载) - 橙子柠檬's Blog

本文探讨了如何在服务端和客户端实现单机百万并发的技术方案。从服务端角度,通过调整文件句柄设置,优化内存使用,以及选用合适的服务器配置如Nginx,来提升并发能力。而在客户端,介绍了如何利用多张网卡和VIP策略增加并发数。此外,还讨论了TCP连接数的限制及突破方法,包括端口复用和多网卡绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此文章忘记在哪里看到了,作为收藏备用记在这,作者看到可以联系下我著名出处,,本编文章是根据某一个公开课进行整理的,如何在服务端和客户端去实现单机百万的并发。

从客户端角度看,单机如果能发出百万并发,那我可以做出一个能发出百万并发的压测工具。从服务端角度看,可以优化现有的服务器支持更多的并发。

服务端支撑百万并发

  • 文件句柄设置

设置fd > 100w

  • 预估内存

每个连接占用内存3KB ~ 10KB,100W连接占用内存:100W * 10KB = 10GB

  • 机器配置说明

    普通X86物理机:40Cores / 192GB Memory / 10KB Network / 1TB SAS

  • Nginx版本推荐

    Nginx-1.14.2

Client端发出超过65535的连接数

  • 绑定多张网卡

    65535 * Count(网卡数)

  • 多张网卡接入VIP

    提供APP接入VIP

单机服务端最大TCP连接数

  • 实际受到机器资源(内存)、操作系统设置等限制
  • Linux下影响TCP连接的主要因素是内存和机器允许的文件描述符个数每个tcp连接都要占用一定内存,每个socket就是一个文件描述符fd,1024以下端口为保留端口,每个socket占用在3KB-10KB,文件句柄修改 /etc/security/limits.conf

单机Client端最大TCP连接数

  • client每次发起tcp连接请求,选择一个空闲的本地端口,该端口是d独占的,不能共享
  • tcp port的数据类型是unsigned short,所以单机最大TCP连接数为65535=2的16次方-1(port=0保留)
  • 怎么突破最大连接数为65535个

    一块网卡对应一个IP地址

    一个IP地址对应65535个端口

    一个端口只能一个socket监听

    一个socket(ip、port)可以接受多个socket连接

  • 单机客户端最大连接数为 65535 * count(单机网卡数)

什么是socket

  • Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。
  • 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面
  • Socket的出现只是可以更方便的使用TCP/IP协议栈而已,其对TCP/IP进行了抽象形成了几个最基本的函数接口

    -create,listen,accept,connect,read和write等等

赞0

踩0

本文标签:这篇文章木有标签

版权声明:若无特殊注明,本文为《橙子柠檬》原创,转载请保留文章出处。

本文链接:https://qinzc.me/post-242.html

正文到此结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值