ZFS Deduplication 的性能问题
今天因为某些缘故将一个大文件从NAS的 HDD pool 复制到 SDD pool,然后文件复制到大约10GB时速度突然降低到了1MB以下。
感觉可能与 dedup 相关,又在 SSD pool 创建一个关闭 dedup 的 dataset。再次测试,一切正常,没有再出现降速的问题。
虽然关了 dedup 就完事,但为什么会这样呢?
到 Arch 群里询问了一下,文件系统专家fc老师如此回答:『我博客分析過 zfs dedup 的原理。基本上是把每個讀操作變成 3 個隨機地址的讀操作+1個寫操作,非常消耗 iops ,即便你 arc 開得夠大也需要夠快(iops層面)的存儲設備支撐』。
fc老师对zfs dedup的个人看法是:『zfs dedup 算是 sun 倒下之前新加的東西,我覺得還沒做到商業方案級別的成熟度就開源了 ,然後 sun 就沒了』。
之后到fc老师博客,将两篇讲解ZFS的长篇博文读完。
https://farseerfc.me/zhs/zfs-layered-architecture-design.html
https://farseerfc.me/zhs/btrfs-vs-zfs-difference-in-implementing-snapshots.html
ZFS dedup 确实就是个坑,收益不大,但IO带宽、内存占用巨大。
另外,在 Truenas 上开启 ZFS Deduplication 选项时提示:This feature is memory-intensive and **permanently affects how the data is stored.**
我对这里的 permanently affects 有一些担心,于是又请教了fc老师。
fc老师的回答:『關掉之後,之前開著的時候寫入的數據還是處於 dedup 的 DDT 裡,它們在被刪掉之前持續消耗額外的資源包括內存』。
一番对话下来,我的内心是这样的
比起今年说女性人口少了三千万这件事,还有个更惊人的,我查了一下第一次人口普查数据(http://www.stats.gov.cn/tjsj/tjgb/rkpcgb/qgrkpcgb/200204/t20020404_30316.html ),当时男性人口297553518,女性人口276652422,性别比1.07。我说,那是1953年啊,经过了抗战、内战等等一系列战乱,居然是个男多女少的人口结构,而且女性少了两千万,这正常吗?其他国家关于二战后的资料往往都提到,男性少了很多,只有等国,独树一帜,打完大仗,男的人口还更多,真叫绝了。
想起初一的一件小事。当时因为我的英语成绩太差,我妈找了个英语补习老师,每周补一次,三人小班,半年后成绩蹭蹭往上涨。
在学校的英语课上,每次上课前老师会要求(按学号顺序排列)一位同学上台用英语说一段话,可以是任何题材,可以提前背诵,也可以唱英文歌,只要肯开口就行。轮到我的时候,我就背诵了在补习班学的一篇短文。老师大为震惊,因为里面有很多课本上没有教的单词和语法。于是她希望我能一句英语一句中文讲解给其他同学听,我也照做了,并且很为老师的认可感到高兴。
到了下一次英语课,另一个同学也背诵了一篇短文,我知道他也是在外上英文补习班的,老师也很欣赏他的内容,也希望他能一句英语一句中文讲解给大家听。结果这位同学很不屑地拒绝了,当时只有23岁的老师仍然劝说他给大家讲讲,同学很没耐心地说:这样做太弱智了。年轻的老师和我脸都红了。
我重新想要每天写日记的原因之一,也是想要走出这种状态。实际上我也做到了每天写日记,只是后来又觉得应该保持这个空间的私密性,于是不再截图发出来。况且发出来,大概也没几个人真的来看;来看的人也不一定能get到我想表达的意思,毕竟写日记的时候对文本的要求,总是只需要我自己能理解就行。
我觉得自己在逐渐走出那个状态。
RE: https://xn--s8w913fdga.chn.moe/notes/9a2mf3xolo