6、关闭NFS服务器不用的服务
Linux在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。但是,开启不必要服务则会给操作系统带来安全和性能上的影响。以root身份运行:
#ntsysv |
把不需要的服务和进程前面的*去掉(用空格键),然后重新启动系统服务,这样就可以使不需要的服务和进程不再启动。不但安全,而且还能提高系统的性能,一举两得。
7、设定客户机合适的最大传输单元MTU
每个网络都存在最大传输单元MTU(maximum transfer unit),要求每个数据报必须适合MTU。如果一个数据报进入了一个MTU小于该数据报长度的网络,那么处于网络边界上的路由器会把该数据报分解为多个小的数据报。这样会影响NFS网络系统的性能。tracepath它是一个工具:它用來跟踪MTU的路徑:首先使用超级用户权限登陆客户机,使用命令::
|
Resume: pmtu 1500 hops 1 back 1 |
其中192.168.1.4是NFS服务器IP地址,2049是NFS服务器开启的UDP协议的端口号。
可以使用命令查看:rpcinfo -p 192.168.1.4。最后tracepath命令会给出一个MTU值。
然后使用ifconfig命令查看客户机上用于连接NFS服务器的网卡接口的MTU值。如果两者相差很多,可以使用Ifconfig命令修改。
|
proc3 22 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
在第五行“th”后的 8表示8个线程。其他数字代表每秒钟线程使用的最大百分比。如果后边三个数字比较大表示可能现在挂载客户机数目比较多,需要增加线程数目。
(1)首先停止nfs服务
|
|
|
# echo 65536 > /proc/sys/net/core/rmem_default |
|
#ntsysv |

图3自动挂载NFS文件系统
打开如图3所示的窗口,在autofs和apmd服务选项加上*(用空格键),然后重新启动系统,这样可以自动挂载NFS文件系统。
13. 使用stand-alone模式运行NFS
NFS服务器可以以stand-alone、xinetd两种模式运行。stand-alone方式是Unix传统的C/S模式的访问模式。服务器监听(Listen)在一个特点的端口上等待客户端的联机。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听。以保持多个子服务器池等待下一个客户端请求。stand-alone模式工作原理见图4。

图4 stand-alone工作模式
工作在stand-alone模式下的网络服务有route、gated。另外是大家最熟悉是Web服务器:Apache和邮件服务器Sendmail、NFS。因为在NFS这种负载很大服务器上,预先创子服务器,可以通过客户的服务速度。在Linux系统中通过stand-alone工作模式启动的服务由/etc/rc.d/下面对应的运行级别当中的符号链接启动。和stand-alone工作模式相比,xinetd模式不想要每一个网络服务进程都监听其服务端口。运行单个xinetd就可以同时监听所有服务端口,这样就降低了系统开销,保护系统资源。但是对于访问量大、经常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会导致系统性能下降。察看系统为Linux服务提供那种模式方法在Linux命令行可以使用pstree命令可以看到两种不同方式启动的网络服务。一般来说系统一些负载高的服务:NFS、sendmail、Apache服务是单独启动的。
14、 NFS服务器设置的调优步骤:
(1)首先挂接NFS服务器和每个客户端。(2) 然后测量当前网络、服务器和每个客户端的执行效率。(3)优化读写块大小。(4) 调整服务器 。 重复第一到第三步直到达到你渴望的性能。
1、挂载/home/cao目录
首先建立这个目录,然后再利用mount指令来挂载NFS 服务器的/home/cao目录:
|
# mount -t nfs 192.168.1.4:/home/cao /home/nfs/cao |
下面使用df命令查看挂载的目录中已经包括:NFS 服务器的IP地址的共享目录,见图5。

图5 挂载NFS服务器的共享目录
将资料挂载进来后,只要进入/home/nfs/cao目录,就等于到了IP地址:192.168.1.4那部NFS 服务器的/home/cao目录中。
2、测试读写数据时间
NFS V2版本的文件传输尺寸设定(-rsize, -wsize)V2最多只能设定为8k,缺省情况是4k(4098字节),实际情况可能和缺省值有差别。这时需要进行实际测试得到一个最佳值。方法是:
(1)测试NFS网络文件系统的写性能
首先以超级用户身份挂载NFS服务器的/home/cao目录。然后进入本地目录使用命令:
|
time dd if=/dev/zero of=/home/nfs/cao/nfs.dat bs=16k count=16384 |
这个命令意思使用命令 dd 向/dev/zero不断输入一个文件,是在NFS服务器的nfs.dat文件里写16384个16KB的块,bs是值是16K也就是一个256MB的文件,通常文件大小(256MB)设定为NFS服务器内存的2倍。同时回写到客户机中同样大小、数量的块。正常的输出结果可能是:
|
输出了 16384+0 个块 user 0m0.200s |
|
输出了 66535+0 个块 user 0m0.420s |
| <p '>192.168.1.4: :/home/cao /home/nfs/cao nfs rsize=8192,wsize=8192,timeo=10,intr |
重新使用命令挂载NFS服务器的/home/cao的目录,然后重复上面的(1)、(2)、(3)步骤。比较修改读写块大小后,读写性能是否有所提高。如果没有提高的话可以直接删除/etc/fstab文件。接着寻找最佳值。用于测试的rsize和wsize必须是1024的倍数,对于NFS V2版本来说8192是RSIZE和WSIZE的最大数值。
总结:本文介绍了如何在现有条件下提高NFS文件服务器性能,网络管理员充分了解自己的计算机和网络,从而找到真正的瓶颈所在。在预算短缺的今天,理解如何优化系统性能比以往任何时候都重要。一味地硬件投资并不是能够让人们接受的办法,并且也不一定生效。
[1] [2]
