加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 顺序读取大文件时NFS性能不佳

发布时间:2020-12-13 16:43:41 所属栏目:Linux 来源:网络整理
导读:我有一个带有多个客户端的NFS3服务器.每个客户端都按顺序读取不同的大文件,性能非常差. 以下是我在服务器上的iostat中观察文件所在磁盘的内容: Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %utilsdX 24.33 0.00 712.67 0.00
我有一个带有多个客户端的NFS3服务器.每个客户端都按顺序读取不同的大文件,性能非常差.

以下是我在服务器上的iostat中观察文件所在磁盘的内容:

Device: rrqm/s  wrqm/s    r/s   w/s  rMB/s  wMB/s avgrq-sz avgqu-sz  await svctm  %util
sdX      24.33    0.00  712.67 0.00  18.41   0.00    52.91    11.95  16.91  1.40 100.00

如您所见,%util是100%.同时,聚合I / O吞吐量(rMB / s wMB / s)约为18MB / s,比磁盘容量慢10-20倍.

这个,以及rMB / s与r / s的比率,使我得出结论,不是一次读取每个文件的大块,而是NFS最终以小块的形式读取文件,在不同文件之间有大量的块交错.这反过来导致大量磁盘搜索,从而导致性能下降.

你能说证据的结论是否合理?

你会建议什么作为解决这个问题的方法?我可以更改阅读应用程序,并可以调整服务器和客户端上的NFS设置.我正在使用内核2.6.18的RedHat 5.6,其中I believe将rsize限制为32KB(我很高兴被证明是错误的).

编辑:当只有一个客户端读取单个文件时,这就是事物的样子:

Device: rrqm/s  wrqm/s     r/s   w/s    rMB/s  wMB/s avgrq-sz avgqu-sz  await svctm  %util
sdX     343.33    0.33 1803.33  0.67   105.78   0.00   120.09     0.91   0.50  0.31  56.47

如您所见,吞吐量要好得多,%util也要低得多.

解决方法

更快的磁盘,更多的内存.我认为你的结论是正确的 – 你是在寻求约束.

您的NFS服务器与工作集相比有多少内存?你的工作集是否适合缓存?

什么是后端存储?你说它的吞吐量大约为180-360MB /秒,但它对随机I / O的性能如何?我建议使用像fio这样的东西来获得一个想法. seekwatcher对于可视化I / O也很有趣.但是,如果你能避免更多地击中磁盘.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读