日本电子维修技术 SSDzfs 随机性能讨论.2020.05.22周末更




2020.05.22更新:
结合原帖的回复和更多的google,周末又跑了几次fio,对zfs的认识再多了几分。
1. 很多回复指出zfs对内存的依赖,fio太小的数据集跑出来的分数过于理想化,实际参考意义不大。后来找到一篇来在NetApp的技术博客(https://cloud.netapp.com/blog/aws-netapp-baseline-performance-testing),里面关于使用fio测试随机性能的方法给我在接下来的跑分一个很好的参考,回帖也有建议选用数倍于内存的数据集大小。

2. 下面这个回帖非常在理:

开这个贴的主题还是围绕软件层面的讨论,如果只是去惊叹Optane 900p随机跑分的话我应该把贴开去硬件开箱区了。

3.这个贴只讨论随机性能,周末跑分的时候按900p的4k实际基础性能51万IOPS作为参照。发现只要把数据集size放大到超过内存,900p做L2ARC的zpool 4k随机读取成绩真的是惨不忍睹(1.5万IOPS),只有900p基础性能的3%,符合一些大大们对L2ARC鸡肋的评价,至于具体原因和解决办法,欢迎大家跟帖讨论哈。

当发现了这个情况后,我多跑了一个测试,就是用两块900p组成mirror zpool(不要问为什么不用4块组类raid10,问就是没有钱.jpg)去测试随机读取,结果依然一样。这就让我非常疑惑了,按道理两块900p组的raid1,随机读取应该在100万IOPS(51万*2)上下,而不是只有可怜的几万IOPS。为了解决这个疑惑,我用mdadm给900p组了raid1,再用80G的数据集跑fio,结果轻松破百万IOPS,接下来我的目标是调高zpool(纯900p)的4k读取,欢迎各位大大给我一点方向哈。
  

raid1_1M_IOPS.jpg (194.21 KB, 下载次数: 0)

1M_iops

2020-5-25 07:27 上传



----------------------------------------------------------------------
原帖

受上一贴关于raid卡性能的启发,意识到raid卡的性能和扩展性的限制。一番研究决定入坑zfs(还省钱)。
https://www.chiphell.com/thread-2207921-1-1.html

本人喜欢手动搭建的乐趣,而且所需功能简单,所以没有选择Freenas这种非常受欢迎的做法。

基本系统如下:
硬盘 4x Exos 8TB CPU Intel W-2295 (HT=off) 内存 128G ECC内存(8*16) 系统盘 Intel D3-S4610 SSD 240G 缓存 Optane SSD 900p 280G


评论
看不懂,只能膜拜

评论
用普通内存的我弱弱路过

评论

我看过你的贴,还是毕竟喜欢手动挡,一起交流哈

评论
把同步选项关闭试试看。
另外压缩关闭了么?

评论

ECC内存便宜。

评论
之前有看到一些原理说明的帖子,是说当开启L2ARC之后,L2ARC中的数据的索引是在内存里面的。内存的角色转变成ARC+L2ARC的索引。所以如果数据不再ARC但是在L2ARC中的话,那么意味着速度和IOPS会降低一点。

评论
1. 你可以设置下primarycache来尝试关掉ARC
2. 正常情况不会开sync=always,这样等于禁用了内存的缓存写入功能,写内存快还是900p快?你可以关掉always再试试。
3. 写缓存适用于对数据安全性要求比较高的情况,比如数据库。
4. zfs严重依赖内存,L2ARC会增加内存需求量。L2ARC默认只对非连续的小块数据缓存。

评论
fio 有个参数 -sync https://fio.readthedocs.io/en/la ... #cmdoption-arg-sync

楼主测试的 fio size 好像是 2M,有点小,建议改大,最好超过内存数倍,size 太小情况下应该用不到 l2arc, 2M 甚至都没填满机械盘的缓存,测试的时候可以开一个 iostat 或者用 arc_stat 观察一下 arc/l2arc 的独写和命中率

另外楼主的 zfs 参数调整过么

vfs.zfs.l2arc_noprefetch 默认是 1,没有预读取
vfs.zfs.l2arc_write_max 默认是 8M,也就是说内存中的 arc 数据默认情况下是以 8M/s 的速度写到 l2arc 里面的,可以改大一点
vfs.zfs.l2arc_norw 默认是 0 还是 1 我忘了(看系统,调到 0 可以同时独写


我只用过 freenas 下面的 zfs,没怎么用过 zol, 参数可能不太一样但是整体应该差不多



评论

关于你的第二点,我是特意sync=always来关掉内存缓存写入,目的是只比较单hdd 和hdd vdevs 的性能差别。

1. 我去试下哈
3.粗略阅读了一些文档,也发现了zfs对数据完整性的校验,数据一致性和快照等等的优点,所以才感觉相逢恨晚
4. 现在内存很便宜,分数也不错,有空会用自己的数据库测一下实际提升。


评论

非常好的建议哈~(鲜花.jpg)

回去就翻一下这两个缓存的数据。

你提供的参数我也去研究一下哈。

评论
关于raid卡 我记得我看过level1tech的视频,那人说了,raid卡也就是一个小型的电脑,里面也有cpu,内存什么的

当年电脑cpu比较弱才有用,现在是用不到了,多一点硬件,多一个会出事的地方

评论

那是R/ECC,单ECC么呵呵呵呵

评论

纯ECC价格是要媲美高档超频内存了。

评论

压缩关了,打开sync是想测试hdd的真实性能,加上傲腾作缓存的时候关了。

评论
其实硬件的规格是确定的,优化其实就是靠软件,哪怕固件等算法本质也是软件,只不过是更底层一点的软件

评论
关HT是啥?有啥讲究的?

评论
太高深了,完全看不懂。

这个意思是水变成油了吗?

评论

关闭超线程,跟zfs没有关系的。

评论

少数特殊场景下,如频繁的数据库写入(mysql),的确有水变油的感觉

评论
sync=always没有意义啊。sync=always开了,内存写入缓存就废了。不开这个,NIC基本上随便打满。

L2ARC不用开,128G内存稳稳的。SLOG用900p就可以了。

评论
以我这么几年的zfs使用经验,Zpool最好是raidz-1*N这种布局,IOPS受限于一个VDEV的最低IOPS设备,简单说,假如一个盘IOPS为100,有6个,那么:

全部做raidz-1:整个pool的IOPS=100
条带化raidz-1:raidz-1*2,整个zpool的IOPS=100*2

增加ARC_L2对于缓存文件有那么点用,其余更多场景意义不是太大(我是kvm的虚拟机放在zfs dataset上,每次clone明显慢于相同配置的硬件raid)

之所以一直割舍不下zfs,还是COW的特性和扩展容易,有快照和加密。

评论
感觉ZFS的文件系统元数据非常占IOPS,实际上全靠内存硬撑,只要超出ARC马上死
跑fio要按内存x2来设置数据集,跑个200G就知道ZFS的性能有多差了。
不过你有128G内存,也不容易用完

L2ARC更拉跨,浪费一块SSD还不支持持久存储(重启后从零积累缓存),而且加速效果实在是对不起专门配块nvme SSD

SLOG对家用是纯鸡肋,直接把sync关了用内存缓存就行,反正一般都要配UPS的不会意外断电,独立的SSD SLOG也就没什么登场机会。

评论

非常中肯的意见~刚接触的东西,我都只是从性能上简单评价。
我在开头也说了,扩展性也是我入坑zfs的原因之一。

想不到大家对L2ARC和SLOG的评价比较一般,之后我也会用sql测一下这两块缓存的提升作用。

对zfs其他很多的特性也在慢慢学习中,一起交流哈。

评论

结合了楼上几位的意见,fio测试的时候用500M*8的数据集就已经能让zfs脱去ARC的外衣了,用不了200G。

我的理解是SLOG 还是应该设一个,然后SYNC=standard,让应用决定是否调用sync()?不知道这样理解对不对。

我目前还没理解到L2ARC的应用机制,本以为l2arc是一个比arc容量大,速度差一个级别的缓存,但目前看来又不是这么一回事,还望指教。

评论

要搞清楚SLOG,首先要搞清楚同步写异步写

异步写就是数据一堆丢过来,自己看着写,写好了报告一下就行
同步写是给一个数据,等你写,报告写好了再给下一个。也就是磁盘测试的4K Q1T1那种模式。
像数据库之类安全要求高的全都是同步写,以保证意外断电的数据完整性。

显然,同步写完全无法使用内存缓存,会非常的慢,IOPS等于整个池中最慢的一块盘。

ZFS为了加速同步写,引入了SLOG,同步写请求来了往SLOG里一丢,就报告写好了,有空了再把SLOG里的写请求誊到真正的数据区域去。
即使不加额外的SSD,SLOG也存在于储存池的机械硬盘上。

所以,SLOG是为了加速同步写,同步写是为了防意外断电。
既然都配了UPS几乎不会意外断电,直接关掉sync,把所有的操作都视为异步写就行了,充分利用内存加速。

评论

L2ARC有用的前提是日常访问数据量可以轻易的塞满ARC。

虽然用的是SSD,但是索引是全在内存的ARC中的,一旦关机内存都没了,L2ARC也就相当于清空了,下一次开机会从0再来。

虽然NAS不会轻易关机,但一月一重启的频率还是有吧,就算不重启也得apt升级吧。
按我把电影游戏PT挂机都装NAS上的玩法,L2ARC能塞满SM961 256G就不错了,至于缓存命中率,基本是心理安慰。

断电持久化L2ARC的事情已经吹了好几年,最新进展是这个功能暂时不会开发


就算能塞满,命中率高,由于ZFS冗杂的元数据,日常写入量爆炸,实际加速性能也会远差于直接用SSD本身的性能。

评论

断电持久化,是要上nvdimm吗?上nvdimm的话是否直接开箱即用?还是要在bsd里面调试的?

评论

请教,freebsd里面的iscsi如何调优。目前我碰到的问题是intel 82599兼容网卡下(服务端和客户端均为兼容网卡,不是什么山寨卡,是深圳联瑞品牌的),iscsi的target无论是在pm1725a上,还是pm1643上还是hdd上,一概只有5秒真男人(在头2秒的传输速率达到2GB/s(仅限pm1725a,pm1643是1.5G左右,HDD也就1G),后3秒达到1GB/s的水平(算是正常了)),但是5秒过后,一律将为110MB/s。

压缩关,同步关闭,zfs是128K blocksize,iscsi的块是4Kb(最大也就是4K了),客户端是win10。链接iscsi的时候开了多路径访问。测试的时候都是大文件(数十个iso镜像和一个107G的zip压缩包)

评论

请教,我自己的测试下发现l2arc对于大文件读写貌似没有帮助,是如此的么?测试的时候用的l2arc是pm1725a 6.4T,内存128G。测试一开始是多次拷贝107G的数据到HDD stripe+mirror以及pm1643 上,然后反向拷贝HDD上的数据到另外一块pm1643上,发现拷贝速度仅是HDD stripe + mirror的读速度,显然遇到了瓶颈,l2arc没有起作用。

另外想请教有什么办法可以在HDD上面把读速度调试到这篇文章所测得的数据? https://calomel.org/zfs_raid_speed_capacity.html (我的都是大文件,所以不会有小文件的烦恼)
L2ARC在SSD里,本身就应该断电保持。
但是L2ARC的索引被保存在内存里,关机也不转储。

结果就是本应该持久的SSD缓存,变成和内存一样重启就要从零开始。

评论

那看来只要用了nvdimm的内存,就可以解决这个问题了。而且听你描述,属于开箱即用,zfs或者bsd都不用调试或者单独开启什么东西就可以了。

评论

不了解nvdimm的部署,感觉现在谈nvdimm还是遥远了一点

而且不只是关机会丢,升级zfs也会丢,现在版本号刷得这么快,一个月不升级两个月总要升级吧,这下和nvdimm没关系了。

评论

偶尔去看一看openzfs的issue,从0.6到0.8一堆性能下降报告
我现在完全把L2ARC当成心理安慰在用……它的帮助实在是太小了

评论
zfs on linux我觉得坑还挺多的,之前试过一段时间,现在安安心心lvm + xfs,真香

评论

请问lvm 对ssd caching 的效果怎么样

评论

emmm...

其实没有认真测试过,8t x 2 + 120G sata ssd 做caching,局域网内smb速度可以稳定110MB/s,之前用zol,大文件读写把arc cache吃完后,速度就掉到几M了

评论

周末多跑了几次随机4k,目前暂时放弃zfs,不知道为什么性能下降的这么大。目前换了楼下建议的lvm+xfs,成绩又正常了

评论
为何我用centos+openzfs 6块P3700组raidz1 性能还没有单盘好

评论

纯ssd或者纯nvme组zfs性能是个谜,国外有文章提到,号称会解决,不知何时会解决。

评论
L2ARC设计的时候,认为固体硬盘都是昂贵而且尺寸又小的玩意。而且这个设计默认只对频繁读取的小文件有效果,连续读取的大文件是不会进入cache的。所以不是特殊场景的话,对性能并没有多大的提升,也没有多大的必要添加,还不如老实堆内存。
zfs目前最适合的场景是12块3.5机械硬盘做raidz2,能兼顾容量和速度。拿来做iSCSI或者smb共享都可以。
我有几块2.5的ssd(不是M.2)做raid0(striped raid),性能很正常。 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收
 ·日本留学生活 求个大阪合租
·日本留学生活 自家房招租求
·日本留学生活 东京地区出9成新lv钱包
·日本育儿教育 孩子从国内过来如何学习日语
·日本育儿教育 明年四月横滨招月嫂
·日本育儿教育 请问咋让娃突破识字关?感谢分享中文共读和学习经验的妈妈
 ·中文新闻 东区明星迈克尔·格列柯,53 岁,将在第一次出生两年后第二次
·中文新闻 《爱情岛》明星卡米拉·瑟洛和杰米·朱维特在透露即将迎来第三

维修经验

CPUcpu-z 1.77版低调发布

日本维修技术更新: New benchmark “submit and compare” feature New clocks dialog reporting all system’s clock speeds in real-time Preliminary support for Intel Kaby Lake AMD Bristol Ridge processors 主要是增加了支持I、A两个新架构的 ...

维修经验

CPU这几天经常开机黑屏,热重启后又正常

日本维修技术这几天经常开机黑屏,热重启后又正常,今天热重启也不管用了。折腾半天总算点亮,显示超频失败,以前出这个画面我是不理它的,直接重启就能正常进系统了,今天不敢托大,因为 ...

维修经验

CPU超频求助!关于华擎H170和6700K

日本维修技术问题见楼主的show贴 https://www.chiphell.com/thread-1634895-1-1.html 这次华擎的H170 Hyper最大的特色应该是自带时钟发生器可以自由超外频 可是楼主好久没有折腾超频了。。。 两图中除了CPU外频 以 ...

维修经验

CPU液态金属会侵蚀cpu核心吗?

日本维修技术前阵子看到有人说,液态金属时间长了会侵蚀cpu铜盖,那么问题来了,这货会不会侵蚀核心呢? 评论 这玩意儿好像只对铝起反应 评论 不是说,cpu的盖子是铜的吗。。。 评论 不会,核 ...

维修经验

CPUm6i究竟支不支持e3 1231v3

日本维修技术官网上看支持列表没写有e3 1231v3,装机帖又有人晒,百度也没个明确答案,那究竟能不能点亮?有在用的chher说一下么 评论 升级最新bios肯定可以支持 评论 我的p67evo官网上也没说支持12 ...

维修经验

CPU华擎 HYPER 妖板 正确玩法

日本维修技术600元的 B150,10相供电,释放洪荒之力 注意必须官网 Beta 区的 BIOS 有 AVX 的 CPU 可能会掉缓存 启动时按 X 键激活 SKY OC,重启后进入 BIOS 160924164727.jpg (95.63 KB, 下载次数: 1) 2016-9-24 17:47 上传 ...

维修经验

CPUE5 2686 V3和i7 6800K如何选择

日本维修技术默认用,不超频,两者功耗是一模一样的 E5 2686 V3:2.0主频,3.5睿频, 18核心36线程 ,45M L3 咸鱼大约2500~3000元 i7 6800K : 3.5主频,3.8睿频 ,6核心12线程 ,盒装3000元 评论 性能应该是26 ...

维修经验

CPUHD530硬解4K能力还是有点弱呀!

日本维修技术播放器用PotPlay 64bit,各种优化后,跑4K @120Hz视频只能到70帧左右的速度,勉强能用! 显示器用的4K的优派VP2780 未标题-1.jpg (211.97 KB, 下载次数: 0) 2016-9-26 21:29 上传 评论 这个估计你没优化 ...

维修经验

CPU6900k 1.25V到4.2体质怎么样

日本维修技术如图,体质怎么样,ring是35,没敢试了,都说ring高了毁硬件 评论 不错的U,但不算雕,上4.4就大雕了,这电压上4.5的目前没见有人发图 评论 谢谢前辈告知 评论 我这个用1.2V超的4.2,R ...

维修经验

CPUI3 6100 华擎B150M pro4超4.5g测试。

日本维修技术看看论坛没多少i3 6100的帖子,就转下自己发的show贴里面的数据,给大家参考下。家里还有当年的神U i3 540 oc 4.5G在给老妈用。 不知道数据上正常吗?有6100的朋友可以告诉下,另外是不有 ...

维修经验

CPU7系u会兼容100系主板吗?

日本维修技术RT,听说要推200系板,100系还能用吗以后。。 评论 兼容的 评论 感谢!以后换u就行了,目前消息200系板会有新的特性吗? 评论 24条PCI-E 3.0通道、支持Intel Optane混合存储技术、十个USB 3 ...

维修经验

CPU有心入5820k了,求教下温度问题

日本维修技术一直徘徊在6700k和5820k之间,6700k现在这德行直接把我推向了5820k啊,从2600k升级上来,三大件都要换,现在唯一疑惑的是IB-E ex这种顶级风冷能不能压住4.5g的5820呢?毕竟刚刚买一个多月。 ...

维修经验

CPU6600&6600K才100的差价

日本维修技术太少了吧。。。 6600.JPG (106.91 KB, 下载次数: 0) 2016-10-1 10:30 上传 评论 毕竟只是i5而已…… 评论 上z170 6600也能超,等于没区别,差价能有100已经不错了 评论 然后又见不超频人士推荐超频 ...