文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>对Linux下socket限制的理解

对Linux下socket限制的理解

时间:2011-04-03  来源: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万并发连接左右。

 

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载