Linux Fs内核参数调优

文件句柄默认参数与调优参数对比

--------------------------------------------------------------------------------------------------------------------------------

默认参数     

通常来说,如果机器的内存越大,file-max的分配的默认值也会越大;

fs.file-max = 174118

fs.file-nr = 174118

fs.xfs.filestream_centisecs = 3000

调优参数

fs.file-max = 1000000

fs.file-nr = 1000000

fs.xfs.filestream_centisecs = 3000

表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的. ulimit -n 控制进程级别能够打开的文件句柄的数量与此不同。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。

一般情况下,无需修改,除非有并发在50w以上,一个千万的文件打开数足够了针对系统。

--------------------------------------------------------------------------------------------------------------------------------

文件监听句柄及软硬连接默认参数与调优参数对比

默认参数

fs.protected_hardlinks=1   用于限制普通用户建立硬链接   0:不限制用户建立硬链接 1:限制,如果文件不属于用户,或者用户对此用户没有读写权限,则不能建立硬链接

fs.protected_symlinks=1   用于限制普通用户建立软链接 0:不限制用户建立软链接 1:限制,允许用户建立软连接的情况是 软连接所在目录是全局可读写目录或者软连接的uid与跟从者的uid匹配,又或者目录所有者与软连接所有者匹配

fs.may_detach_mounts=1    K8S建议有容器运行的主机必须开启此值

fs.inotify.max_user_instances= 128      inotify  是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建 , 是一个内核用于通知用户空间程序文件系统变化的机制,表示每一个real user ID可创建的inotify instatnces的数量上限。

fs.inotify.max_queued_events=16384    表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。

fs.inotify.max_user_watches=  8192  表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量)

调优参数

fs.protected_hardlinks=1

fs.protected_symlinks=1

#fs.may_detach_mounts=1 centos7.9 才有

fs.inotify.max_user_instances= 8192

fs.inotify.max_queued_events= 16384

fs.inotify.max_user_watches= 524288

计算根据每一个inotify user instance大约会消耗5KB的内存,所以在内存允许的情况下可以适当增加,一般建议32G内存的系统调整扩展到fs.inotify.max_user_instances= 8192 fs.inotify.max_user_watches=524288,避免出现(Too many open files) 让人以为是fs句柄不够,其实不是,是监听数目不够

 
计算公式: fs.inotify.max_user_instances使用内存总量(bytes) = fs.inotify.max_user_instances * 5KB  = 8192 * 5*1024 =  41943040 bytes = 40MIB 

                   fs.inotify.max_user_instances使用内存总量(bytes) =  fs.inotify.max_user_instances * 5KB = 2048 * 5*1024 =  10485760 bytes = 10MIB 

64位系统:计算比例:fs.inotify.max_user_watches = fs.inotify.max_user_instances  * 64

32位系统:计算比例:fs.inotify.max_user_watches =  fs.inotify.max_user_instances * 32 

用户级别:(查找命令)

find /proc/*/fd/* -type l -lname 'anon_inode:inotify' -print 2>/dev/null | cut -d/ -f3 |xargs -I '{}' -- ps --no-headers -o '%U' -p '{}' | sort | uniq -c | sort -n

进程级:(查找命令)

find /proc/*/fd/* -type l -lname 'anon_inode:inotify' -print 2>/dev/null | cut -d/ -f3 |xargs -I '{}' -- ps --no-headers -o '%U %p %c' -p '{}' | sort | uniq -c | sort -nr




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自万古的忧伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值