草庐IT

时代的弃儿 混合硬盘成了昙花一现的鸡肋

柏景福 2023-03-28 原文
虽然今天固态硬盘已达近乎人手一块的普及程度,但十年前,固态硬盘不仅容量仅够安装操作系统,NAND FLASH价格的高企也使得固态硬盘仅为高阶玩家尝鲜的“补品”。

但你知道么,为了用最低成本为用户带来更好的使用体验,传统存储厂商付出了很多的努力,推出过不少亮眼但却又颇显鸡肋的产品,例如昙花一现的混合硬盘SSHD。

固态硬盘可以简单理解为NAND FLASH颗粒+机械硬盘的混合体,看起来有点类似大容量缓存的机械硬盘,但运行机制方面却完全不同。

硬盘芯片采用的是DDR DRAM芯片,容量从几MB到几百MB,主要为机械硬盘提供数据缓冲的作用。

而混合硬盘中的NAND FLASH颗粒容量通常为几GB到几十GB,主要是利用其高速度存取的优势来改善机械硬盘的平均存取时间,而存储的主体依然是高容量的机械硬盘部分,有点类似于Windows Vista和Windows 7中的“Ready Boost”机制。

混合硬盘的优势是什么?

从原理看,混合硬盘会记录某时刻读写最频繁的数据,并且将其保存在响应速度最快的NAND FLASH中,从而达到堪比固态硬盘的性能。虽然听起来简单直接,但是混合硬盘却有自己的一套的工作机制,且不受操作系统的影响。

那么固态硬盘性能几何?不夸张的说可以让Word也有记事本的打开速度。系统在休眠的时候也可将内存中的数据写入NAND FLASH中,唤醒后即可瞬间进入之前的工作状态,而机械硬盘此时可能还在上电读取页面文件中。

笔者曾经就将一块2.5英寸的西部数据混合硬盘安装到微软XBOX ONE X游戏机中。该硬盘隶属高端的“黑盘”系列,采用8GB NAND FLASH+1TB 7200转的机械硬盘组合。

在游戏《刺客信条:起源》的DLC《法老的诅咒》中,主角巴耶克多次从拉美西斯大帝的雕像跳下摔死后,游戏的加载时间仅需几秒即可完成,真的堪比固态硬盘。

不仅实现了性能和容量“鱼和熊掌”兼得,混合硬盘将频繁使用的数据写入NAND FLASH后还会让机械硬盘部分停转“待命”。

待有新的数据读写时才会启动,这样就降低了机械硬盘的磁头的读写频率和盘片的旋转时间,提升性能的同时也使得使用寿命大为提升,并降低了耗电量。

虽然价格方面混合硬盘比普通机械硬盘贵一些,但要知道十年前的TB级固态硬盘可谓天价,仅用在数据中心等领域,因此堪称是固态硬盘普及之路的重要“里程碑”

混合硬盘怎么就成了鸡肋?

诚然混合硬盘有诸多优势,但可谓“成也原理败也原理”,一旦遇上大量数据的持续写入,小容量的NAND FLASH容量耗尽后,机械硬盘孱弱的读写性能就会“原形毕露”。

尤其是一些大容量的混合硬盘配备的是5400转的SMR“叠瓦式”机械硬盘……你懂的。因此混合硬盘不仅消费领域没有普及,企业级应用领域也没能实现对传统机械硬盘的取代。

而压垮混合硬盘这匹“骆驼”的最后一根稻草就是价格不断走低、容量不断提升的固态硬盘,不仅主流的M.2 NVMe PCIe3.0 1TB产品已抵达到500元价位,128GB容量的SATA固态硬盘更是跌破了百元大关,成为现代装机的标配。

而机械硬盘则被打入NAS、监控和移动硬盘的“冷宫”,因此混合硬盘的处境更显尴尬,成为不折不扣的鸡肋产品,主流电商平台更没有售卖,想尝鲜的同学只能去万能的某宝了。

