我有一个新的 mdadm RAID10 设备,它运行良好,由 4 x 7200rpm SATA 3 驱动器构建:
# cat /proc/mdstat
Personalities : [raid10] [raid1]
md2 : active raid10 sdc3[5] sda3[4] sdb3[1] sdd3[3]
3885267968 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
(还有其他 2 个 mdadm 设备,但 md2 是相关的)
md2 之上是一个 ext4 文件系统,创建方式如下:
mkfs.ext4 -m0 -L bups -b 4096 -E stride=8,stripe-width=32 /dev/md2
当将其用作 NFS 上的备份目标时,其性能非常糟糕。使用单个客户端写入时,我看到如下数据,I/O 等待时间约为 30% 到 50% top
:
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 197.00 0.00 1.07 0 1
sdb 189.00 0.00 1.09 0 1
sdc 300.00 0.00 1.78 0 1
sdd 290.00 0.00 1.78 0 1
md2 785.00 0.00 2.86 0 2
平均负载较高:
# uptime
11:40:38 up 21:21, 1 user, load average: 9.90, 9.18, 8.92
使用dd
表现出不错的性能:
# dd if=/dev/zero of=/bup/test.dd bs=4096 count=1024000
1024000+0 records in
1024000+0 records out
4194304000 bytes (4.2 GB) copied, 18.7801 s, 223 MB/s
连接性全程都是千兆位。这是全新 HP DL160 Gen8 上的 CentOS 6.2 x64,配有 16GB RAM,本应是专用的备份目标,但性能却不及此。
编辑
控制器是 SATA AHCI 模式的 HP B120i。
/etc/exports
在服务器上:
/bup/phdv 172.31.42.30(rw,no_root_squash)
/etc/fstab
在客户端上提取(也是CentOS 6.4 x64):
svr-bup1.example.com:/bup/pronto /mnt/bup nfs soft 0 0
编辑2
相关信息来自/proc/mounts
:
svr-bup1.example.com:/bup/pronto /mnt/bup2 nfs4 rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,soft,proto=tcp6,port=0,timeo=600,retrans=2,sec=sys,clientaddr=2001:xxxx:xxxx:xxxx::240,minorversion=0,local_lock=none,addr=2001:xxxx:xxxx:xxxx::210 0 0
答案1
在服务器上增加RPCNFSDCOUNT
数量/etc/default/nfs-kernel-server
可能会有帮助;
在客户端上,可能值得尝试更小的rsize
值wsize
......