在Linux中,您能夠更改打開文件的最大數量。您可使用ulimit命令修改此數字。它授予您控制shell啓動的資源或由其啓動的進程的能力。web
另請參閱: 按用戶級別設置Linux運行進程限制shell
在這個簡短的教程中,咱們將向您展現如何檢查打開文件和文件描述的當前限制,但爲此,您須要具備對系統的root訪問權限。服務器
首先,讓咱們看看咱們如何找到Linux系統上打開的文件描述符的最大數量。dom
該值存儲在:ide
[root@localhost ~]# cat /proc/sys/fs/file-max spa
483438orm
您將看到的數字顯示用戶每次登陸會話能夠打開的文件數。結果可能會因系統而異。教程
例如,在個人CentOS服務器上,限制設置爲483438,而在我在家運行的Ubuntu服務器上,默認限制設置爲176772。進程
若是要查看硬限制和軟限制,可使用如下命令:ci
[root@localhost ~]# ulimit -Hn
65536
檢查Linux中的軟限制
[root@localhost ~]# ulimit -Sn
65536
要查看不一樣用戶的硬值和軟值,您只需將用戶「su」切換到限制您要檢查的用戶便可。
例如:
[root@localhost ~]# su - smgadmin
上一次登陸:五 7月 26 22:21:47 CST 2019pts/0 上
[smgadmin@localhost ~]$ ulimit -Sn
65536
[smgadmin@localhost ~]$ ulimit -Hn
65536
096
若是您正在運行服務器,則某些應用程序可能須要更高的打開文件描述符限制。一個很好的例子是MySQL / MariaDB服務或Apache Web服務器。
您能夠經過編輯內核指令來增長Linux中打開文件的限制 fs.file-max。爲此,您可使用sysctl實用程序。
Sysctl用於在運行時配置內核參數。
例如,要將打開文件限制增長到 500000,能夠以root身份使用如下命令:
[root@localhost ~]# sysctl -w fs.file-max=500000
fs.file-max = 500000
您可使用如下命令檢查已打開文件的當前值:
[root@localhost ~]# cat /proc/sys/fs/file-max
500000
使用上述命令,您所作的更改將僅在下次從新引導以前保持活動狀態。若是您但願永久應用它們,則必須編輯如下文件:
[root@localhost ~]# vi /etc/sysctl.conf
添加如下行:
fs.file-MAX = 500000
固然,您能夠根據須要更改數量。要再次驗證更改,請使用:
cat /proc/sys/fs/file-max
用戶須要註銷並再次登陸才能使更改生效。若是要當即應用限制,可使用如下命令:
sysctl -p
上面的示例顯示瞭如何設置全侷限制,但您可能但願對每一個用戶應用限制。爲此,做爲root用戶,您須要編輯如下文件:
[root@localhost ~]# vi /etc/security/limits.conf
若是您是Linux管理員,我建議您熟悉該文件以及您能夠對其執行的操做。閱讀其中的全部註釋,由於它經過限制不一樣級別的用戶/組來提供管理系統資源方面的極大靈活性。
您應添加的行採用如下參數:
<domain> <type> <item> <value>
如下是爲用戶smgadmin設置軟硬限制的示例:
##最大打開文件的硬限制示例
* hard nofile 65536
##最大打開文件的軟限制示例
* soft nofile 65536
這篇簡短的文章向您展現瞭如何檢查和配置最大打開文件數的全局和用戶級別限制的基本示例。