测试机器ubuntu14.04,内存16G,i7八核处理器
几经测试发现在连接socket时候经常爆出max open files的错误,很显然是打开句柄不够用。
一般机子是不需要高并发 ,所以对于系统默认参数是不够用的。需要修改本机系统参数
在终端敲入指令ulimit -a 查看默认参数
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 127761
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
发现open files数少的可怜,只有1024,这时候通过sudo vi /etc/security/limit.conf
在文件加入
* soft noproc 120961
* hard noproc 120961
* soft nofile 120961
* hard nofile 120961
只要soft软限制不要大于硬限制就行
然后保存.这只是对与同一时间打开文件数,还需要修改限制总文件数的大小
通过修改 /etc/sysctl.conf
fs.file-max=1048576 最大打开文件数
net.ipv4.ip_local_port_range = 1024 65535 客户端连接分配临时端口,这样可以保证可以连接六万多客户端
执行sysctl -p ,配置生效。
接下来客户端运行环境就配置好了。