免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: andy820303
打印 上一主题 下一主题

访问Solaris NFS share,读正常,写操作特别慢。 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-02-22 09:02 |只看该作者
你好,你有考虑raid 没有,不同raid 写的速度不一样,我solaris 是个新手,只是给你提供个思考点,请高手指导下我.

论坛徽章:
0
12 [报告]
发表于 2009-02-23 08:19 |只看该作者
server端是默认设置,应该是同步
不清楚SFU端,没找到相关设置,可是感觉默认的应该也是同步写。

谢谢楼上的回复!

论坛徽章:
0
13 [报告]
发表于 2009-02-23 08:20 |只看该作者

回复 #11 zyg0892 的帖子

感觉有些道理的。

可是我也不太清楚,为什么将wsize改为1K之后,速度看起来就正常了

论坛徽章:
0
14 [报告]
发表于 2009-02-24 14:49 |只看该作者
重新测试了一下,传输2个文件,一个10M,一个33M,在SFU client端分别将wsize设置成了1k,2k,4k,8k,16k,32k(在windows的SFU客户端只能设置这么几个值),之后用ethereal分析packet.

发现2K是传输最快的,大概在9s作用,结果如下。
1k : 14.84s
2k : 9.53s
4k : 10.78
8k : 32.09
16k:more than 15 mins
32k:more than 15 mins

其中,在16k和32k的结果中都能发现很多的NFS write call被重新发送了,而且每次重新发送都浪费了很长时间。

现在的问题是除了这样一个一个尝试,有没有别的办法可以找到一个合理的wsize呢,应该根据什么来确定这些参数呢?

论坛徽章:
0
15 [报告]
发表于 2009-02-25 09:41 |只看该作者
来晚了

使用NFS时,rsize和wsize的大小对性能的影响非常大。因此经常需要对其进行调整,在一些特定的场合默认的设置不见得是最好,但不管怎么设置,都应该是1024byte的倍数。

可以通过dd来进行测试,然后选择表现最好的参数。按理说都可以到23k,LZ难道你的NFS server版本很低吗?

示例NFS客户端的参数配置

nfsvers=3,wsize=32768,rsize=32768,rw,bg,intr,hard,tcp

参数                        意义
nfsvers=3                   NFSv3,默认是 NFSv2,而 NFSv4 比较复杂,不是所有内核都支持。
wsize=32768             设置 32K 的写缓存,对于 UDP 方式来说,8K 是推荐值。
rsize=32768               设置 32K 的读缓存,对于 TCP 方式来说,32K 是推荐值。
rw                              读写方式,根据权限需要有时也设置为 ro(read only)
bg                              如果安装失败(服务器没有响应), 在后台一直尝试,继续发其他的安装请求
hard                            如果服务器当机,让试图访问它的操作被阻塞,直到服务器恢复为止
intr                            允许用户中断被阻塞的操作(并且让它们返回一条错误消息)
tcp                             选择通过 TCP 来传输,默认的 UDP 不好。


测试NFS写操作:

假设256M的数据,分别按4k, 8k, 16k的BlockSize大小进行测试:

time dd if=/dev/zero of=/home/x/testfile bs=4k count=65536
time dd if=/dev/zero of=/home/x/testfile bs=8k count=32768
time dd if=/dev/zero of=/home/x/testfile bs=16k count=16384

多测试几次,就可以根据时间来判断最佳的wsize大小。

测试NFS读操作:

假设256M的数据,分别按4k, 8k, 16k的BlockSize大小进行测试:

time dd if=/home/x/testfile of=/dev/null bs=4k
time dd if=/home/x/testfile of=/dev/null bs=8k
time dd if=/home/x/testfile of=/dev/null bs=16k

多测试几次,就可以根据时间来判断最佳的rsize大小。


LZ可参考这里:
http://www.ixdba.net/article/2b/155$4.html
http://hi.baidu.com/thinkinginla ... dcfcfc1a4cff8a.html
http://www.cnitblog.com/tarius.wu/articles/326.html
http://nfs.sourceforge.net/nfs-howto/

[ 本帖最后由 yuhuohu 于 2009-2-25 11:46 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP