惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Cyberwarzone
Cyberwarzone
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX
博客园_首页
博客园 - 聂微东
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
T
Tenable Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
A
About on SuperTechFans
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
D
DataBreaches.Net
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
D
Docker
P
Proofpoint News Feed

博客园 - YZG

zigbee路由(报文实例) Zigbee系列(路由机制) Zigbee系列(end device) Zigbee系列(网络) Zigbee系列(概览) kallsyms , addr to symbol Linux checksum flag in kernel ubuntu apt-xxx 清空DNS缓存 shell loop shell 参数 power sequece grep 文件内容搜索 netif_receive_skb pt_prev why? virtual machine AVR地址空间 altera 与 xilinx fifo 时序的区别 如何在Linux下实现50万并发 Linux tcp socket相关参数设置
对Linux下socket限制的理解
YZG · 2011-04-03 · via 博客园 - YZG

最近在网络上看到一个关于Linux下socket数量限制相关的讨论,主要讨论在linux下,是否能支持10甚至百万个tcp并发连接。

讨论 1:在32为系统下,最大连接数的极限值是多少?

从系统内存的角度考虑,32位系统最大支持4G内存,内核空间为1G。如果每个socket占用的内存为C,那么最大连接数为:

 maxconn = 1GB/C

如何分析每个socket占用的内核空间内存呢?分析socket占用内存的组成部分:文件系统inode + socket结构 + tcp windows。

tcp windows的内存实际上就是挂在sk结构下的skb队列,skb是真正存储数据的地方,也就是消耗内存的地方。如果CPU的响应速度足够快,网络响应也很快,

那么skb队列只需要保留1个就可以,假定为1.5K。

文件系统inode + socket结构 是固定大小的,大约为1K。

理想情况下:每个socket占用的内存为2~3K。以2K计算,内核空间实际可用内存约在800M,那么800M/2K = 400K.

粗略估计,Linux下,32位系统,能支持40万tcp并发连接差不多就到极限了。

分析过程是否有问题,还望高手指教。

HAProxy是通过socket的方式实现的,一直没有找到关于最大并发连接的测试结果,在32位Linux上,最大值估计在20万并发连接左右。