草庐IT

光看颗粒就行了?固态硬盘可不是这么选的

托尼 2023-03-28 原文
大家记不记得去年有一阵子硬盘特别便宜?奇亚币暴跌之后很多硬盘的价格甚至只有现在的一半!

我们编辑部当时就团购了一波。

然后居然: 翻!车!了!

据完全统计,损坏率来到了百分之八十。

托尼自己买的这一块,就反反复复坏了三次。

这块盘每坏一次保修时限就重置一次,如果继续保持这个坏的频率。

那么托尼有望得到一块永久保修的硬盘。

在不断的掉盘和退换中,托尼不断思考硬盘这个东西的底层逻辑,形成了一套挑选的方法论,争取能够赋能差友。

说人话!就是今天我们要从 M.2 的各部件出发告诉大家,如何选到一块好的固态。

( 如果你是进来看固态硬盘推荐的,在文章的最下方我们也会分享这个时间点各价位托尼认为最值得买的硬盘供大家参考。)

所以什么是 M.2 固态呢?

粗暴地说,长这样的固态硬盘都是M.2固态。

它最大的特点,就是体积小,不用插电源线,还支持更快的速度,这样的固态硬盘谁不喜欢呢?

但这玩意买起来和电脑里的其他硬件还不太一样。别的硬件的都是一个萝卜一个坑,你要是买一张 3080 ,卖家基本上不敢给你发一张 3060 。

M.2 难挑,很大程度上就是因为在这块小小的盘上就有三个主要部件。

它们分别是:承担控制功能的主控板、充当硬盘操作系统的固件,还有用于储存的颗粒。

这三个主要部件规格很多,挑起来很麻烦。但与此同时,他们对于硬盘的性能也有很大的影响。

咱们就先来看一看硬盘颗粒

为什么先说颗粒呢?并不是因为它最重要,而是大家对它更熟悉,关注硬件的朋友都能上来说上两嘴。

首先我们要明确一下,衡量颗粒的指标有三项:速度,寿命,价格

我们打一个不那么严谨的比方,假如硬盘是你家门口的快递站,里面货架数量是固定的,那么SLC就是一层货架上只放一个快递,MLC就是放两个,TLC三个,QLC四个。

当同一层货架上的快递越少,我们找快递就越快。而且因为每天取放快递的次数少,快递架的寿命也就更长。

坏处就是如果一层货架上快递少了,快递站的运营成本也变高了。

所以对应来说,无论是读取速度,颗粒寿命,排行都是 SLC > MLC > TLC > QLC 。

价格从贵到便宜也是 SLC>MLC>TLC>QLC。

东芝同样大小的 SLC 和 MLC 颗粒。

价格正好是 5 倍 ▼

当然,厂商们有时候也会在颗粒的命名上做手脚。上次托尼在买硬盘的时候,就看到了一个 3Bits MLC 。

实际上这玩意就是个 TLC 颗粒。遇到类似的这种情况,我们只需要记住:1Bit = SLC、2Bit = MLC、3Bit =TLC、4Bit = QLC

命名上带有“ bit ”的,别管这玩意是啥 LC ,一律按照上面的这个规则处理。

再说回颗粒的挑选。如果恰巧你的财力雄厚,想买 SLC 还是 MLC ,都随便你。

但托尼说句实话,现在硬盘上最难坏的东西就是颗粒了。

就算是最差的 QLC 颗粒,1T 硬盘的写入寿命也有 300TBW 左右。

就算你每天坚持不懈写入 100GB 的内容,也够你造八年半。

而且相对颗粒来说,主控带来的速度提升更加明显。所以咱们在买硬盘的时候,其实更应该关注主控。

主控板其实更重要

主控板又是个什么东西呢?如果把 SSD 比作电脑,那主控板就相当于电脑上主板 + 内存 + CPU 的大集合。

它主要起到三个作用:

一是合理分配资源,争取让所有的颗粒都有事做,不致于出现旱的旱死涝的涝死这种情况。

二则是数据中转,让你的储存单元与电脑上的数据能够正常沟通。

