免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
打印 上一主题 下一主题

怎么通过重新编译内核让linux能承受10万个TCP连接呢? [复制链接]

论坛徽章:
0
71 [报告]
发表于 2005-10-27 21:39 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

还是想请高手什么时候给我们讲讲。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
72 [报告]
发表于 2005-10-27 22:27 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

做了多年的 Unix ,第一次学 Linux ,看来真的是落伍了.

期待高手指点!

论坛徽章:
0
73 [报告]
发表于 2005-10-27 23:28 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

难怪msn老死机,原来是搞得这么邪乎。

还是去研究负载均衡吧,不要都在一棵树上吊死。

论坛徽章:
0
74 [报告]
发表于 2005-10-28 06:16 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

原帖由 "北京野狼" 发表:


兄弟不是这么算的。
即便server仅仅监听80.当accept成功之后就产生一个新的socket。
iNewSock = accept(iSock,(struct sockaddr *)&client_addr,&len);
你可以看一下这个新的iNewSock的端口。。。。。。。。。..........

你说的这个不是我说的问题啊, 我只说了两个网卡就可以使连接数过10万了.  还有, 你若能在一个网卡上绑定两个或更多的IP的话, 那么一个网卡就行, 不过估计这时就要重编译内核了.

用 TCP 当然是accept 成功后就产生一个新的socket, 但fork一个新的进程则只是一种实现 server 的方式, 也可以是多线程的.  若处理简单的话, 你还可以在一个thread 内处理多个连接的

论坛徽章:
0
75 [报告]
发表于 2005-10-28 07:59 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

原帖由 "jato" 发表:

你说的这个不是我说的问题啊, 我只说了两个网卡就可以使连接数过10万了.  还有, 你若能在一个网卡上绑定两个或更多的IP的话, 那么一个网卡就行, 不过估计这时就要重编译内核了.

用 TCP 当然是accept 成功后就产..........

如果你说的是对的,那么你是说和 IP 有关,和网卡无关吧?
若一块网卡绑多 IP 也可以的话,那么双网卡做 bonding 应该也不行了哦

论坛徽章:
0
76 [报告]
发表于 2005-10-28 11:53 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

32位操作系统不可能承受 理论上 65535以上个链接的.因为Accept后,会返回一个65535以内的数作为于客户端通信的端口.虽然客户端connect的端口都是固定一个,但是每次accept成功后,都会对应再分配一个本地端口用来和客户通信,
如果非要从内核上支持理论上10万的访问量,必需修改套接字的所有相关函数.尤其是accept后打开的本地端口,一定不要在2的32次方范围内选择了.不过具体操作就并非那么简单了,也许你还要改变每台客户机上的 socket的实现.

金山的游戏服务器是1万个tcp链接.据说还是重写了tcp头,减少了传输量.
传奇伺服一般在5000个左右.QQ游戏,是通过群组的.
其实大传输量,大并发量的服务器都是通过群组实现的.

论坛徽章:
0
77 [报告]
发表于 2005-10-28 11:59 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

当然如果有100个网卡,说明可以有100个ip地址可以用.
那么运行100个服务器程序,每个程序用select模型作通信.不用fork .
那么一台机器确实可以有无数个客户端了,但是有什么意义吗?
楼主要的是学术方面的牛角呢.还是应用方面的良药呢.

论坛徽章:
0
78 [报告]
发表于 2005-10-28 12:01 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

如果是学术讨论,那很容易.
找个64位大型机.你说你想要多少客户端吧.

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
79 [报告]
发表于 2005-10-28 13:44 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

原帖由 "jato" 发表:

你说的这个不是我说的问题啊, 我只说了两个网卡就可以使连接数过10万了.  还有, 你若能在一个网卡上绑定两个或更多的IP的话, 那么一个网卡就行, 不过估计这时就要重编译内核了.

用 TCP 当然是accept 成功后就产..........


我是不知道楼主,想建立10w个连接干吗?
无论多进程还是多线程,10w个连接,设想一下要多少内存?
一个线程处理多个连接没有适用性。

BTW:做网络server,几乎没有使用多线程的。

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
80 [报告]
发表于 2005-10-28 13:47 |只看该作者

怎么通过重新编译内核让linux能承受10万个TCP连接呢?

这个可以供参考
http://bbs.chinaunix.net/forum/viewtopic.php?t=479047
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP