写了个小程序 本来打算写个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) |