Linux最大檔案開啟數

2022-06-10 06:21:08 字數 2411 閱讀 5080

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

使用ulimit -a 或者 ulimit -n

open files (-n) 1024 是linux作業系統對乙個程序開啟的檔案控制代碼數量的限制(也包含開啟的套接字數量)

這裡只是對使用者級別的限制,其實還有個是對系統的總限制,檢視系統匯流排制:

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

man proc,可得到file-max的描述:

也就是說,這項引數是系統級別的。

臨時生效:

# ulimit -shn 10000

其實ulimit 命令身是分軟限制和硬限制,加-h就是硬限制,加-s就是軟限制。預設顯示的是軟限制,如果執行ulimit 命令修改時沒有加上-h或-s,就是兩個引數一起改變。

軟限制和硬限制的區別?

硬限制就是實際的限制,而軟限制是警告限制,它只會給出警告。

永久生效

要想ulimits 的數值永久生效,必須修改配置檔案/etc/security/limits.conf 

在該配置檔案中新增

* soft nofile 65535   

* hard nofile 65535  

echo "* soft nofile 65535"  >> /etc/security/limits.conf

echo "* hard nofile 65535"  >> /etc/security/limits.conf

* 表示所用的使用者

修改系統總限制

其實上的修改都是對乙個程序開啟的檔案控制代碼數量的限制,我們還需要設定系統的總限制才可以。

假如,我們設定程序開啟的檔案控制代碼數是1024 ,但是系統匯流排制才500,所以所有程序最多能開啟檔案控制代碼數量500。從這裡我們可以看出只設定程序的開啟檔案控制代碼的數量是不行的。所以需要修改系統的總限制才可以。

echo  6553560 > /proc/sys/fs/file-max

上面是臨時生效方法,重啟機器後會失效;

永久生效方法:

修改 /etc/sysctl.conf, 加入

fs.file-max = 6553560 重啟生效

unixfbi 運維** www.unixfbi.com

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

使用ulimit -a 或者 ulimit -n

open files (-n) 1024 是linux作業系統對乙個程序開啟的檔案控制代碼數量的限制(也包含開啟的套接字數量)

這裡只是對使用者級別的限制,其實還有個是對系統的總限制,檢視系統匯流排制:

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

man proc,可得到file-max的描述:

也就是說,這項引數是系統級別的。

臨時生效:

# ulimit -shn 10000

其實ulimit 命令身是分軟限制和硬限制,加-h就是硬限制,加-s就是軟限制。預設顯示的是軟限制,如果執行ulimit 命令修改時沒有加上-h或-s,就是兩個引數一起改變。

軟限制和硬限制的區別?

硬限制就是實際的限制,而軟限制是警告限制,它只會給出警告。

永久生效

要想ulimits 的數值永久生效,必須修改配置檔案/etc/security/limits.conf 

在該配置檔案中新增

* soft nofile 65535   

* hard nofile 65535  

echo "* soft nofile 65535"  >> /etc/security/limits.conf

echo "* hard nofile 65535"  >> /etc/security/limits.conf

* 表示所用的使用者

修改系統總限制

其實上的修改都是對乙個程序開啟的檔案控制代碼數量的限制,我們還需要設定系統的總限制才可以。

假如,我們設定程序開啟的檔案控制代碼數是1024 ,但是系統匯流排制才500,所以所有程序最多能開啟檔案控制代碼數量500。從這裡我們可以看出只設定程序的開啟檔案控制代碼的數量是不行的。所以需要修改系統的總限制才可以。

echo  6553560 > /proc/sys/fs/file-max

上面是臨時生效方法,重啟機器後會失效;

永久生效方法:

修改 /etc/sysctl.conf, 加入

fs.file-max = 6553560 重啟生效

Linux最大檔案開啟數

linux作業系統對乙個程序開啟的檔案控制代碼數量的限制 也包含開啟的套接字數量 臨時生效 ulimit shn 10000 其實ulimit 命令身是分軟限制和硬限制,加 h就是硬限制,加 s就是軟限制。預設顯示的是軟限制,如果執行ulimit 命令修改時沒有加上 h或 s,就是兩個引數一起改變。...

最大檔案開啟數

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

修改linux最大檔案控制代碼數

大家知道在linux伺服器大併發調優時,往往需要預先調優linux引數,其中修改linux最大檔案控制代碼數是最常修改的引數之一。在linux中執行ulimit a 即可查詢linux相關的引數,如下所示 root mongodb11 ulimit a core file size blocks,c...