zfs+nfs读写小文件奇慢,何故?
本帖最后由 zsgd 于 2010-06-26 12:27 编辑请大侠帮忙分析,谢谢!!!
一台nfs server 在open solaris 的zfs上,共享的目录为scratch_qa, 当在客户端读写一个大文件216M时间大约6秒以内,是正常的,但把这个文件展开,大小约218M,文件个数是898个,这时在客户端的读写时间大概在180s~~450秒之间,相差太大,同样的操作在另外一个同样的环境下,需要的时间基本在12~~15秒之间,测试如下。在nfs服务器上进行读写,就是不出网络是正常的,但网络的工作是正常的,通过网络scp一个大文件可以到25m/s-35m/s,网络是没有问题的。
1, 一个文件夹IT,大小为218M,文件个数是898个;一个由IT文件夹做的tar包,大小216M,
# du -sh IT*
218M IT
216M IT.tar
# find* |wc -l
898
2, 下面的scratch/qa是从有问题的server mount过来的,cp IT目录用的时间基本在180s~~450秒之间,时间太长,因为文件个数较多,需要花费时间生成inode,但时间也太长了,属于不正常的。
# time cp -r IT/ /scratch/qa/
real 3m39.462s
user 0m0.030s
sys 0m0.432s
3, cp IT.tar文件需要的时间基本都在6秒以内,属正常。
# time cp -rp IT.tar/scratch/qa/
real 0m5.696s
user 0m0.018s
sys 0m0.298s
4,下面是客户端mount有问题的nfs server时的一些参数,有一点要注意是noacl,因为acl有可能会影响到读写,这里是noacl,现在看到的通讯协议是udp,tcp也测试过,同样有问题。
# mount |grepscratch_qa
cnxass03:/data/export/scratch_qa on /scratch/qa type nfs (rw,intr,udp,noacl,hard,rsize=8192,wsize=8192,timeo=1000000,addr=172.17.192.23)
5, 下面是客户端mount 正常nfs服务器的一些参数。
# mount |grep pcc_qa
cnxafs02:/data/export/pcc_qa on /pcc/qa type nfs (rw,intr,noacl,udp,hard,rsize=8192,wsize=8192,timeo=1000000,addr=172.17.192.38)
6, 下面是cp那个文件夹到正常服务器所用的时间。
# time cp -rp IT /pcc/qa/IT/
real 0m11.890s
user 0m0.017s
sys 0m0.453s 看dmesg有报错没有? 大文件呢?
我曾经因为网络原因,百兆网卡被适应成10兆,最后传输速率是几百K,也是慢死了。 看dmesg有报错没有?
bj161109 发表于 2010-06-25 22:05 http://bbs.chinaunix.net/images/common/back.gif
dmesg没有错误。 本帖最后由 zsgd 于 2010-06-26 12:40 编辑
大文件呢?
我曾经因为网络原因,百兆网卡被适应成10兆,最后传输速率是几百K,也是慢死了。
zhmzhouming 发表于 2010-06-26 09:34 http://bbs.chinaunix.net/images/common/back.gif
-bash-3.2# ndd /dev/bnx0 link_speed
1000
网卡工作速度是1000M,通过网络scp大文件能到25m--35m/秒,但copyn个小文件就是特别的慢。 网络原因。 网络原因。
hsprince 发表于 2010-06-27 11:02 http://bbs.chinaunix.net/images/common/back.gif
网络是没问题的,如下:
网卡工作速度是1000M,通过网络scp大文件能到25m--35m/秒,但copyn个小文件就是特别的慢。 我也觉得好慢。复制小文件的时候,网速就几百K,复制大文件就可以达到900MB。。 我用的是RAIDZ+share.nfs 回复 1# zsgd
请用压缩属性compression=gzip,试试看
页:
[1]