新硬盘顺序读取速度异常

2022-08-12 00:03:18 +08:00
 Puretoe

刚买的威联通 NAS 和一块京东自营的希捷 16T 硬盘和淘宝南京总代的西数 16T 硬盘,刚才发现在 nas 系统里面,两块盘速度相差特别大,新手小白不知道这是否正常,淘宝店主说是希捷硬盘速度过快了不正常。

4244 次点击
所在节点    NAS
91 条回复
documentzhangx66
2022-08-12 11:59:46 +08:00
还有一点,这性能测试异常,只有 Linux 版块提出来,隔壁 Windows 都已经在交流不同设备的性能指标了,Linux 这边却还在求测试方案,你不觉得这事奇怪嘛。
ruidoBlanco
2022-08-12 14:32:11 +08:00
@documentzhangx66 「网上能搜到的测速方法是错的」?不明白,请明示。
lookStupiToForce
2022-08-12 14:34:27 +08:00
感谢上面的几位大神让我又长见识了......
原来 dd 都是错的,是说用 pgsql 发现过了那么久那么多版本了都不支持清数据缓存就觉得有点不可思议,结合来看这些都跟 linux 底层的缓存、读写策略息息相关
nevin47
2022-08-12 14:37:20 +08:00
@documentzhangx66 #20
-----------------
"我觉得你可能只是听别人说过 patch 讨论与建设,却没有实际去操作不同的 OS 与性能测试,手里可能也没几款存储介质"

——不好意思,我过去参与过从机械到固态好几个不同类型的介质项目,包括现阶段未面世的下一代存储介质,我亲手写的或者设计的代码已经跑在了多种不同的计算节点上

-----------------
"Benchmark 是复杂,我也说了,坑多。但它只是复杂,并不难。如果一个人是科班的,经受过正规系统的学习,他们也会觉得,这玩意坑多。学术课题?免了吧,重本的本科论文水平都没达到,最多是个重点高中的校报水准。"

——ASPLOS, OSDI 一直都有 Benchmark workshop ,对对对,都是校报水平。


另外可以和你交流一下,近一年来我们团队都在做内存相关的体系结构问题研究,约 70%的时间都在做各种 Benchmark 设计和实施上。Linux 的 IO 栈的 Benchmark 相对而言是比较容易设计而且实施的,但是类似体系结构中深层次的问题,往往需要设计非常精妙的 Benchmark 手段和工具,才能抓取到那些 ns 级别的性能差异。

很多刚毕业的优秀的同学,刚加入团队的时候也抱着过去开箱即用的思维来进行各种标定,然后搞了一段时间发现测试数据都不能自洽。所以我会说 *很多用户在 Linux 做 Benchmark 测试的时候,不是太理解背后的计算机基本原理,导致了还抱着对工具开箱即用的思路来做测试,导致测试结果不可信。*

最后,你提到的 Linux 和 Windows 在论坛上交流的数据差异问题,这只是一个爱好者层面的表现,实际上我们不管是在社区、业界还是学术界做性能讨论,我们会严格约定 CPU Mem IO 、BIOS 、Kernel 版本和 Kernel 关键配置,然后基于固定的这些配置,再来讨论性能。其实就算是 windows 系统,以网络 IO 为例,有的 BIOS 支持网卡的 TCP 硬卸载,有的网卡不支持,就算是同一台机器,不做好严格标定,一样可以跑出两种结论出来。
nevin47
2022-08-12 14:45:21 +08:00
@lookStupiToForce #23 linux 的 drop cahce 可以保证 dirty page 的 IO 回写,但是 pgsql 的文件页一般都丢不掉( prot_flag 带着某个标记,我没有仔细研究过)。所以有个 pgsql 的插件专门就干这个事儿,帮忙先做页面 unmap ,然后再 drop
lookStupiToForce
2022-08-12 14:48:05 +08:00
@nevin47 #25 感谢回答,我去搜搜这种插件
documentzhangx66
2022-08-12 15:15:54 +08:00
@nevin47

1.你只是参与。

2.代码跑在生产系统上,这是很常见的事情。

3.校报水平,要看是什么学校了。杠的话,拿一些专科去比,当然比不了。

4.你觉得题主这种测试,需要 ns 级别的结论嘛?