三则是负责固态硬盘内部各项更高级指令的完成。

对我们来说,主控是固态硬盘上最重要的组件,重要程度甚至比颗粒更高。因为一块硬盘的理论极限性能,是由主控板决定的。

而且主控板还不是和品牌捆绑的。就算是英特尔这类大厂,有时候出于成本考虑,也会在自家消费级产品上使用别家的主控。

这也意味着,咱们买大牌子并不一定能买到它们自家的主控。

好在查找主控型号也不是件难事。只要是块发布过的硬盘,随便百度一下,就能找到主控板的型号。

有了主控板的型号,我们就能在主控厂商的官网找到规格书。

咱们这里就用慧荣的主控作为例子。

规格书里的信息很多,但最值得咱们注意的就是最高性能这一栏。

这几个参数里,连续读写速度越高,文件传输就越快,随机读写越快,电脑启动,游戏加载耗时就越短。

其次需要关注的,则是 PCIe 协议。

如果你的主板只支持 PCIe3.0 ,那我建议你最好不要买 PCIe4.0 的 M.2 ,虽然也能用,但多少有点浪费钱。

至于硬盘的固件,版本实在是太多,实在是不能总结出一套辨认的方法。

但无脑挑大品牌,问题一般不大。只要是有头有脸做固态的厂商,固件都不会太拉。

因为固件得靠自己研发,那些特别小的厂商,真不一定能把它做好。

总结

综上所述,如果你想自己挑一块 M.2 固态,那么托尼建议先屏蔽掉特别小的厂商,优先挑选更好的主控板,最后再看使用的颗粒。

但如果,你懒得挑或者不是特别自信的话,那直接上大品牌一般都不会出错。托尼也挑选了几个风评比较好的产品,大家可以从里面找找看,有没有符合自己需求的硬盘。

附硬盘推荐:( 托尼个人取向,推荐硬盘均为1TB,所有价格均为官方实价 )

500元以下暂无

京东京造5系 649元

镁光96层3D TLC颗粒 InnoGrit英韧IG5216主控,PCIE 3.0性价比首选

三星970 EVO Plus 899元

新款升级后为980pro同款颗粒 三星自家Elpis主控PCIE 3.0版,PCIE 3.0性能标杆

金士顿KC3000 1099元

Micron176L B47R TLC颗粒 群联E18主控,满血PCIE 4.0性价比之选 使用时需注意散热

三星980 PRO 1399

第6代V-NAND TLC闪存颗粒 Elpis主控,PCIE 4.0旗舰首选

图片资料来源:

https://www.coolapk.com/feed/19021877?shareKey=YWU3NzIxNTJiYzA1NWVjOGJlNTk~&shareUid=1477740&shareFrom=com.coolapk.market_10.2.1

https://nl.hardware.info/artikel/10185/waar-moet-je-op-letten-bij-de-aanschaf-van-een-ssd

https://www.yiqi.com/retiao/detail_2351.html

https://www.bilibili.com/video/av44951703/

https://www.siliconmotion.com/cht/products/client/detail

https://www.kingston.com/cn/blog/pc-performance/two-types-m2-vs-ssd

