liinux 文件描述符問題 limit

參考:
https://www.jianshu.com/p/8fb056e7b9f8
centos7內核參數:http://smilejay.com/2016/06/centos-7-systemd-conf-limits/
總結:

  1. 是分操作系統的,centos6 和 centos7的處理方法是不一樣的
  2. 很多的參數生效的範圍是不一樣的

涉及的參數
ulimit其實就是對單一程序的限制,進程級別的
file-max是所有時程最大的文件數
nr_open是單個進程可分配的最大文件數 (這個夠大了)

查看方式:
ulimit -n
cat /proc/sys/fs/nr_open
cat /proc/sys/fs/file-max

查看進程下的最大文件描述符是多少?是否生效了?
cat /proc/PID/limits

liinux 文件描述符問題 limit

一般只要更改ulimit和file-max:
ulimit和file-max 更改方式:

臨時更改方式:

ulimit -n 102400
echo 102400 > /proc/sys/fs/file-max

永久更改方式(更改文件):

/etc/security/limits.conf 或者 /etc/security/limits.d/ 目錄下的*.conf文件
liinux 文件描述符問題 limit

echo "fs.file-max = 102400" >> /etc/sysctl.conf

關於centos7 要做特殊的更改因爲由使用Systemd替代了之前的SysV 所以,limit的配置對centos7的服務不生效

在單個進程下更改 某個服務的如: /usr/lib/systemd/system/nginx.service 增加文件描述符相關配置

[Service]
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=100000

常見報錯:
socket: too many open files

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章