limux文件描述符

2023-05-18  本文已影响0人  明明就_c565

查看系统级别的能够打开的文件句柄的数量

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

上一篇 下一篇

猜你喜欢

热点阅读