日期:2014-05-16  浏览次数:20751 次

文件描述符是一个整数, 那一台服务器是不是最多只能支持65535个连接?
每个连接都会打开一个文件描述符, 那打开连接最大数就是65536? 
但是不少人又说不是.

------解决方案--------------------
这个数值本没有上限, 因为Int fd,只与int大小有关。

你可以优化参数把fd的软硬限制都提高到几十万。
------解决方案--------------------
引用:
文件描述符是针对整个系统的全局变量还是 针对单个进程的变量?

当然是进程的变量了。
------解决方案--------------------
对文件描述符的限制有 2 方面:
1. 用户级的限制
   ulimit -n
2. 系统级的限制
   sysctl 的 fs.file-max
这 2 个值都是可以修改的。
另外,文件描述符都是进程内的变量,也就是说,两个进程可以打开同一份文件,分别读写,如果没有任何保护,那么数据有可能错乱,这就是文件锁的由来。