免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
41 [报告]
发表于 2005-10-14 17:10 |只看该作者

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

原帖由 "albcamus" 发表:


何谓不可分页? 如果做DMA用,要求物理上是连续的,不能向vmalloc申请来的那样,可以物理上不连续。即使是这样,已然是分页的,因为页就是内核管理内存的基本单位。kmalloc调用slab分配器,slab分配器调用谁?还?.........

英文直译就是这样的,这个页的意思不是你说的物理内存页。Linux kernel is not pageable,诸如此类,英文大家都是这么说的,很少用swapable之类的,swapable是热插拔。

论坛徽章:
0
42 [报告]
发表于 2005-10-14 17:27 |只看该作者

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

>;>;swapable是热插拔

热插拔不是Hotplug吗?

论坛徽章:
0
43 [报告]
发表于 2005-10-14 17:34 |只看该作者

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

原帖由 "albcamus" 发表:
>;>;swapable是热插拔

热插拔不是Hotplug吗?

Hotplug是名词,pageable正确中文翻译是“可调[分]页”

论坛徽章:
0
44 [报告]
发表于 2005-10-15 15:34 |只看该作者

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

俺是菜鸟,俺来发言,其实各位大虾讨论的都是机器在性能上或者是理论上能否实现的问题,但是我个人认为,搂主的目的只是想知道在哪里修改这个值,至于修改了以后能不能达到这么多或者是能不能正常的运行都无所谓,先要知道在哪里修改的,就像修改apache的连接一样,可以设置成10万,实际上根本达不到10万机器肯定就挂了,挂不挂是一回事,反正是改成10万了。

论坛徽章:
0
45 [报告]
发表于 2005-10-17 16:15 |只看该作者

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

到现在才发现楼主好象没分清客户端和服务器端的不同,作为服务器,单一个端口就可以支持N个TCP连接,看看sina一般不就是给你一个80口么?google也只是提供一个80口啊,十万个算什么?但客户端就不同了socket只是从1024---65535给你分配端口,这些端口一般是不重复使用的,而作为服务器的端口是可以重复使用的.

论坛徽章:
0
46 [报告]
发表于 2005-10-17 17:24 |只看该作者

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

内核一般不使用分页管理的机制,大概的意思是核心有很大一部分的内存是预先分配的,这部分物理内存是私有财产,永不放弃的,而且用途已经固定,但并不是说核心的内存是不变的,现在的OS应该都可以和页面级内存分配器交换物理内存页,比如核心发现物理内存不够用,它会向物理内存分配器申请物理内存,以页为最小单位,并映射到内核空间,slab分配器只是核心的内存分配器,为核心的数据结构/变量分配内存.slab向物理内存分配器申请物理内存页,它也有向页面级内存分配器返还物理内存页的功能.也就是说内核在引导的时候分配了一部分物理内存,剩下的物理内存以页为单位由一内存管理机构管理,slab或用户进程都从它那里申请物理内存.
核心使用的动态分配的页内存只有通过内核的内存分配器(如slab)释放回去,不会被交换的.

论坛徽章:
0
47 [报告]
发表于 2005-10-17 17:31 |只看该作者

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

我以前做过服务器开发,但是并不敢说精通,只是觉得在服务器端都有连接数的限制,觉得不爽,想知道怎么能增加,bhpang2兄弟说的google也只提供一个80端口,这个是没错啊,但是它也会有连接数的限制啊,并不是说无限,http服务尚且如此,更别说别的服务了。我只是听朋友说qq那边的服务器可以实现十万以上连接数,想知道怎么能实现,好奇。所以想向大家讨教。

论坛徽章:
0
48 [报告]
发表于 2005-10-17 17:35 |只看该作者

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

象我知道的很多游戏服务器连接数支撑就很少,我知道有一款国产网络游戏单台服务器能支撑300个连接,如果一多的话就当掉了。这个并不是连接数的问题,而且别的资源的问题。

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
49 [报告]
发表于 2005-10-17 18:02 |只看该作者

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

[quote]原帖由 "尘归尘土归土"]我以前做过服务器开发,但是并不敢说精通,只是觉得在服务器端都有连接数的限制,觉得不爽,想知道怎么能增加,bhpang2兄弟说的google也只提供一个80端口,这个是没错啊,但是它也会有连接数的限制啊,并不是说无限

论坛徽章:
0
50 [报告]
发表于 2005-10-17 18:06 |只看该作者

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

呵呵,原来如此,qq好象是居于UDP的吧,如果这样就比TCP的简单多了.UDP是无状态的协议,不应该说是实现十万以上连接数,说TCP才说连接,好象是这样的吧.
我没做过程序.socket差不多忘光了,大概应该提供一个进程池,里面有N个服务进程在等待工作,想想真象去夜总会啊,大厅里有N个小姐就象服务进程,客人来了,小姐就会为你服务,但是如果小姐很多也很累,都在睡觉,如果只来了一个客人也要惊动所有的小姐,那就不太好(唤醒太多的进程成本很高),最好只是只叫醒一个小姐就可以了,于是这个环节要采用某些办法保证一次只叫醒一个小姐来服务.程序也大概如此实现吧.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP