Linux系統的最大文件句柄數(打開文件數,Linux下一切皆文件,這裏僅做類比句柄描述),系統默認是1024。用ulimit -n進行查看。當存在句柄泄露沒有釋放時,系統會報錯:Too many open files。
查看進程打開的文件句柄數量
# lsof -n | awk '{print $2}'| sort | uniq -c | sort -nr | grep 過濾條件
其中第一列是打開的句柄數,第二列是進程ID。
一般用法是: lsof -c KeyWord
修改linux的最大文件句柄數限制的方法:
1)ulimit -n 65535
在當前session有效,用戶退出或者系統重新後恢復默認值
2)修改profile文件:在profile文件中添加:ulimit -n 65535
只對當個用戶有效
3)修改文件:/etc/security/limits.conf,在文件中添加:(立即生效-當前session中運行ulimit -a命令無法顯示)
* soft nofile 32768 #限制單個進程最大文件句柄數(到達此限制時系統報警)
* hard nofile 65536 #限制單個進程最大文件句柄數(到達此限制時系統報錯)
4)修改文件:/etc/sysctl.conf。在文件中添加:
fs.file-max=655350 #限制整個系統最大文件句柄數
運行命令:/sbin/sysctl -p使配置生效