首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > 新编译内核来修改进程打开的最大文件数和修改listen侦听队列
【标  题】:新编译内核来修改进程打开的最大文件数和修改listen侦听队列
【关键字】:listen
【来  源】:http://www.cublog.cn/u/7657/showart.php?id=125075

新编译内核来修改进程打开的最大文件数和修改listen侦听队列

用“ulimit -a”可以看到这些限制,如:
[root@HQtest root]# ulimit -a
core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) unlimited
max memory size       (kbytes, -m) unlimited
open files                    (-n) 1024
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 8192
cpu time             (seconds, -t) unlimited
max user processes            (-u) 2047
virtual memory        (kbytes, -v) unlimited
用ulimit –n  10240  修改打开的文件数目变为 10240
虽然使用ulimit –a 可以看到变为10240,但是我在做压力测试的时候,当超过1024个用户时,服务就会down机。
最后只有重新编译了内核,编译内核后一切OK!
操作方法如下:
不同的Linux内核版本有不同的调整方法, 
在Linux内核2.2.x中可以用如下命令修改:

  # echo '8192' >; /proc/sys/fs/file-max
  # echo '32768' >; /proc/sys/fs/inode-max
  
并将以上命令加到/etc/rc.c/rc.local文件中,以使系统每次重新启动时配置以上值。

在Linux内核2.4.x中需要修改源代码,然后重新编译内核才生效。编辑Linux内核源代码中的 include/linux/fs.h文件,
将 NR_FILE 由8192改为 65536,将NR_RESERVED_FILES 由10 改为 128。编辑fs/inode.c 文件将 MAX_INODE 由16384改为262144。

一般情况下,最大打开文件数比较合理的设置为每4M物理内存256,比如256M内存可以设为16384,
而最大的使用的i节点的数目应该是最大打开文件数目的3倍到4倍。

操作过程:
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侦听队列,设大。
 
   以上为修改过程,编译过程略...........
ASCII与16进制转换:【上一篇】
setpriority(设置程序进程执行优先权):【下一篇】
【相关文章】
  • Listen to English - Learn English
  • 在一台机器配置两个listener(Oracle)
  • listener和instance的启动顺序
  • listener.ora--sqlnet.ora--tnsnames.ora的关系以及手工配置举例
  • Managing Listeners with lsnrctl
  • vsftp:500 OOPS: could not bind listening IPv4 socket 解决办法
  • SWT的PaintListener
  • 使用自定义的TraceListener
  • 重新编译内核来修改进程打开的最大文件数和修改listen侦听队列
  • 关于OracleOrahome91TNSListener无法启动的问题?
  • 【随机文章】
  • 矩阵转置(C)
  • 配置专用或交互式PPP与SLIP对话
  • 将八卦进行到底
  • 在RH9下访问Windows分区和USB接口移动硬盘(u盘)
  • IIS Server Application Error 错误的解决
  • 阴阳历相互转换SHELL SCRIPT
  • 数组函数 array_map
  • [MYsql和MSsql的数据库转换]z
  • 预言中国(四)文凭二十年内成废纸!
  • 了解IEEE 802.11x:选择适合你的无线网络
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.