max-file 表示系統級別的可以打開的文件句柄的數量。是對整個系統的限制,並非針對用戶的。
ulimit -n 控制進程級別可以打開的文件句柄的數量。提供對shell及其啓動的進程的可用文件句柄的控制。這是進程級別的。linux
對於服務器來講,file-max和ulimit都須要設置,不然會出現文件描述符耗盡的問題。
通常若是遇到文件句柄達到上限時,會碰到"Too many open files"或者Socket/File: Can’t open so many files等錯誤。shell
爲了讓服務器重啓以後,配置仍然有效,須要用永久生效的配置方法進行修改。
max-file:vim
查看系統級別的可以打開的文件句柄的數量,Centos7默認是794168
#cat /proc/sys/fs/file-max服務器
794168session
系統級打開最大文件句柄的數量永久生效的修改方法,修改文件,文件末尾加入配置內容:
#vim /etc/sysctl.confide
fs.file-max = 2000000進程
而後執行命令,使修改配置當即生效:
#sysctl -p同步
ulimit:it
查看用戶進程級的可以打開文件句柄的數量,Centos7默認是1024
這裏設置的是當前shell的當前用戶的打開的最大限制,若是當前用戶打開多個shell,則每一個shell都能打開該最大值io
#ulimit -n
1024
進程級打開文件句柄數量永久生效的修改方法,修改文件,文件末尾加入配置內容:
這裏限制一個用戶的全部shell能打開的最大數:
#vim /etc/security/limits.conf
soft nofile 65535
修改之後,須要從新登陸才能生效。
若是須要設置當前用戶session當即生效,還須要執行:
#ulimit -n 65535
對於服務器,通常修改進程級的最大打開文件句柄數便可(系統默認1024,有點小)。通常不須要調整系統級的最大數。
若是出現了達到系統級別最大限制時,也須要同步調整系統級的最大數的。
linux 中數據的含義 /proc/sys/fs/file-nr
[root@localhost logs]# cat /proc/sys/fs/file-nr
2112 0 2100000
已分配文件句柄的數目 已使用文件句柄的數目 文件句柄的最大數目