有关时代的弃儿 混合硬盘成了昙花一现的鸡肋的更多相关文章

  1. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  2. ruby - 如何测试正在使用 RSpec 和 Mocha 调用的混合类方法? - 2

    我有一个模块:moduleMyModuledefdo_something#...endend由类使用如下:classMyCommandextendMyModuledefself.execute#...do_somethingendend如何验证MyCommand.execute调用了do_something?我已经尝试使用mocha进行部分模拟,但是当未调用do_something时它不会失败:it"callsdo_something"doMyCommand.stubs(:do_something)MyCommand.executeend 最佳答案

  3. ruby-on-rails - 为什么 DataMapper 使用混合与继承? - 2

    所以我只是对此感到好奇:DataMapper为其模型使用混合classPostincludeDataMapper::Resource虽然active-record使用继承classPost有谁知道为什么DataMapper选择这样做(或者为什么AR选择不这样做)? 最佳答案 它允许您从另一个不是DM类的类继承。它还允许动态地将DM功能添加到类中。这是我正在处理的模块中的类方法:defdatamapper_classklass=self.dupklass.send(:include,DataMapper::Resource)klass

  4. ruby-on-rails - 将 Ruby 代码和文字标记与 Haml 混合 - 2

    如何用HAML编写这个ERB:#OR我可以:=some_ruby_code+":"#and=some_ruby_code%br但我不想在这里连接,我想将它写成内联:(=some_ruby_code):#and(=some_ruby_code)%br 最佳答案 =some_ruby_code+":"-#and=some_ruby_code+""编辑1:我不确定您在寻找什么。你想要其中之一吗?==#{some_ruby_code}:-#and==#{some_ruby_code}或==#{some_ruby_code}:-#and=so

  5. ruby - 如何从 Sass 混合方程中删除测量单位? - 2

    我编写了一个非常简单的Sassmixin,用于将像素值转换为rem值(请参阅JonathanSnook的articleonthebenefitsofusingrems)。这是代码://MixinCode$base_font_size:10;//10px@mixinrem($key,$px){#{$key}:#{$px}px;#{$key}:#{$px/$base_font_size}rem;}//Includesyntaxp{@includerem(font-size,14);}//RenderedCSSp{font-size:14px;font-size:1.4rem;}这个mixi

  6. ruby - 如何对数组的所有元素执行 bool 运算并将结果混合在一起? - 2

    我想AND或OR数组中的所有元素,但要有一些控制,如散列元素选择所示。这是我希望实现的行为:a=[{:a=>true}­,{:a=>false­}]a.and_map{|hash_element|hash_element[:a]}#=>falsea.or_map{|hash_element|hash_element[:a]}#=>true在Ruby中是否有一种巧妙、干净的方法来做到这一点? 最佳答案 您可以为此使用all?和any?:a=[{:a=>true},{:a=>false}]a.any?{|hash_element|has

  7. ruby - Prawn PDF表格混合格式 - 2

    我正在尝试使用prawnpdf在ruby​​中生成一个简单的表格。我需要单元格中的一些文本是粗体,而一些不是粗体。例如:现在按照一些示例,我使用以下代码进行了基本的表格渲染:pdf.table([["1.Rowexampletext","433"],["2.Rowexampletext","2343"],["3.Rowexampletext","342"],["4.Rowexampletext","36"]],:width=>500,:cell_style=>{:font_style=>:bold})但我完全看不出有什么办法可以用不同的格式将更多文本插入到第一个单元格中。(在这种情况下

  8. ruby-on-rails - 我们是否将 Rails ActiveRecord 用作混合结构,即数据结构 + 对象? - 2

    我使用Rails已经4年多了,所以很明显我喜欢Rails并且喜欢按照Rails方式做事,但有时我会在不知不觉中陷入阴暗面。我最近学习了UncleBob的CleanCode。我在看第6章,有点困惑我们作为Rails开发人员是否违反了OO设计的最基本规则,即Demeter法则或封装?得墨忒耳法则指出,一个对象不应该知道另一个对象的内部结构,也不应该调用方法返回的对象的方法,因为当你这样做时,它表明一个对象对另一个对象了解太多。但我们经常从一个模型中调用另一个对象的方法。例如,当我们有像“订单属于用户”这样的关系时。然后很多时候我们最终会执行order.user.name或者为了防止它看起来

  9. ruby-on-rails - 混合 ActiveRecord 查找条件 - 2

    我想根据created_on>=somedateANDnameINsomelistofnames的组合查找记录。对于“>=”,我必须使用sql条件。对于“IN”,我必须使用条件散列,其中键是:name,值是名称数组。有没有办法将两者结合起来? 最佳答案 您可以在rails2.1及更高版本中使用命名作用域ClassTest"created_on>2005-01-01"named_scope:named_fred,:conditions=>{:name=>"fred"}end那么你可以做Test.created_after_2005.n

  10. 互联网时代“陨落”,国家发布元宇宙战略的信号对失业和担心失业的我们带来了什么启迪? - 2

    互联网这头“猪”真的掉下来了流量红利已经一去不复返了!3年前业界其实已经发出各种密集信号,在当时无论是BAT还是一些经济学家在3年前都已经预测过,互联网的流量模式已经衰竭,并且它将一去不复返。曾经处于互联网大潮的我们这一代人有喜有有悲也有感慨。还在4-5年前不少程序员会发觉在一个地方工作一年再跳一家公司,工资翻倍是至少的。其实这不是能力的表现这只不过是因此我们赶上了互联网流利红利、风投资本红利的“风口”而己。“赶上风口就连老母猪都能上树"用于形容当时的情形一点不为过。可是这个“风”这次是真的过去了,因此这头“猪”掉了下来,而且这次摔了还挺狠,直接给摔成了肉饼。业务模式、生态、环境的变革是时代的

随机推荐