首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

刨根问底,看我如何处理 Too many open files 错误!

为了避免个别进程不受控制地打开了过多的文件而让整个服务器崩溃,Linux 对打开的文件描述符数量有限制。...如果超限,就报错 EMFILE (Too many open files)。 这里注意个小细节,那就是进程里的 fd 是一个从 0 开始的整数。...超过这个限制,返回错误 EMFILE (Too many open files)。...Linux之所以分两个参数来控制,那是因为 fs.nr_open 是系统全局的,而 nofile 则可以分用户来分别控制。 所以,现在我们可以得出第一个结论。...而 fs.nr_open 在一台 Linux 上只能配一次。 第二种,系统级别的,整个系统上可打开的最大文件数,具体参数是fs.file-max。但是这个参数不限制 root 用户。

2.3K20

刨根问底儿,看我如何处理 Too many open files 错误!

为了避免个别进程不受控制地打开了过多的文件而让整个服务器崩溃,Linux 对打开的文件描述符数量有限制。...如果超限,就报错 EMFILE (Too many open files)。 这里注意个小细节,那就是进程里的 fd 是一个从 0 开始的整数。...超过这个限制,返回错误 EMFILE (Too many open files)。...Linux之所以分两个参数来控制,那是因为 fs.nr_open 是系统全局的,而 nofile 则可以分用户来分别控制。 所以,现在我们可以得出第一个结论。...而 fs.nr_open 在一台 Linux 上只能配一次。 第二种,系统级别的,整个系统上可打开的最大文件数,具体参数是fs.file-max。但是这个参数不限制 root 用户。

85960

Linux源码看Socket(TCP)Client端的Connect

今天笔者就来从Linux源码的角度看下Client端的Socket在进行Connect的时候到底做了哪些事情。由于篇幅原因,关于Server端的Accept源码讲解留给下一篇博客。...(基于Linux 3.10内核) 一个最简单的Connect例子 int clientSocket; if((clientSocket = socket(AF_INET, SOCK_STREAM, 0)...if (nr >= current->signal->rlim[RLIMIT_NOFILE].rlim_cur) return -EMFILE; ...... } 这边的判断即是ulimit的限制...在这里返回-EMFILE对应的描述就是 "Too many open files" 第二个判断max_files超限 struct file *get_empty_filp(void) { ......重传的超时时间和 /proc/sys/net/ipv4/tcp_syn_retries 息息相关,Linux默认设置为5,建议设置成3,下面是不同设置的超时时间参照图。

68520
领券