這篇文章主要為大家展示了“怎么在Linux服務器上設置ulimit和文件描述符數(shù)限制”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么在Linux服務器上設置ulimit和文件描述符數(shù)限制”這篇文章吧。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于網站建設、網站制作、貴州網絡推廣、小程序定制開發(fā)、貴州網絡營銷、貴州企業(yè)策劃、貴州品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供貴州建站搭建服務,24小時服務熱線:18982081108,官方網址:www.cdcxhl.com
要在 Linux 服務器上得到打開文件數(shù)的限制,請執(zhí)行以下命令,
[root@ubuntu ~]# cat /proc/sys/fs/file-max146013
上面的數(shù)字表明用戶可以在每個用戶登錄會話中打開 ‘146013’ 個文件。
[root@centos ~]# cat /proc/sys/fs/file-max149219[root@debian ~]# cat /proc/sys/fs/file-max73906
這清楚地表明,各個 Linux 操作系統(tǒng)具有不同的打開文件數(shù)限制。這基于各自系統(tǒng)中運行的依賴關系和應用程序。
顧名思義,ulimit
(用戶限制)用于顯示和設置登錄用戶的資源限制。當我們使用 -a
選項運行 ulimit
命令時,它將打印登錄用戶的所有資源限制?,F(xiàn)在讓我們在 Ubuntu/Debian 和 CentOS 系統(tǒng)上運行 ulimit -a
,
shashi@Ubuntu ~}$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 5731max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024 pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 8192cpu time (seconds, -t) unlimitedmax user processes (-u) 5731virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited
shashi@centos ~}$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 5901max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 8192cpu time (seconds, -t) unlimitedmax user processes (-u) 5901virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited
正如我們可以在這里看到的,不同的操作系統(tǒng)具有不同的限制設置。所有這些限制都可以使用 ulimit
命令進行配置/更改。
要顯示單個資源限制,可以在 ulimit
命令中傳遞特定的參數(shù),下面列出了一些參數(shù):
ulimit -n
–> 顯示打開文件數(shù)限制
ulimit -c
–> 顯示核心轉儲文件大小
umilit -u
–> 顯示登錄用戶的最大用戶進程數(shù)限制
ulimit -f
–> 顯示用戶可以擁有的最大文件大小
umilit -m
–> 顯示登錄用戶的最大內存大小
ulimit -v
–> 顯示最大內存大小限制
使用以下命令檢查登錄用戶打開文件數(shù)量的硬限制和軟限制:
shashi@Ubuntu ~}$ ulimit -Hn1048576shashi@Ubuntu ~}$ ulimit -Sn1024
讓我們假設我們的 Linux 服務器已經達到了打開文件的最大數(shù)量限制,并希望在系統(tǒng)范圍擴展該限制,例如,我們希望將 100000 設置為打開文件數(shù)量的限制。
root@ubuntu~]# sysctl -w fs.file-max=100000fs.file-max = 100000
上述更改將在下次重啟之前有效,因此要使這些更改在重啟后仍存在,請編輯文件 /etc/sysctl.conf
并添加相同的參數(shù),
root@ubuntu~]# vi /etc/sysctl.conffs.file-max = 100000
保存文件并退出。
運行下面命令,使上述更改立即生效,而無需注銷和重新啟動。
root@ubuntu~]# sysctl -p
現(xiàn)在驗證新的更改是否生效。
root@ubuntu~]# cat /proc/sys/fs/file-max100000
使用以下命令找出當前正在使用的文件描述符數(shù)量:
[root@ansible ~]# more /proc/sys/fs/file-nr1216 0 100000
注意:命令 sysctl -p
用于在不重新啟動和注銷的情況下提交更改。
/etc/sysctl.conf
文件用于設置系統(tǒng)范圍的資源限制,但如果要為 Oracle、MariaDB 和 Apache 等特定用戶設置資源限制,則可以通過 /etc/security/limits.conf
文件去實現(xiàn)。
示例 limits.conf
如下所示,
root@ubuntu~]# cat /etc/security/limits.conf
假設我們要為 linuxtechi 用戶設置打開文件數(shù)量的硬限制和軟限制,而對于 oracle 用戶設置打開進程數(shù)量的硬限制和軟限制,編輯文件 /etc/security/limits.conf
并添加以下行:
# hard limit for max opened files for linuxtechi userlinuxtechi hard nofile 4096# soft limit for max opened files for linuxtechi userlinuxtechi soft nofile 1024 # hard limit for max number of process for oracle useroracle hard nproc 8096# soft limit for max number of process for oracle useroracle soft nproc 4096
保存文件并退出。
注意:如果你想對一個組而不是用戶進行資源限制,那么也可以通過 limits.conf
文件,輸入 @<組名>
代替用戶名,其余項都是相同的,示例如下,
# hard limit for max opened files for sysadmin group@sysadmin hard nofile 4096 # soft limit for max opened files for sysadmin group@sysadmin soft nofile 1024
驗證新的更改是否生效:
~]# su - linuxtechi~]$ ulimit -n -H4096~]$ ulimit -n -S1024 ~]# su - oracle~]$ ulimit -H -u8096~]$ ulimit -S -u4096
注:其他主要使用的命令是 lsof,可用于找出“當前打開了多少個文件”,這命令對管理員非常有幫助。
以上是“怎么在Linux服務器上設置ulimit和文件描述符數(shù)限制”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!