Linux最大開啟檔案描述符數

2021-08-09 22:45:48 字數 1748 閱讀 7998

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最大開啟檔案描述符數

標籤 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 10000...

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...