简单修改Linux系统文件描述符限制(Too many open files)

来源:互联网 发布:unity3d培训多少钱蓝鸥 编辑:程序博客网 时间:2024/04/30 08:06
在Linux下实现高并发服务器,默认的文件描述符限制会导致socket的EMFILE(24)错误,该错误描述为"Too many open files"。

查看当前所有限制:
# ulimit -a
[cpp] view plaincopy
  1. <span style="font-size:18px;">core file size          (blocks, -c) 0  
  2. data seg size           (kbytes, -d) unlimited  
  3. scheduling priority             (-e) 0  
  4. file size               (blocks, -f) unlimited  
  5. pending signals                 (-i) 15029  
  6. max locked memory       (kbytes, -l) 64  
  7. max memory size         (kbytes, -m) unlimited  
  8. open files                      (-n) 1024  
  9. pipe size            (512 bytes, -p) 8  
  10. POSIX message queues     (bytes, -q) 819200  
  11. real-time priority              (-r) 0  
  12. stack size              (kbytes, -s) 10240  
  13. cpu time               (seconds, -t) unlimited  
  14. max user processes              (-u) 1024  
  15. virtual memory          (kbytes, -v) unlimited  
  16. file locks                      (-x) unlimited</span>  

单独查看文件描述符:
# ulimit -n
1024

当前终端环境的fd限制修改,仅限于本终端:
# ulimit -n 65535
# ulimit -n  //查看设置后的值

查看系统最大文件描述符:
# cat /proc/sys/fs/file-max
190948

查看系统当前使用的描述符:
# cat /proc/sys/fs/file-nr
5440    0       190948

永久生效的设置方法:
在/etc/profile文件后,添加"ulimit -n 65535" (填入你想要的值,该值要小于系统最大限制file-max)
懒人命令:
# echo 'ulimit -n 65535'  >> /etc/profile; source /etc/profile
0 0
原创粉丝点击