有关光看颗粒就行了?固态硬盘可不是这么选的的更多相关文章

  1. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  2. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  3. ruby-on-rails - 只有当不是 nil 时才执行映射? - 2

    如果names为nil,则以下中断。我怎样才能让这个map只有在它不是nil时才执行?self.topics=names.split(",").mapdo|n|Topic.where(name:n.strip).first_or_create!end 最佳答案 其他几个选项:选项1(在其上执行map时检查split的结果):names_list=names.try(:split,",")self.topics=names_list.mapdo|n|Topic.where(name:n.strip).first_or_create!e

  4. ruby-on-rails - Rails 格式验证——字母数字,但不是纯数字 - 2

    什么是测试格式验证的最佳方法让我们说一个用户名,使用字母数字的正则表达式,但不是纯数字?我一直在我的模型中使用以下验证validates:username,:format=>{:with=>/^[a-z0-9]+[-a-z0-9]*[a-z0-9]+$/i}数字用户名(例如“342”)通过了验证,这是我不想要的。 最佳答案 您想“向前看”一封信:/\A(?=.*[a-z])[a-z\d]+\Z/i 关于ruby-on-rails-Rails格式验证——字母数字,但不是纯数字,我们在Sta

  5. ruby - 强制浏览器下载文件而不是打开文件 - 2

    我要下载http://foobar.com/song.mp3作为song.mp3,而不是让Chrome在其native中打开它浏览器中的播放器。我怎样才能做到这一点? 最佳答案 您只需要确保发送这些header:Content-Disposition:attachment;filename=song.mp3;Content-Type:application/octet-streamContent-Transfer-Encoding:binarysend_file方法为您完成:get'/:file'do|file|file=File.

  6. ruby - 更改 $LOAD_PATH 时,为什么使用 unshift 而不是 push? - 2

    我发现ruby加载路径是一个数组,很多项目都是这样使用的:$:.unshift(File.expand_path("../../lib",__FILE__))可以将本地文件添加到ruby路径数组的前面,方便我们require或者load。所以,我希望知道为什么我们不使用push将文件添加到数组的末尾? 最佳答案 假设您有一个“date.rb”文件(为什么不呢)并且您想要加载这个文件,而不是标准库日期。如果您使用追加,当您调用require'date'时您的文件将永远不会被加载,因为它位于数组的末尾并且标准日期会在之前找到。因此,如果

  7. ruby - 如何排序不是简单的哈希(哈希的哈希) - 2

    我有一个这样的哈希{55=>{:value=>61,:rating=>-147},89=>{:value=>72,:rating=>-175},78=>{:value=>64,:rating=>-155},84=>{:value=>90,:rating=>-220},95=>{:value=>39,:rating=>-92},46=>{:value=>97,:rating=>-237},52=>{:value=>73,:rating=>-177},64=>{:value=>69,:rating=>-167},86=>{:value=>68,:rating=>-165},53=>{:va

  8. ruby - Unicorn 使用 `reload` 而不是 `restart`? - 2

    我在这里对我的部署策略有点困惑,在什么情况下部署时我想向unicorn发送reload信号?例如在我的例子中它会是这样的:sudokill-sUSR2`cat/home/deploy/apps/my_app/current/tmp/pids/unicorn.pid`我一直在通过杀死那个pid来部署我的应用程序,然后通过类似的东西再次启动unicorn:bundleexecunicorn-cconfig/unicorn/production.rb-Eproduction-D我只是想知道为什么要使用重新加载?我可以通过这样做获得部署的任何性能吗? 最佳答案

  9. ruby - 使用 Ruby FileUtils 而不是 Bash 命令的好处? - 2

    使用FileUtils方法有什么好处http://ruby-doc.org/core/classes/FileUtils.html比等效的Bash命令? 最佳答案 除此之外,您不必担心确保您的目标平台安装了您正在使用的特定工具这一事实,以及正确引用shell异常的问题(如果您的目标是特别有问题的)Windows和Unix-alikes——尽管有Cygwin、GNUWin32等),如果你使用Ruby的FileUtils,你有一个Ruby函数调用的中等大小的开销,而如果你使用外部实用程序,你有相当大的开销来启动一个外部进程的每一次“调用

  10. ruby-on-rails -/usr/local/lib/libz.1.dylib,文件是为 i386 构建的,它不是被链接的体系结构 (x86_64) - 2

    在我的mac上安装几个东西时遇到这个问题,我认为这个问题来自将我的豹子升级到雪豹。我认为这个问题也与macports有关。/usr/local/lib/libz.1.dylib,filewasbuiltfori386whichisnotthearchitecturebeinglinked(x86_64)有什么想法吗?更新更具体地说,这发生在安装nokogirigem时日志看起来像:xslt_stylesheet.c:127:warning:passingargument1of‘Nokogiri_wrap_xml_document’withdifferentwidthduetoproto

随机推荐