查看最大文件打開數 ulmit -a
臨時修改最大文件打開數 ulimit -n 修改數
永久生效 :修改config文件 ,至於是否需要重啟 未確定,網上有說要重啟的也有說不要重啟的 (我本機測試是不需要重啟的)
如果修改 ,重啟也不生效 則可以嘗試一下方法
我們使用CentOS系統,在部署新的服務經常會遇到 打開最大文件數限制 too many open files的警告,通常我們只需要修改/etc/security/limits.conf該文件,增加兩行,重新登錄下用戶即可解決,如下:
vim /etc/security/limits.conf
* soft nofile 60000 * hard nofile 65535
如果想要更細的控制粒度,可以在/etc/security/limits.d/90-nproc.conf對指定的用戶(以testuser為例)進行限制
vim /etc/security/limits.d/90-nproc.conf testuser - nofile 4096 # '-' 代表soft及hard都這樣進行設定 nginx - nofile 4096
但,當/etc/security/limits.conf修改后,任憑如何調整設置,甚至重啟主機都沒有生效,就要從以下幾個點進行排查了:
-
1、檢查/etc/ssh/sshd_config 中
UsePAM yes
選項是否開啟 -
2、檢查/etc/pam.d/system-auth 中是否存在
session required pam_limits.so
這一項 -
3、檢查/etc/pam.d/login 中是否將pam_limits.so文件被加入到啟動文件中存在
session required /lib64/security/pam_limits.so
這一項 -
解釋(1、2):
UsePAM yes
選項開啟后,表示啟用pam模塊,在/etc/pam.d/sshd中默認已存在一項session include password-auth
配置,include
表示需要password-auth
模塊需要通過認證,在/etc/pam.d/system-auth里還應該存在session required pam_limits.so
這一項,表示使用/etc/security/limits.conf這個配置 -
解釋(3):要讓limits.conf文件配置能夠生效,必須將pam_limits.so模塊文件加入到啟動文件中,故應在/etc/pam.d/login配置文件中添加
session required /lib64/security/pam_limits.so
這一項
排查后重新登錄一下用戶就可以生效了,如果還未生效就要逐個排查/etc/pam.d下相關連的文件是否將session required pam_limits.so
這一下項注釋或刪除了