查看系统级别的能够打开的文件句柄的数量
cat /proc/sys/fs/file-max
$cat/proc/sys/fs/file-max
临时性设置
$echo6553500> /proc/sys/fs/file-max
$sysctl -wfs.file-max=6553500
永久性设置:
$vim /etc/sysctl.conf
fs.file-max =6553500
查看所有进程打开文件描述符
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr
打开文件描述符top10
lsof -n|awk '{print$2}'|sort | uniq -c|sort -nr | head -n 10
查询某个进程
ps -aux|grep frp
lsof -n|awk '{print$2}'|sort | uniq -c|sort -nr | grep xxx
ulimit命令
ulimit -n
ulimit -Hn
ulimit -Sn
设置打开文件描述符
vim /etc/security/limits.conf
永久性设置:上面的方法只是临时性的,用户注销之后就会失效,而且不能增大hard limit,只能在hard limit范围内修改soft limit。若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),可添加如下两行内容,表示用户test最大打开文件描述符数的soft limit为20480,hard limit为40960。以下设置需要注销之后重新登录才能生效:
$vim /etc/security/limits.conf
test soft nofile 20480
test hard nofile 40960
如果要为所有用户进行配置,可以进行如下配置:
$vim /etc/security/limits.conf
* soft nofile 20480
* hard nofile 40960
一般企业中会让root用户和普通用户分开,参考配置如下:
$tail-4/etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
* soft nofile 20480
* hard nofile 40960
系统中单个进程最大打开文件描述符数
$cat/ proc/sys/fs/nr_open
临时性设置有两种方法如下:
$echo102400> /proc/sys/fs/nr_open
$sysctl -wfs.nr_open=102400
永久性设置:
$vim /etc/sysctl.conf
fs.nr_open =102400
查看当前系统已打开的文件描述符数
$cat /proc/sys/fs/file-nr
第一个数表示当前系统已分配使用的文件描述符数
第二个数为分配后已释放的,即目前已不再使用
第三个数等于file-max
总结
系统所有进程打开的文件描述符数总和不能超过/proc/sys/fs/file-max
系统中单个进程打开的文件描述符数不能超过/proc/sys/fs/nr_open
每个用户的单个用户进程打开的文件描述符数不能超过user limit中nofile的soft limit
每个用户的soft limit不能超过其hard limit
每个用户的hard limit不能超过/proc/sys/fs/nr_open
参考
https://www.cnblogs.com/juchangfei/p/12807595.html
网友评论