如何增加Linux中的打開文件數限制

?在Linux中,您可以更改打開文件的最大數量。您可以使用ulimit命令修改此數字。它授予您控制shell啟動的資源或由其啟動的進程的能力。

另請參閱:?按用戶級別設置Linux運行進程限制

在這個簡短的教程中,我們將向您展示如何檢查打開文件和文件描述的當前限制,但為此,您需要具有對系統的root訪問權限。

首先,讓我們看看我們如何找到Linux系統上打開的文件描述符的最大數量。

查找Linux打開文件限制

該值存儲在:

[root@localhost ~]# cat /proc/sys/fs/file-max?

483438

您將看到的數字顯示用戶每次登錄會話可以打開的文件數。結果可能會因系統而異。

例如,在我的CentOS服務器上,限制設置為483438,而在我在家運行的Ubuntu服務器上,默認限制設置為176772。

如果要查看硬限制和軟限制,可以使用以下命令:

檢查Linux中的硬限制

[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

如何在Linux中檢查系統范圍的文件描述符限制

如果您正在運行服務器,則某些應用程序可能需要更高的打開文件描述符限制。一個很好的例子是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

在Linux中設置用戶級別打開文件限制

上面的示例顯示了如何設置全局限制,但您可能希望對每個用戶應用限制。為此,作為root用戶,您需要編輯以下文件:

[root@localhost ~]# vi /etc/security/limits.conf

如果您是Linux管理員,我建議您熟悉該文件以及您可以對其執行的操作。閱讀其中的所有注釋,因為它通過限制不同級別的用戶/組來提供管理系統資源方面的極大靈活性。

您應添加的行采用以下參數:

<domain> <type> <item> <value>

以下是為用戶smgadmin設置軟硬限制的示例:

##最大打開文件的硬限制示例

* hard nofile 65536

##最大打開文件的軟限制示例

* soft nofile 65536

最后的想法

這篇簡短的文章向您展示了如何檢查和配置最大打開文件數的全局和用戶級別限制的基本示例。

雖然我們只是略微表面,但我強烈建議您對/etc/sysctl.conf和/etc/security/limits.conf進行更詳細的介紹和閱讀,并學習如何使用它們??傆幸惶焖麄儠δ阌泻艽蟮膸椭?。

關于運維學習、分享、交流,筆者開通了微信公眾號【運維貓】,感興趣的朋友可以關注下,歡迎加入,建立屬于我們自己的小圈子,一起學運維知識。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容