如何获取打开文件和文件描述符数量
1个回答
2016-09-02
展开全部
、linux的文件描述符
文件描述符(FD:file descriptors),也可以说是文件句柄,当某个程序打开文件时,内核返回相应的文件描述符,程序为了处理该文件必须引用此描述符。文件描述符是一个正整数,用以标明每一个被进程所打开的文件和socket。最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应,后面打开的文件依此类推对应3、4…… 。
linux系统对每个用户、进程、或整个系统的可打开文件描述符数量都有一个限制,一般默认为1024。当我们在系统或应用的日志中碰到“too many open files”错误记录时,这个其实不是说打开的文件过多,而是打开的文件描述符数量已达到了限制,这时就需要增加文件描述符的数量限制了。
1.1 获取系统打开的文件描述符数量
[root@localhost ~]# cat /proc/sys/fs/file-nr
1216 0 197787
//第一列 1216 :为已分配的FD数量
//第二列 0 :为已分配但尚未使用的FD数量
//第三列197787:为系统可用的最大FD数量
已用FD数量=为已分配的FD数量 - 为已分配但尚未使用的FD数量。注意,这些数值是系统层面的。
文件描述符(FD:file descriptors),也可以说是文件句柄,当某个程序打开文件时,内核返回相应的文件描述符,程序为了处理该文件必须引用此描述符。文件描述符是一个正整数,用以标明每一个被进程所打开的文件和socket。最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应,后面打开的文件依此类推对应3、4…… 。
linux系统对每个用户、进程、或整个系统的可打开文件描述符数量都有一个限制,一般默认为1024。当我们在系统或应用的日志中碰到“too many open files”错误记录时,这个其实不是说打开的文件过多,而是打开的文件描述符数量已达到了限制,这时就需要增加文件描述符的数量限制了。
1.1 获取系统打开的文件描述符数量
[root@localhost ~]# cat /proc/sys/fs/file-nr
1216 0 197787
//第一列 1216 :为已分配的FD数量
//第二列 0 :为已分配但尚未使用的FD数量
//第三列197787:为系统可用的最大FD数量
已用FD数量=为已分配的FD数量 - 为已分配但尚未使用的FD数量。注意,这些数值是系统层面的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询