|
超棘手:做好NAS存储性能优化无论是程序员,DBA还是网管,似乎所有的ITer都会遭遇同一问题:性能优化。NAS从业者也不例外,而且NAS的问题更加棘手,因为它所涉及的协议和设备很多。 明白了这两个机制后,我们再逐条分析TCP对性能的影响因素: 1、TCP滑动窗口:如果要把10块砖从A地搬到B地,你是一次搬一块,总共搬10次,还是一口气搬10块呢?在力气允许的条件下,自然是一口气搬完速度快,因为节省了往返时间。网络传输也是如此,如果有10个TCP包要传,在带宽允许的情况下应该一起发送,而不是发一个就等确认,然后再发下一个。举个例子,假如往返时间RTT是2毫秒,那10个包逐个传至少要花20毫秒;一起传就只需要2毫秒多一点,对性能的提高是显而易见的。除此之外,在发生丢包的时候,大窗口可以提高快速重传的概率,减少了超时重传。比如10个包一起传时,前6个包中任何一个丢失都可以由接下来的4个包触发快速重传。而每次传4个包是永远等不到快速重传的机会的。 2、多线程:在一个TCP session里,如果存在多个线程,也可以在丢包时提高快速重传的概率。还记得《NAS性能优化之一》里关于smb2的"叫外卖"图片吗?在第一个请求没有完成的情况下,就可以发送第二个请求。如果第一个请求有丢包,那第二个请求的包可以帮忙凑满四个,从而触发快速重传。本文开头提到的读者在测试smb2时得到大幅度的性能提升,很可能就得益于此。除了SMB2和NFS协议,EMC免费提供的EMCOPY工具也能在SMB中实现多线程拷贝。 3、超时重传时间(RTO):这是一个动态值。RFC规定了计算该值的方法,但是结果比较大,已经不适用当今的网络环境了。有些NAS(比如Celerra)提供一个设置,允许强制把该值改小。 4、Jumbo Frame:中文好像翻译为巨帧。就是把MTU增大到9000,从而减少TCP头和IP头在一个网络包中所占的比例。理论上这是能提高性能的,但是实际效果却不一定。因为大包的丢失概率更大一点,而且包数少了,就更有可能发生超时重传。 5、网络拥塞:除了网络配置出错(比如两端的speed/duplex不符合),另外一个导致丢包的因素就是网络发生拥塞。如何避免呢?最有效最简单的方法当然是购买更高端的switch,但这也是最难被接受的建议。有一个将就的办法,就是人为的把TCP滑动窗口强制在拥塞点以下。宁愿每次少传一点,也不要丢包。有些NAS(比如Celerra)提供了强制最大滑动窗口的设置,但是要确定一个合适的拥塞点比较麻烦,需要抓大量的包分析。 责编:赵龙 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
|
最新专题 |
|