Linux最大開啟檔案描述符數

2021-07-11 05:17:51 字數 1857 閱讀 1777

標籤: 

linux

最大檔案描述符

2013-10-28 19:34 

12959人閱讀

收藏舉報

linux(3)

1.    

系統最大開啟檔案描述符數:/proc/sys/fs/file-max

a.    檢視

$ cat /proc/sys/fs/file-max

186405

2. 設定

a.    

臨時性

# echo 1000000 > /proc/sys/fs/file-max

2.    

永久性:在/etc/sysctl.conf中設定

fs.file-max = 1000000

2.    

程序最大開啟檔案描述符數:user limit中nofile的soft limit

a.    檢視

$ ulimit -n

1700000

2. 設定

a.    

臨時性:通過ulimit -sn設定最大開啟檔案描述符數的soft limit,注意soft limit不能大於hard limit(ulimit -hn可檢視hard limit),另外ulimit -n預設檢視的是soft limit,但是ulimit -n 1800000則是同時設定soft limit和hard limit。對於非root使用者只能設定比原來小的hard limit。

檢視hard limit:

$ ulimit -hn

1700000

設定soft limit,必須小於hard limit:

$ ulimit -sn 1600000

2.    

永久性:上面的方法只是臨時性的,登出重新登入就失效了,而且不能增大hard limit,只能在hard limit範圍內修改soft limit。若要使修改永久有效,則需要在/etc/security/limits.conf中進行設定(需要root許可權),可新增如下兩行,表示使用者chanon最大開啟檔案描述符數的soft limit為1800000,hard limit為2000000。以下設定需要登出之後重新登入才能生效:

chanon           soft    nofile          1800000

chanon           hard   nofile          2000000

設定nofile的hard limit還有一點要注意的就是hard limit不能大於/proc/sys/fs/nr_open,假如hard limit大於nr_open,登出後無法正常登入。可以修改nr_open的值:

# echo 2000000 > /proc/sys/fs/nr_open

3.    

檢視當前系統使用的開啟檔案描述符數

[root@localhost bin]# cat /proc/sys/fs/file-nr

5664        0        186405

其中第乙個數表示當前系統已分配使用的開啟檔案描述符數,第二個數為分配後已釋放的(目前已不再使用),第三個數等於file-max。

4.    

總結:

a.    

所有程序開啟的檔案描述符數不能超過/proc/sys/fs/file-max

b.    

單個程序開啟的檔案描述符數不能超過user limit中nofile的soft limit

c.    

nofile

的soft limit不能超過其hard limit

d.    

nofile

的hard limit不能超過/proc/sys/fs/nr_open

Linux最大開啟檔案描述符數

1.系統最大開啟檔案描述符數 proc sys fs file max a.檢視 cat proc sys fs file max 186405 2.設定 a.臨時性 echo 1000000 proc sys fs file max 2.永久性 在 etc sysctl.conf中設定 fs.fi...

Linux最大開啟檔案描述符數

1.系統最大開啟檔案描述符數 proc sys fs file max a.檢視 cat proc sys fs file max 186405 2.設定 a.臨時性 echo 1000000 proc sys fs file max 2.永久性 在 etc sysctl.conf中設定 fs.fi...

Linux最大開啟檔案描述符數

1.系統最大開啟檔案描述符數 proc sys fs file max a.檢視 cat proc sys fs file max 186405 2.設定 a.臨時性 echo 1000000 proc sys fs file max 2.永久性 在 etc sysctl.conf中設定 fs.fi...