ulimit 句柄數修改
ubuntu 16.04 ulimit
最近,網站一到高峰期,CPU就會飆升到100%,但內存,IO,網絡等一切正常,有可能是ulimit的問題,馬上查看文件句柄數限制
ulimit -n
得到的結果是:1024,這個值對生產中的服務顯得偏小。
網上給出的解決方案,大部分是直接輸入
ulimit -SHn 65535 # 65535可自己根據應用調整
此法缺點很明顯,一旦退出登陸,設置就失效了。
到一個正確的做法
1.打開/etc/security/limits.conf,追加:
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
重新啟動後發現ulimit -a 普通用戶已經更改為了65535 ,然後切換到root管理員賬戶後發現依然是1024,重啟操作是第一天下午做,下面的命令是第二天配置,
2.編輯/etc/pam.d/common-session,加入一行
session required pam_limits.so
3.編輯/etc/profile,加入這個只是正對當前用戶起作用,退出就沒有了。
ulimit -SHn 65535
後續又在 /etc/security/limits.conf中追加一行:
root - nofile 65535
經過測試,只是對root有效,而且根據資料顯示,root這個必須單獨一行~
因為root 是配置在visudo 中的:類似如下展示:
root ALL=(ALL:ALL) ALL
因為在visudo
最後 在root 賬號下
ulimit -n 65535,生效了。高興了,不用再重啟啟動了,因為這個機器安裝了200個docker容器。
然後ulimit -a 查看即可更改成功。
還有的人這樣做測試,然而我並沒有按照如下的方法去做。
# 修改 /etc/systemd/system.conf
DefaultLimitNOFILE=65535
DefaultLimitNPROC=65535
ulimit 句柄數修改