Linux打開文件句柄/proc/sys/fs/file-max和ulimit -n的區別

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

  • hard 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

已分配文件句柄的數目     已使用文件句柄的數目      文件句柄的最大數目

相關文章
相關標籤/搜索