5.但凡是个上课认真听讲的科班生,这背后有啥计算机基础原理深不可测?计算机专业这玩意最多算个应用科学,面对正经的物理系数学系金融系,直接被摁在地上锤,我都不好意思提这茬,你居然还拿来当宝。

6.人家 Windows 随便搜一款主流测试工具,就能测得嗷嗷叫,你的那些同学抱着工具做测试,然后测试结果不可信,你还觉得是他们基础差?这不正是 Linux 系的缺陷嘛?为啥 Windows 就没这些破事? Linux 一款破系统设计的不好,还有理了?

7.还爱好者...就你专业的?人家微软 20W 工程师全是爱好者嘛?你用个 Linux 还要严格约定这约定那,才能讨论性能。人家 Windows 不管台式笔记本,下个主流软件就能测个差不多的性能,所以你的意思是,你所鄙视的爱好者们用 Windows 能快速测出近似结论,然后爱好者们看着你们这些专业的,用 Linux 还要各种约定 + 各种讨论,最后还测了个空气?
documentzhangx66
2022-08-12 15:18:05 +08:00
@ruidoBlanco 谷歌上几大 IT 网站与讨论社区,Linux 上对存储设备进行测速,主推 fio ,问题是他们给的参数与测试方法,在正经服务器或几大虚拟化环境里,我就没见过测对的。我怀疑他们都是在低配的家用机上测的。Windows 没这个问题。
GrayXu
2022-08-12 15:23:19 +08:00
@documentzhangx66 别说太多,容易暴露水平。估计 SIGMETRICS 都是校报水平。
documentzhangx66
2022-08-12 15:23:28 +08:00
@lookStupiToForce

这与 dd 没什么关系,你在 windows 上模拟 dd 也会遇到类似的问题。

这个问题的本质是,现代 OS 极其复杂,注意只是复杂,并不是有多难。复杂导致其中会有多层缓存,这种针对测试很不友好。

Windows 因为财大气粗员工多,早对这种情况做了专门的处理,因此市面上几款主流硬盘测速软件,在正经的 Windows PC 或服务器或虚拟化上,都能测个接近值。Linux 在金融架构上比 Windows 差得多,说人话就是 Linux 缺钱。我猜测可能是因为这个原因,导致 Linux 没有财力在这方面做专门的接口或适配,导致各种存储设备测速软件,测出的结果那是牛鬼蛇神。我这么说是有根据的,因为我发现一些有商业背书的 Linux 开源软件,无论是功能、测试,都一股缺钱的样子,功能缺少,测试覆盖率极差。
documentzhangx66
2022-08-12 15:25:06 +08:00
@GrayXu

我知道我水平差。但我至少比一些连讨论都不敢,却对别人逼逼赖赖的人,要高明很多。
documentzhangx66
2022-08-12 15:26:46 +08:00
@lookStupiToForce
另外 PG 就是个玩具,你要真想学习数据库,应该去学 Oracle ,毕竟地球上第一数据库。
lookStupiToForce
2022-08-12 15:36:29 +08:00
@documentzhangx66 #32 你说的意思我理解
我也没见过除了阿里,其他还有哪家金融公司和银行敢把自己的数据库系统放在任何非商业数据库上的
但市场上这种公司只能说凤毛麟角,我还够不上🤣pg 毕竟变化快,还开源能顺带学点底层东西
nevin47
2022-08-12 15:50:22 +08:00
@documentzhangx66 #27 你不用急,你的 1 2 4 我们不用讨论,我过去的工作有没有价值不是讨论的范围。

你说的第 3 点,让我我觉得你可能不知道 ASPLOS 和 OSDI 是什么东西……

第 5 点,图灵听了要流泪

第 6 点,不管业界还是学界,没有用 windows 做性能标定的,准确说没有谁用黑盒系统做性能标定的,性能标定要么基于 Linux/FreeBSD 这种开源系统进行,要么直接 baremetal 直接冲,核心目标都是结果透明可复现。还有 Linux 的设计和 Windows 的设计没有什么高低之分,Linux 虽然有着其复杂性,但是因为可控透明,商业计算领域 Linux 依旧是最大的主流,不管 Azure 还是 Windows Server ,截止目前依旧不是主流

最后第 7 点,你说得对啊,至少在微架构和操作系统领域,我就是比大多数水水 V 站的网友们专业啊😁😁😁至于你说的微软的工程师,据我所知 Kernel 投入的人员比你说的 20W 人少了两个半数量级吧,我觉得我勉强也有他们的平均水平低一点点的水平。

