NFS基础优化
Posted suffergtf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS基础优化相关的知识,希望对你有一定的参考价值。
一、环境
环境接上篇 https://www.cnblogs.com/suffergtf/p/9486250.html
二、参数详解
1、nfsserver端配置参数详解
[[email protected] ~]# cat /var/lib/nfs/etab /Share 192.168.127.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,
secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,secure,root_squash,no_all_squash)
1:访问权限控制选项
rw 可读写
ro 只读
2:用户映射类选项
all_squash:将远程访问的所有普通用户及所属组,都映射为匿名用户及所属组(nfsnobody)
no_all_squash:与all_squash相反,没有映射为匿名用户的普通用户,没有权限(默认设置);
root_squash:将root用户及所属组都映射为匿名用户与用户组(默认设置)
no_root_squash:与root_squash相反
anonuid=xxx:将远程访问的所有用户都映射为指定用户,UID=xxx,Server端和Client端必须存在这个指定的用户;
anongid=xxx:将远程访问的所有用户组都映射为指定用户组,GID=xxx;
3:其他选项
sercure 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认配置)
inserure 允许客户从大于1024的端口连接
sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保持数据一致性
async 异步,先写入缓存,需要时写入磁盘
wdelay 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认配置)
no_wdelay 若有写操作则立即执行,应与sync配合使用;
subtree 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
2、nfsclient挂载参数
[[email protected] mnt]# cat /proc/mounts |grep nfs 192.168.127.100:/Share /mnt nfs4 rw,relatime,vers=4.1,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,
port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.127.101,local_lock=none,addr=192.168.127.100 0 0
三、基础优化
1、nfsserver端
/etc/exports NFS主配置文件中添加all_squash,root_squash参数,将所有普通用户和root用户都映射为nfsnobody; /etc/exports NFS主配置文件中添加async参数,将数据存入缓存中,必要时写入磁盘,可提高性能,但是数据丢失可能性较大
[[email protected] ~]# vim /etc/exports
#######shared for test by suffergtf at 2018-8-16######
/Share 192.168.127.0/24(rw,async,all_squash,root_squash)
[[email protected] ~]# systemctl restart nfs
[[email protected] ~]# cat /var/lib/nfs/etab
/Share 192.168.127.0/24(rw,async,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,
secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,secure,root_squash,all_squash)
cat >>/etc/sysctl.conf<<EOF
> net.core.wmem_default = 8388608
> net.core.rmem_default = 8388608
> net.core.rmem_max = 16777216
> net.core.wmem_max = 16777216
> EOF
2、nfsclient端
a:async异步同步,此参数是将数据先写入到缓存,必要时写入磁盘,可提高I/0性能,同时也会降低数据安装(除非是对性能要求极高,对数据可靠性不要求的场合,一般生产环境,不推荐使用) b:noatime取消更新文件系统上的inode访问时间,提高I/O性能,推荐使用 c:nodiratime取消更新文件系统上的directory inode访问时间,高并发环境,推荐使用,提高系统性能 d:noexec挂载在这个文件系统内的程序,可不可以执行(安全选项) e:nosuid挂载的这个文件系统内的文件,是否可以设置SUID f:rsize/wsize读取/写入的区块大小,这个设置值可以影响客户端与服务端传输数据的缓冲存储量。一般来说,如果在局域网内,并且客户端与服务端都具有足够的内存,这个值可以设置大一点,
提升缓冲区块可以提升NFS文件系统的传输能力,但设置的值也不要太大,最好是实现网络能够传输的最大值
[[email protected] /]# mount -t nfs -o async,noatime,nodiratime,noexec,nosuid,rsize=262144,wsize=262144 192.168.127.100:/Share /mnt
以上是关于NFS基础优化的主要内容,如果未能解决你的问题,请参考以下文章
优化 C# 代码片段、ObservableCollection 和 AddRange