> Linux教程 > 系统运维 >

Linux零碎记录之ulimit【堆栈大小、stack size、进程数限制、文件句柄限制、linux用户空间限制】

 写了个小程序 本来打算写个hash表的,但是出现“段错误”

#include; 65536 
b、修改/usr/src/linux/include/linux/posix_types.h  
  #define __FD_SETSIZE 1024 --->; 65536 
2、修改/usr/src/linux/include/linux/fs.h 
  设置最大打开文件数量(TCP连接数量) 
  #define INR_OPEN 1024 --->; 65536 
  #define NR_FILE 8192 --->; 65536 
  #define NR_RESERVED_FILES 10 --->; 128 
3、修改/usr/src/linux/include/net/tcp.h 
  a、设置TIMEOUT的时间为1秒 
  #define TCP_TIMEWAIT_LEN (60*HZ) 60 --->; 1*HZ 
  b、设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上也是减少重试时间 
  #define TCP_SYNACK_RETRIES 5 --->; 3 
然后通过编译内核的方式来增加, 这样比ulimit 更直接修改内核参数.因为内核 是编译出来的.
  
  压力测试:
  yuan@yuan-desktop:~$ ab -n 30000 -c 5000 http://localhost/
This is ApacheBench, Version 2.0.40-dev  apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
  Benchmarking localhost [through 218.19.166.24:3129] (be patient)
socket: Too many open files (24)
提示出错 上网查到是socket系统默认为1024 大于该直就报错 修改.
  
  参考:http://www.chinaunix.net/jh/4/563088.html (责任编辑:IT)