線上幾台APACHE服務器報過三、四次open files的問題,導致服務不可用,執行ulimit -n 查看后,發現是默認的1024,找到原因所在了,就去修改下/etc/security/limits.conf吧:
* soft nofile 65535 * hard nofile 65535
- 1
- 2
重新登錄系統,再次執行ulimit -n后發現,還是1024!!!WTF!!!!
百度不得其解,翻出去后又大部分都是英文,苦苦翻譯半天還是沒有得到答案,搭建測試環境,用相同的系統版本來測試,發現問題消失了!
然后就查各種關於linux關於open files的東西,幾乎都在說是沒有加入/etc/pam.d/目錄下的文件沒有limits.so這個庫文件的原因,但是對比測試環境和線上環境,是一樣的!突然想到了PAM這個東西,之前修改/etc/ssh/sshd_config這個文件的時候看到過UsePAM這個東西,但是一直沒有注意是干什么用的,對比兩個文件后發現,線上的UsePAM是注釋掉的:
#UsePAM yes
- 1
去掉注釋,重啟sshd,竟然報錯了,提示unsupport PAM,比較了兩個環境下的openssh版本,線上的環境版本比較低,果斷升級,重啟 sshd服務,
重新登錄,終於生效了。