当前位置:  开发笔记 > 运维 > 正文

可能有多少个插座连接?

如何解决《可能有多少个插座连接?》经验,为你挑选了5个好方法。

有谁知道在现代标准根服务器上可以有多少个tcp-socket连接?(每个连接的流量通常较少,但所有连接都必须一直在运行.)

编辑:我们将使用Linux服务器.



1> 小智..:

我实现了1600k并发空闲套接字连接,同时在Linux桌面上实现了57k req/s(16G RAM,I7 2600 CPU).它是用C语言编写的单线程http服务器.源代码在github上,这是一个博客.

编辑:

我在同一台计算机上使用JAVA/Clojure进行了600k并发HTTP连接(客户端和服务器).详细信息帖子,HN讨论:http://news.ycombinator.com/item?id = 5127251

连接的成本(使用epoll):

应用程序每个连接需要一些RAM

TCP缓冲区2*4k~10k或更多

epoll需要一些文件描述符的内存,来自epoll(7)

每个注册的文件描述符在32位内核上大约需要90个字节,在64位内核上大约需要160个字节.


@Bangash我的评论与Erlang完全没有任何关系,或者除了事实上leef在单个盒子上发表评论谈论100万个套接字连接的事实,但这个答案只谈了160万 - 因此它似乎有点像一个愚蠢的评论.Erlang很棒 - CouchDB的强大功能.但是,我不认为您的评论在这里有任何相关性.
100万单盒,见http://blog.whatsapp.com/index.php/2012/01/1-million-is-so-2011/
hahaha ... 1000万个连接http://highscalability.com/blog/2013/5/13/the-secret-to-10-million-concurrent-connections-the-kernel-i.html

2> Eddie..:

这不仅取决于所讨论的操作系统,还取决于配置,可能的实时配置.

对于Linux:

cat /proc/sys/fs/file-max

将显示允许同时打开的当前最大文件描述符数.查看http://www.cs.uwaterloo.ca/~brecht/servers/openfiles.html



3> gbjbaanb..:

万?70000?这就是全部 :)

FreeBSD可能就是你想要的服务器,这里有一篇关于调整它以处理100,000个连接的博客文章,它有一些有趣的功能,比如零拷贝套接字已经有一段时间了,还有kqueue作为完成端口机制.

Solaris可以在上个世纪处理100,000个连接!他们说linux会更好

我遇到的最好的描述是关于编写可伸缩的Web服务器的演示文稿/论文.他不怕说它就像:)

软件相同:应用层上的cretins强制在OS层上进行重大创新.由于Lotus Notes为每个客户端打开一个TCP连接,因此IBM为Linux的"一个进程,100.000个打开连接"案例做出了重大优化

O(1)调度程序最初是为了在一些不相关的Java基准测试中得分而创建的.最重要的是,这种膨胀使我们所有人受益.


我停在70,000,因为它超过了我的客户要求; 所以测试已经过去了.随着非分页池限制计算方式的变化,我认为Windows Server 2008机器对100,000个连接没有问题.

4> cmeerw..:

在Linux上,您应该考虑使用epoll进行异步I/O. 也许值得微调套接字缓冲区,以免每个连接浪费太多内核空间.

我猜你应该能够在合理的机器上达到100k连接.



5> teknopaul..:

在/ proc文件系统中可以配置打开套接字的数量限制

cat /proc/sys/fs/file-max

整数限制定义的操作系统中传入连接的最大值。

Linux本身允许数十亿个开放套接字。

要使用套接字,您需要侦听应用程序,例如Web服务器,并且每个套接字将使用一定数量的RAM。

RAM和CPU将引入实际限制。(现代,2017年,以百万计而非数十亿美元)

一百万是可能的,并不容易。预计将使用X千兆字节的RAM管理100万个套接字。

传出 TCP连接受每个IP的端口号〜65000限制。您可以有多个IP地址,但不能有无限个IP地址。这是TCP而非Linux的限制。

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有