您当前的位置: 首页 >  linux

phymat.nico

暂无认证

  • 4浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

增大Linux的socket最大连接数(针对select,要编译内核)

phymat.nico 发布时间:2015-03-06 11:14:27 ,浏览量:4

最近接的项目是模拟多个socket 客户端与服务器进行通信。由于Linux 系统的限制,在linux/include/linux/posix_types.h文件中有如下的宏定义: #undef __FD_SETSIZE #define __FD_SETSIZE 1024 这个宏是对最大文件描述符的定义为1024。当需要1024个以上的fd时,例如select()函数就会侦听出错。因此需要将1024改成需要的数目,但最多不能超过65535。但仅仅修改这个是不够的。 第二步就需要修改一个进程最大打开的文件数。其具体步骤是: 1、cd /usr/src/linux-2.4/include/linux 2、vi limits.h 编辑文件: #define NR_OPEN 90240 原值为1024 #define OPEN_MAX 10240 原值为1024 3、vi fs.h #define INR_OPEN 10240 原值为1024 #define NR_FILE 65536 原值为8192,这个值为内存64/1M的比率计算,1G内存计算为:64*1024 #define NR_RESERVED_FILES 128 原值为10. 4、cd /usr/src/linux-2.4/include/net 5、vi tcp.h #define TCP_LHTABLE_SIZE 128 原值为32.便于listen侦听队列,设大。 设置最大打开文件数与内存相关,太大系统会变慢。 第三步就是编译内核,其具体步骤是: 1. make clean 2. make 3. make dep 4. make bzImage 将bzImage 导入/boot 重启系统即可! 用 1024个以上客户端与服务器进行连接,在服务器的终端用netstat |wc 命令可以统计出当前建立的socket的连接数。
关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0436s