nfs性能调优 Linux NFS服务性能优化 - Linux - 服务器之家

服务器之家

专注于服务器技术!
当前位置:首页 > 服务器系统 > Linux

nfs性能调优 Linux NFS服务性能优化

发布时间:2017-06-06 来源:服务器之家

 NFS客户端的数目

在服务器端,一定要确保有足够的 NFS 内核线程来处理所有客户机.在默认情况Red Hat或者CentOS系统会启动8个线程.对于繁忙的 NFS 服务器,应该提高这个数字,比如32或64.可以用 nfsstat -rc 命令评估客户机,了解是否有阻塞的现象,这个命令显示客户机远程过程调用(RPC)统计数据.

例:

[root@berry disk]#  nfsstat -rc

Client rpc stats:

calls      retrans    authrefrsh

44172868   177        44180949

 

[root@berry disk]# 第二列retrans是177,这表示从上一次系统启动以来出现了177次重新传输的情况.这个数字比较大,就应该考虑增加NFS线程.

设置方法是将所需的线程数量设置到nfs,比如设置128 会启动 128 个线程.任何时候都可以进行这种设置.线程会根据需要启动或销毁.同样,这个设置应该放在启动脚本中,尤其是在系统上启用 NFS 的脚本.

如RedHat和Centos

vim /etc/init.d/nfs

找到下面这行修改

[ -z "$RPCNFSDCOUNT" ] && RPCNFSDCOUNT=30

如上,我修改的是启动30个.随着nfsd数目的增加,平均负载会上升,就应减少nfsd数目.平时测试和客户端的数量一样多就行.

NFS队列的大小

在linux 2.2和2.4内核里,默认的8个nfsd的输入队列大小是64K,2.6内核是108K.下面将设置为较合理的值256K

# echo 262144 > /proc/sys/net/core/rmem_default

# echo 262144 > /proc/sys/net/core/rmem_max

# echo 262144 > /proc/sys/net/core/wmmen_default

# echo 262144 > /proc/sys/net/core/wmmen_max

利用taskset命令将NFS进程均匀绑定到cpu核心上(多核心的cpu)

for i in `pidof nfsd`;

do

taskset -pc $core $i

((core++));

done