NFS是网络文件系统(Network File System)的简称,是分布式计算系统的一个组成部分,可实现在异种网络上共享和装配远程文件系统。NFS由Sun公司开发,目前已经成为文件服务的一种标准(RFC1904,RFC1813)。其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据,所以也可以将它看做是一个文件服务器。NFS文件服务器是Linux最常见网络的服务之一。尽管它的规则简单,却有着丰富的内涵。NFS 服务器可以看作是一个文件服务器,它可以让你的PC通过网络将远端的NFS 服务器共享出来的文件挂载到自己的系统中,在客户端看来使用NFS的远端文件就象是在使用本地文件一样。
一、高并发环境下的重要优化
1.1 客户端参数优化
a)async: 异步同步,此参数会提高I/O性能,但会降低数据安全(除非对性能要求很高,对数据可靠性不要求的场合。一般生产环境,不推荐使用)
b)noatime: 取消更新文件系统上的inode访问时间,提升I/O性能,优化I/O目的,推荐使用。
c)nodiratime:取消更新文件系统上的directory inode访问时间,高并发环境,推荐显式应用该选项,提高系统性能
d)noexec:挂载的这个文件系统,要不要执行程序(安全选项)
e)nosuid:挂载的这个文件系统上面,可不可以设置UID(安全选项)
f)rsize/wsize:读取(rsize)/写入(wsize)的区块大小(block size),这个设置值可以影响客户端与服务端传输数据的缓冲存储量。一般来说,如果在局域网内,并且客户端与服务端都具有足够的内存,这个值可以设置大一点,比如说131072(bytes),提升缓冲区块将可提升NFS文件系统的传输能力。
客户端挂载:rsize,wsize,noatime,nodiratime四个选项为性能优化选项,nosuid,noexec两个选项为安全优化选项。
mount -t nfs -o noatime,nodiratime,rsize=131072,wsize=131072 IP:/backup/NFS /mnt |
1.2内核参数优化
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
默认值
[root@oldboy ~]#cat /proc/sys/net/core/rmem_max #该文件指定了发送套接字缓冲区大小的最大值
124928
[root@oldboy ~]#cat /proc/sys/net/core/rmem_default #该文件指定了发送套接字缓冲区 大小的默认值
124928
调优后
[root@oldboy ~]#echo 8388608 > /proc/sys/net/core/rmem_default
[root@oldboy ~]#echo 16777216 > /proc/sys/net/core/rmem_max
二、常见问题解决方法
1、umount /dev/nb1 卸载失败, 如果发现有提示“device is busy”,找到是什么进程使得他busy
使用:fuser -m /mnt/data 将会显示使用这个模块的pid
fuser -mk /mnt/data 将会直接kill那个pid
然后重新mount即可。也可直接remount,命令为
[root@localhost ~]# mount -o rw,remount /mnt/data
2、如果执行mount挂载失败
解决方法:则需要在云主机上执行dhclinet重新获取路由或者重启机器,即可挂载成功。