起因
拼多多之前买硬盘,图便宜69块买了块256的硬盘,以为的nvme协议的,最后发现是sata3协议的,然后这个硬盘缓存也不是很大,估计就2g的样子,复制比较大的文件的时候延迟直接到了500ms,真心受不了,然后速度直接降到1-2mb,就很难受了
这个是as ssd benchmark工具测试
这是优化前的样子
然后就开始各种百度了
然后知乎发现:内存充当ssd缓存
说到优化,那最简单的方法就是加机器,可是钱包不鼓啊,那就加缓存吧
因为我的机器内存是32g的,分点也没啥影响
那怎么评估缓存的大小啊
内存参数ddr4 3600 162
那么带宽就是:360064/8*2=57.6GB/s
计算方式是3600Mhz,就是每秒传输3600百万次,每次传输64bit数据,也就是8字节数据,然后双通道
那么如何合理配比呢,我的硬盘只有可怜的0.5G/s,而我的内存速度辣么快57.6GB/s
一般这个缓存为1g,那也就是1/256分配了,那我的内存分个4MB即可喽
分配缓存
工具primocache
这个工具给我自动分配了14G的缓存妈嘞
那就测下速吧
着实有点离谱了,读12G/s,写10G/s
比pcie4x4的8G/s带宽还要恐怖啊
应用场景
老电脑或者给机械的raid充当缓存,再加个外接的ups,然后估算好实践,只要保证停电的半小时或者几分钟能把所有数据全部写回磁盘就好了,再配合大带宽,乖乖,万兆nas不是说跑就跑
再bt点的把系统放到内存里跑,那更快,响应无敌了
所以内存大就是强是嘛
后续
不知道说啥了,强就完事了
有没有一种可能内存够大把内存虚拟成硬盘去挖矿啊
使用感受
最大的感受就是秒开,以前一开很多个程序就特别卡,现在特别丝滑,比如说开vscode秒开
因为程序是先读到内存再执行的,缓存就相当于把程序先加载到内存了,就很丝滑
喜闻乐见鲁大师
之前是打败全国40的机器,现在直接打败71,果然宇宙的尽头还是软件和优化啊,性能发挥好了低配当高配
测试之前的nas
受限于硬盘,还是只能跑到这个速度,相对之前来说要稳定很多了,之前基本上跑着跑着就到了几mb而且还缓冲很久
突然感觉这个不香了,类似的技术已经出现了,硬件级别的,比如intel傲腾
但是从这个角度来说,以后的虚拟机完全可以跑在内存虚拟的硬盘上,那无盘系统是不是就是操作系统跑在内存里啊,这个后面可以探索一下
内存模拟硬盘
最终的nas方案以及优化
cpu 1核即可
内存 2-4g 其中操作系统512m运行即可 剩下的内存可以分出1g作为1级缓存
ssd 64g ssd分三个区,启动区,镜像区,缓存区作为2级缓存
机械硬盘 与ssd按照一定的比例 机械硬盘做仓库盘,组raid
这个适用于万兆带宽,应该吧没测试过,反正1g以下的应该可以秒传了
如果要在虚拟机中模拟,就要给centos外加一个内存模拟的硬盘,然后把网口设置成万兆的,然后给主机内做一个内存模拟的硬盘,不然会受制于ssd的性能,还是跑不到万兆模拟不出来
这个是模拟的结果,下一篇写吧
还是没跑出来万兆带宽,应该是受限于协议,查了以下smb2.0支持2Gb带宽,也就是250MB/s,smb3.0协议支持10G带宽,有点烦了,明天写吧,明天写一篇如何做到万兆带宽,硬件+软件+通信协议缺一不可
哎,那是不是就是说如果内存够大,做nas的时候用ddr3的内存弄个32g,然后分个20g做缓存,ssd做启动盘,剩下全部用机械raid就好了,一台高性能nas千把块就能搞定啊,实在不行不要机箱,用亚克力板鞋盒也行,3d打印也可以,然后cpu用魔改的板子,硬盘接口用pcie转接线即可,哎哎哎,开启新世界了,其实可以自己用c写文件服务器的,就服务端客户端那种,当然功能没有samba那么全面,反正也是抄来抄去的,然后网卡用服务器的万兆网卡,服务不是随便跑嘛