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

文件描述符是针对整个系统的全局变量还是 针对单个进程的变量?
如果是针对单个进程, 一个父进程下面有2个子进程, 拿能打开的文件描述符是不是65536*2?

------解决方案--------------------
文件描述符的限制是针对单个进程的。
ulimit -a或者ulimit -n 可以查看到系统当前单个进程可以打开的文件描述符。
父进程 + 子进程 能打开的是单个进程的2倍。

------解决方案--------------------
网络开发端口只有65536个,一个进程跑1万个fd就差不多跑满cpu了

------解决方案--------------------
  是针对单个进程而言的!

举个简单例子:服务端 一个进程用来等待客户端的连接,一个进程用来接收客户端的信息
这个情况下:一个在等待客户端连接的进程了,最好关闭客户端连接返回的套接字,
在接收客户端进程里,最好就关闭服务端自己socket的时候返回的套接字!
这里有利于套接字的回收利用!每个进程创建的套接字都是有限的!