Linux Linux下最大檔案描述符設定

2022-06-29 09:27:07 字數 2742 閱讀 4945

linux下最大檔案描述符設定

by:授客qq1033553122

1.

系統可開啟最大檔案描述符設定

檢視系統可開啟最大檔案描述符

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

65535

說明:所有程序開啟的檔案描述符數不能超過

/proc/sys/fs/file-max

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

# cat /proc/sys/fs/file-nr

1280 0 0 113986

說明:第乙個數表示當前系統已分配的檔案描述符數(檔案控制代碼數),第二個數為分配後已釋放的檔案描述符數(當前不再使用的檔案描述符數),第三個數為最大檔案描述符數,等於

file-max

。配置可開啟最大檔案描述符

a)永久配置

# vim /etc/sysctl.conf

在檔案尾新增如下內容(假設目標大小為

65535

):fs.file-max=65535

確保配置立即生效,執行以下命令

# sysctl -p

b)臨時配置

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

# sysctl fs.file-max #檢視

fs.file-max = 65530

或者# sysctl -w fs.file-max=65531

注:臨時配置,重啟後就失效了

2.

程序可開啟最大檔案描述設定

檢視程序可開啟最大檔案描述符: soft nofile

# ulimit -n

65535

配置程序可開啟最大檔案描述符

a)永久配置

新增帶背景色內容

# vim /etc/security/limits.conf

……(略)

#@student - maxlogins 4

* - nofile 65535

# end of file

或者如下

# vim /etc/security/limits.conf

……(略)

#@student - maxlogins 4

* soft nofile 65535

* hard nofile 65535

# end of file

說明:1

、- nofile 65535

表示同時配置

soft limit

和hard limit

2、只能在

hard limit

範圍內修改

soft limit

。如上,表示程序可開啟最大檔案描述符數的

soft limit

為65535

,hard limit

為65535

3、需要登出重新登入配置才會生效4、

/proc/sys/fs/nr_open

是單個程序可分配的最大檔案數,所以在我們使用

ulimit

或limits.conf

來配置hard limit

時,如果設定的值超過

/proc/sys/fs/nr_open

預設值1048576

需要先增大

nr_open

值(# vim /etc/sysctl.conf

,檔案末尾新增

nr_open

,形如fs.nr_open=100000000000)5

、對於非

root

使用者只能設定比原來小的

hard limit

。4.   

總結:b.   

單個程序開啟的檔案描述符數不能超過

user limit

中nofile

的soft limit

c.    nofile

的soft limit

不能超過其

hard limit

d.    nofile

的hard limit

不能超過

/proc/sys/fs/nr_open

修改Linux最大檔案描述符(最大檔案控制代碼數)

大家知道在linux伺服器大併發調優時,往往需要預先調優linux引數,其中修改linux最大檔案控制代碼數是最常修改的引數之一。root mongodb11 ulimit a core file size blocks,c 0 data seg size kbytes,d unlimited sc...

最大檔案開啟數

有些機器上,服務的tcp連線特別多,可能上100k 這時如果系統沒有優化好,就會出現too many open file的報錯 file max是核心可分配的最大檔案數 一般系統預設核心可分配的最大檔案數是記憶體 kb為單位 的10 左右 下面就是乙個4g的機器的資訊。cat proc sys fs...

Linux最大檔案開啟數

在linux下有時會遇到socket file can t open so many files的問題。其實linux是有檔案控制代碼限制的,而且linux預設一般都是1024 阿里雲主機預設是65535 在生產環境中很容易到達這個值,因此這裡就會成為系統的瓶頸。使用ulimit a 或者 ulim...