存储设备,写的性能很好,但是读的性能很差,相差约4.5倍。
思路:
1.一般的存储设备都是读比写快,所以排除存储设备本身的问题。
2.存储端的带宽大,客户端的小,读取文件时数据从大入小,难免会有溢出的问题(网络拥塞),然后就会导致性能问题。写是相反的。
3.抓包验证。
分析:
1.抓包以后,发现很多重传,重传对性能的影响很大,哪怕只有千分之5,。
方案:
1.将存储设备的发送窗口设置为较小的值,限制源头,明显不太可取,这里影响的是全局。
2.客户端的接收窗口设置为较小的值,可取,但也会有其他影响。
3.还有没有其他的办法呢?
后面,经过对抓的包的分析以后,发现重传的包很多都是连续的,连续大量的重传会导致性能的明显下降,为什么是连续的呢?因为发送方无法确定丢的是哪些包,只能全部重传。现在,只需要解决发送端不知道哪些包丢的问题,这个大量重传的问题就解决了,SACK是可以做到的。
SACK:ack丢失的包时,将已经收到的包也告诉发送方。
启用SACK以后,性能问题得到解决。