还有你说的“测个差不多的性能”,只能说你不懂性能标定的意义和要求,操作系统是一个确定性的东西,所有东西只有黑和白,我们做测试的时候,从统计学角度会下调显著性标准,某些场景,一般会认为<0.5%是抖动,1%是偏差,>5%已经是显著差异了。所以商业场景下,每一个小数点都是确定的,没有“差不多”这个说法。加入各种约定和限制,就是为了确保标定结果的绝对可靠性
nevin47
2022-08-12 15:52:43 +08:00
@documentzhangx66 #31 另外
@GrayXu #29 说的其实没错,我觉得你可能也不知道 SIGMETRICS 是干嘛的。。。。
documentzhangx66
2022-08-12 16:11:40 +08:00
@nevin47

计算机专业的问题我就不和你扯了,咱两半斤八两都觉得计算机深不可测,可对于别人物理系数学系材料系来说,计算机专业就是个文科弟弟。

我想表达的就一点,Windows 随便搜一款主流的测速软件,都能测个大概。Linux 上没有这种开箱即用的方案,你再怎么编,再怎么说自己牛逼,问题是 Linux 上没有就是没有,别人看上去还觉得你在找借口。

我觉得,缺陷就是缺陷,别找理由了。我并不是想吹 Windows ,我啥系统都用,但这个话题,就像 Windows 适合打游戏一样,Linux 就是没戏。
documentzhangx66
2022-08-12 16:18:09 +08:00
最后,对于题主的问题,最佳实践应该是,找台 Windows 电脑,下个 CrystalDiskMark + HD Tune Pro 测试完事。
nevin47
2022-08-12 16:57:21 +08:00
@documentzhangx66 #36 别,我不觉得我和你半斤八两,我觉得我在我自己的领域勉强算得上入了一点点门了。还有微架构和操作系统我从来也不觉得深不可测。至于拉踩其他学科,这是饭圈行为,不是科学行为

而开箱即用问题,我想告诉你的是,开箱即用只适合做做玩具测试,严谨的 Benchmark 还是按照科学的方法来吧,你非要我认可你这种观点也可以,那哪天任何一定顶会拿 Aida 64 的测试结论能发论文了,你 @我一下,我一定承认我的浅薄与无知
ruidoBlanco
2022-08-12 18:26:26 +08:00
@documentzhangx66 fio 也可以在 Windows 下用,试试不就知道了它准不准了吗?「用 fio 就不准」正确与否先不说,「网上搜到的测速方法都是 fio 所以网上能搜到的测速方法是错的」是不是也太草率?

实话实说,我做操作系统支持,这里偶尔用到 fio 。几个客户例子:

1. 客户抱怨说我们的系统里面写入速度比另一家主流 Linux 慢,同样的机器,同样的内核版本,raw 盘写入 fio 的结果就是不一样。最后原因,我们的系统内核默认开了 INTEL_IOMMU_DEFAULT_ON 内核编译参数。有谁会想到开影响 intel 虚拟化的 iommu 会影响写入速度?
2. 客户说我们的新版本系统 i/o 不如旧版本快。最后原因,一个 xfs 的 bug ,影响从 4.10 到大约 4.19 的所有内核版本的读写。也是 fio 测的,不过是在文件系统之上。

Linux 下能影响 fio 结果的,甩开硬件,还有内核,i/o scheduler ,文件系统和其他我可能想不到的地方。fio 测出来的不一样,并不代表它不准,其实是可能有没找到的确实影响性能的原因。而 Windows ,一样的内核,一样的文件系统,除了硬件的不同,能测出来什么?
documentzhangx66
2022-08-12 19:09:08 +08:00
@nevin47

这就很有意思了。

你只是个 Linux 派,我却是中立派,不黑不吹。

这个问题,就像游戏兼容性一样,Windows 人家就是强。你说,那不精准,那是玩具,而且 Linux 里这里那里怎样怎样,你觉得别人看你这言论,会不会觉得内外充满了快活的空气?

承认 Linux 在这方面做的差,有那么难嘛?

难,因为我只懂 Linux ,所以选择拉偏架,我就是要找借口,还要打压你不懂。谁让你讥讽到我的痛处了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872312

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX