几天的Chia挖矿体验:感觉它在谋杀的我SSD

虚拟币已经火了好一段时间了,BTC比特币的暴涨带火了一批小弟,当中比较火的就是ETH以太坊,也是因为它的原因导致显卡的价格暴涨,而现在大容量硬盘的价格也因为一个叫Chia奇亚的虚拟币涨了起来,与BTC与ETH用剪刀直接的工作量证明不一样,它用的是“空间和时间证明”(Proof of space and time), 以硬盘空间和时间来作为资源,利用CPU或者显卡通过某种算法将硬盘空间写入数据,用户将数据存储在硬盘上一段时间,赢得奖励的机会和分配的空间成正比,其实用这种证明的虚拟币Chia并不是第一个, 只不过Chia是近段时间比较火的一个。
Chia的原理这里就不说了,网上已经有许多很专业的分析,简单来说的话就是程序在你硬盘上写满了彩票号码,服务器会不时随机抽奖,分配的硬盘空间越大,在线时间越长,中奖的可能性越大。
最开始的时候发现这Chia挖起来很简单,基本上只需要你硬盘有足够的可用空间的话就能挖,程序看起来也很简单,所以就去下了个来研究一下,这里只是说一下这几天种田的体验。
图片
安装好软件后会叫你创建密匙还有其他的一些基本东西,把密匙记住就可以了,都弄好后就点绘图,然后点击右上方的添加Plot文件,开始P盘。
图片
Plot文件的大小有K=32、K=33、K=34和K=35四种,K=25并不会计入主网算力内。不同Plot文件的大小和所需缓存盘大小软件是有说明的,一个K=32的需要101.4GB硬盘空间,并且需要239GB的缓存空间;K=33的需要208.8GB硬盘空间,并且需要521GB的缓存空间;K=34的需要429.8GB硬盘空间,并且需要1041GB的缓存空间;K=35的需要884.1GB硬盘空间,并且需要2175GB的缓存空间。
Windows操作系统里面显示的硬盘可用空间其实就是GiB,所以可以直接根据HDD与SSD显示的可用空间来分频P盘队列。
图片
P盘想效率必然是要并发的,当然能同时并发几个就得看机器性能了,每个P盘任务至少需要2个线程,k=32文件最少需要3390MB的内存,K=33的最少要7400MB,K=34需要14800MB,K=35需要29600MB。划分更多的线程和内存可以加快P盘速度。
最初用的平台是Ryzen 9 3900XT加32GB内存,缓存用SSD是技嘉AOURSU Gen4 7000s 2TB,目标HDD是西数的红盘6TB。
图片
其实这次只是想看看P盘的系统需求,没有经过任何计算直接拍了4个K=34的队列,每个都开够了24线程并给了10GB的最大内存,实际上这个缓存盘是根本塞不下的,只是单纯看看能不能把系统资源耗尽。
结果就是12核的Ryzen 9 3900XT负载波动有点厉害,一时占用100%,一时占用就掉到20%,当然这是程序的问题,而32GB的内存是真的被吃光了,SSD的写入量非常大,但读写性能不足以造成瓶颈。
在观测一段时间后我准备停下这任务的时候悲剧发生了,手贱点了下密匙,然后进入了一个没有后退键的界面,平时点击最上方的“公共指纹为*****”的按键是可以退回住界面的,但P盘过程中点进去只会转圈圈,根本无法回到主界面,此时你只能等它P完,然而我刚才乱来的设定只会把缓存盘塞满,是不可能完成的,除了强行关闭程序外没别的办法,所以绝对不要在P盘过程中点那个密匙,这程序有bug!
图片
把程序关了之后我认真算了一下,2TB SSD的实际可用空间是1.81TB,可用并行7个K=32,而32GB的内存可以吃满的话继续堆就好了,我们手头上容量最大的那套内存是16GB*8的芝奇皇家戟,索性直接把HEDT平台搬出来好了,最后真正用来P盘的系统变成了18核的Core i9-10980XE,128GB内存,缓存盘还是技嘉AOURSU Gen4 7000s 2TB,目标HDD是西数的红盘6TB。
这次正式P盘的时候刚开始的时候我排了7个K=32的队列,随便分频了下CPU线程与内存,基本上算果可以把资源耗尽的,但实际开始后只有两个队列是真的在动,其他的都卡在1%,经过两小时后没任何动静,我决定把5个不会动的序列删了,加了3个K=33队列,在确认这三个队列都能动后就放一边不管了。
第二天回来上班查看HWInfo记录的日志,生成一个K=32文件大概需要6.5小时,K=33文件开始时间没有记录,所以不太清楚到底花了多少时间,生成三个K33两个K32文件总共占了829GB的硬盘空间,而HDD的写入量是840.1GB,但SSD的读写非常厉害,整个P盘过程,SSD读取11.8TB,写入12.06TB,看到这个写入量我就头痛,因为SSD的写入次数是有限的,把这个6TB的红盘P满虽然不至于把SSD写死,但磨损也很厉害。
然后看了下内存占用量,最高是42.6GB,所以插64GB其实就够了,CPU最高占用率是97%,但基本上大部分情况下都是很空闲的。看了下剩下这么多内存可用,我都了歪脑筋,干嘛不用RamDisk?
但除非你插满256GB,否则也别指望能完全用RamDisk来P盘,最初尝试的时候我发现Chia的软件是可以指定两个缓存盘的,所以我划分了110GB的RamDisk盘做主缓存盘,SSD做备用缓存盘,这样来试了P一个K=32,结果就是这软件远没有我想象中那么智能,RamDisk用光后就直接卡在那里不动了,没有自动跳转使用备用缓存盘。最终是用了混合模式用内存+SSD组合出了一个300GB的RamDisk盘。
图片
效果还是蛮好的,P一个K=32的文件产生了1401110MB的写入量,而实际写到SSD里面的只有859561MB,内存帮SSD抵消了39%的写入量,相当于延长了它39%的寿命。然而这样做的局限性很大,因为这样每次只能P一个K=32,而且时间并没有快多少,想高效率P盘还是得同时并行多个才是最好的。
P完这个K=32后我就停手了,因为每P一个对SSD的损耗太大了,以K=32为例,对HDD的写入其实就101GB,但SSD的写入量是1.33TB,差不多是13.5倍的写入放大,简直是谋杀SSD。
说真的这个Chia,普通人玩下无所谓,通常来说写满一两个HDD也不至于把SSD写死。但对于矿工来说选择只有两个,一个就是把SSD当作消耗品,写死一个就换一个,二就是买的企业级的SSD,MLC或者SLC这种耐久度高的比较适合,当然最佳选择是Intel的傲腾,这个几乎可以忽略寿命的东西是最好的选择。
我跟一个挖矿的朋友讨论过这个Chia,其实挖Chia的投入可能不比用显卡挖ETH低,挖ETH的话用专用矿板可以一块连多张显卡,但这个Chia你想P盘快的话得有高性能的CPU,大容量的内存和高寿命的SSD,还需要一堆硬盘,普通主板的SATA口数量最多就8个,所以你还得去买阵列卡来增加SATA口数量。
最适合做Chia矿机的其实是数据中心服务器,但这东西太贵了,普通人玩不起,但云服务运营上手上是有现成的设备,如果某日Chia真的起来了,他们觉得有利可图入场的话,全网大小肯定直线飙升,到时候想挖Chia就真的难了。所以我对Chia的态度就是,玩一下可以,但是否值得投入就真得慎之又慎。