最近接的项目是模拟多个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的连接数。

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

  1. Linux 释放socket资源,LwIP使用select,close socket资源释放不完全问题

    这篇文章本应该在4月就写好的,但是博客评论系统一直没有搭建好,走了很多弯路,现在好了,delay这么久,终于要要补过来了.自建博客:金宝的博客 该文章完全原创,除通用.广泛的知识点外,均为个人总结,如 ...

  2. 《精通Linux设备驱动程序开发》——1.7 编译内核

    本节书摘来自异步社区<精通Linux设备驱动程序开发>一书中的第1章,第1.7节,作者:[印]Sreekrishnan Venkateswaran(斯里克里斯汉 温卡特斯瓦兰)著,更多章节 ...

  3. Linux下socket最大连接数 ulimit -n 最大值修改

    转自:http://it.oyksoft.com/post/6346/ 请求多的Linux服务器,如不改最大打开文件数的话,那是一个悲剧~ 可以用命令 ulimit -n 看看当前最大可打开文件数 默 ...

  4. linux dev net tun,使用TUN / Bridge支持编译内核,但我找不到/ dev / net / tun

    来自tuntap的内核文档:http://www.mjmwired.net/kernel/Documentation/networking/tuntap.txt 36 2.配置 37创建设备节点: 3 ...

  5. Linux下高并发socket最大连接数所受的各种限制

    修改最大打开文件数 # ulimit -n 修改最大进程数 # ulimit -u ------------------------------------------------------ Lin ...

  6. linux socket文件数限制,Linux下高并发socket最大连接数所受的限制问题

    Linux下高并发socket最大连接数所受的限制问题1.修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时, 最高的并发数量都要受到系统对 ...

  7. linux中高并发socket最大连接数的优化详解

    这篇文章主要给大家介绍了关于linux中高并发socket最大连接数优化的相关资料,文中介绍的很详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起学习学习吧. 首先我们可以通过ulimit – ...

  8. Linux进程最大socket数,Linux下高并发socket最大连接数所受的各种限制(详解)

    1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...

  9. Linux下socket(select,epoll)

    1. Linuxsocket的简介 在linux支持select模式,poll模式,在内核2.6版本以后支持epoll模式: epoll模式的优点: A:支持进程打开的最大socket数据 B:IO效 ...

最新文章

  1. linux下卸载自带jdk,重新安装jre运行环境
  2. matlab中的timer模块,[转载]Matlab中Timer的使用
  3. 美团点评基于 Flink 的实时数仓建设实践
  4. [转载]freeSwitch基本操作(转载)
  5. 只开窗不镀锡_翡翠为什么要开窗??————开窗有哪几种?
  6. Oracle分区表 (二)
  7. c#中的23种设计模式
  8. 单元测试 代码里面都绝对路径怎么处理_原创 | 编写单元测试和实践TDD (六)测试哪些内容:Right-BICEP...
  9. Servlet3.0注解配置访问路径和urlParttern配置
  10. win10 Python开发环境搭建 PyCharm IDE安装
  11. [JSOI2009]球队收益
  12. 51CTO独家:2008下半年软考所有科目试题已到
  13. ap6212linux驱动下载,AP6212各个版本固件
  14. 计算机网络原理——传输层TCP协议的十个重要特性之保证可靠性的机制(确认应答和超时重传)
  15. 你的不自律,正在慢慢毁掉你
  16. Win7系统连接服务器经常掉线,win7网络经常掉线怎么办 win7网络不稳定如何解决...
  17. 精益看板方法从理论到实战 (7)—— 控制在制品数量(下)
  18. H5学习之旅-H5的基本标签(2)
  19. 老李分享:robotium常用API 1
  20. adb 重命名_ADB 基本命令

热门文章

  1. 光伏电站清扫机器人_光伏智能清扫机器人
  2. Mysql事务处理问题
  3. 【Socket网络编程】2.sockaddr 和 sockaddr_in
  4. Java虚拟机jvm 调优总结
  5. 从零开始学习jQuery (五) 事件与事件对象
  6. 解密优秀博士成长史 ——微软亚洲研究院首届博士生学术论坛Panel讨论经验总结
  7. K-means Algorithm 聚类算法
  8. 深度学习(十六)基于2-channel network的图片相似度判别-CVPR 2015
  9. 12306的变态验证码算得了什么?我有Python神器!
  10. Windbg/KD驱动调试点滴–将平时调试的一些小方法共享给大家 --------- 转