企业级和消费级SSD,码农该如何选择?SSD高分低能的原因详解

2020-11-28 19:42:00 29点赞 56收藏 4评论

是返乡过年?还是就地过年?最新一届#双面过节指南#开始啦!本次征稿活动分为A面返乡和B面就地,大家可以根据自己的情况,分享自己的春节攻略,优秀的投稿文章还有可能能获得优厚的大奖哦,快点击查看活动详情<<<

购买理由

SSD如今已经相当普及,从个人用户看,大家喜欢根据跑分来评价SSD性能,但为何跑分很高的消费级SSD在某些应用上却性能奇差,而企业级即使SATA盘也能比消费旗舰SSD快几十倍?高分低能的原因是啥,跑分软件的背后原理将详细解释如下。

外观展示

跑分软件原理

Diskmark是一款常用的跑分软件,广泛被厂家和用户来测试SSD性能。那么它是如何测试的呢?

Diskmark只是一个空壳GUI,它并没有实现任何磁盘性能测试算法,而是直接调用了diskspd,一个微软开发的小工具来调用获取磁盘测试结果。

Diskspd是微软写的小程序,部分替代了之前的sqlio测试。下载:https://github.com/microsoft/diskspd

Diskmark直接调用diskspdDiskmark直接调用diskspd

为什么说Crystal Diskmark的4k写分数是毫无意义的,是因为它压根就是开着缓存在写DRAM

Diskmark调用diskspd的参数Diskmark调用diskspd的参数

-S表示FILE_FLAG_NOBUFFERING,这是Windows中禁用了系统文件缓存,但设备缓存依然有效,所以你测试的结果并非落盘持久化性能,而是写DRAM的性能。Windows中你需要关闭设备上的缓存,才能得到持久化。

既然你写入的数据都没落盘,那么SSD上带缓存和把内存作为SSD的写入缓存没啥区别(反正都没持久化)。

在Linux中,持久化需要调用fsync(相当于Windows中的FlushFileBuffers)做了落盘的操作,然后就是SSD的事情。

缓存与落盘缓存与落盘

内核缓存中的数据,会被排序和合并,然后再写入磁盘。排序是为了配合机械硬盘中磁头旋转的顺序,合并为了提高性能。

为什么需要持久化数据

有很多应用需要fsync来实现落盘持久化数据,特别是那些具有WAL的应用。WAL在存储系统中被广泛应用,是因为它保证了即使崩溃也能从日志中重做或者撤销以保证数据一致性。

例如,假设你是一个网盘用户,你上传了1kB的数据,告诉你成功了,如果不做落盘那么完全可能发生你后来发现你1k丢失了,这是致命的问题。数据库也一样,当你commit了一条写入/更新的SQL,你后来发现这条数据并没有写入,那么ACID就得不到保证了。

假设你是一个软件开发人员,需要开发一款使用WAL的存储或者分布式软件,那么如果SSD落盘性能低,那么你根本无法正确测试你程序的性能。例如raft算法就需要依赖落盘数据持久化WAL:

raftraft

只测缓存DRAM的写入性能,毫无意义。这类应用都要求fsync落盘持久化数据。

使用感受

  • 测试平台:ASUS X99,256G DDR4 2400,E5-2680V3

  • 系统:Centos 8 Stream最新

  • 文件系统:ext4

  • SSD: 三星SM863 480G,三星PM953 960G,铠侠RC10 500G,海康E200P 1T

pg_test_fsync是postgres自带的一个性能评估工具。其用来测试落盘fsync性能。

企业级SATA

三星SM963是一款企业级SATA SSD,其跑分弱于几乎所有的nvme SSD

SM863SM863

企业级NVME M2

PM953是三星出的一款TLC的企业级SSD,用于读取多的场景

PM953PM953

消费级NVME M2

铠侠RC10是一款KIOXIA出的带缓存的消费级SSD

凯侠RC10凯侠RC10

企业级???SATA

海康的E200P是有PLP掉电保护技术的,宣传上说属于入门企业级,可惜落盘性能并没有体现出PLP的用处。

海康E200P海康E200P

测试结果说明

测试结果显示了企业级SSD突出的落盘性能,甚至连SATA SSD都能比最新消费级NVME速度快15倍。凯侠RC10的fync只有每秒900次,意味着你如果是数据库/存储的开发/使用者,你的QPS完全被这个数字限制死了,很多数据库一次更新/写入都要2次以上fsync那么性能更糟糕。如果你是分布式系统开发人员/虚拟机用户这类需要大量fsync落盘的,那么消费级SSD带来的瓶颈不可忽视。

海康那个E200P比较有意思,它说是企业级,有带电保护,理论上有带电保护的SSD,fsync只要打到DRAM里就能返回,不应该这么差,不知道海康怎么想的。它起码和消费级SSD在性能上没区别。

落盘性能落盘性能

落盘差距的原因

NAND的写延迟都比较大,企业级SSD具有掉电保护,因此只要写入缓存就能返回fync操作,而消费级由于没有PLP需要真正写入NAND,这造成了落盘延迟大,IOPS惨不忍睹。

哪些人不需要关心落盘性能:

  1. 游戏用户

  2. office文档用户

  3. 视频创作

  4. 上网用户

  5. 股民

对于大多数人,因为使用的软件没有fsync之类落盘的要求,因此无需考虑使用企业级SSD,消费级SSD在这类用户中和企业级没有区别。

总结

  1. 跑分软件的4k写,测得数字反映了DRAM写入性能,而非数据落盘持久化性能。

  2. 对于数据库,分布式共识算法,虚拟机,各种键值存储系统等一些应用,消费级SSD会严重影响性能

  3. 对于存储开发测试人员,或者需要玩分布式系统算法的码农,或者有很多虚拟机/数据库应用的用户,企业级SSD可以提供高性能

  4. 对于没有PLP的SSD而言,DRAM缓存放在盘上还是放在计算机内存上,并没有什么区别

  5. 消费级和企业级SSD的区别,不仅仅是数据安全性方面,性能差异也是重要方面


展开 收起

KIOXIA 铠侠 RC10 EXCERIA 极至瞬速 固态硬盘 1TB M.2接口(NVMe协议)

KIOXIA 铠侠 RC10 EXCERIA 极至瞬速 固态硬盘 1TB M.2接口(NVMe协议)

269元起

SAMSUNG 三星 970 EVO Plus系列 固态硬盘

SAMSUNG 三星 970 EVO Plus系列 固态硬盘

374元起

HIKVISION 海康威视 C2000 Pro M.2 NVMe 固态硬盘 1TB

HIKVISION 海康威视 C2000 Pro M.2 NVMe 固态硬盘 1TB

669元起

KIOXIA 铠侠 EXCERIA SATA TC10系列 固态硬盘 480GB

KIOXIA 铠侠 EXCERIA SATA TC10系列 固态硬盘 480GB

184元起

KIOXIA 铠侠 EXCERIA SATA TC10系列 固态硬盘 960GB

KIOXIA 铠侠 EXCERIA SATA TC10系列 固态硬盘 960GB

669元起

KIOXIA 铠侠 EXCERIA SATA TC10系列 固态硬盘 240GB

KIOXIA 铠侠 EXCERIA SATA TC10系列 固态硬盘 240GB

204元起

HIKVISION 海康威视 C2000 PRO 固态硬盘 512GB NVME协议 M.2接口

HIKVISION 海康威视 C2000 PRO 固态硬盘 512GB NVME协议 M.2接口

379元起

SAMSUNG 三星 T7 移动固态硬盘 PSSD 500GB 太空灰

SAMSUNG 三星 T7 移动固态硬盘 PSSD 500GB 太空灰

639元起

三星860 EVO 250GB固态硬盘SSD笔记本台式机SATA

三星860 EVO 250GB固态硬盘SSD笔记本台式机SATA

289元起

SAMSUNG 三星 870QVO 固态硬盘 4TB

SAMSUNG 三星 870QVO 固态硬盘 4TB

3779元起

KIOXIA 铠侠 EXCERIA PLUS 极至光速 固态硬盘 500GB M.2接口(NVMe协议)

KIOXIA 铠侠 EXCERIA PLUS 极至光速 固态硬盘 500GB M.2接口(NVMe协议)

275元起

海康威视SSD固态硬盘C2000pro nvme协议M.2接口256/512GPCIe超级笔记本硬盘 2TB【C2000PRO高性能】

海康威视SSD固态硬盘C2000pro nvme协议M.2接口256/512GPCIe超级笔记本硬盘 2TB【C2000PRO高性能】

1439元起

KIOXIA 铠侠 EXCERIA 极至瞬速 固态硬盘 250GB M.2接口(NVMe协议)

KIOXIA 铠侠 EXCERIA 极至瞬速 固态硬盘 250GB M.2接口(NVMe协议)

264元起

HIKVISION 海康威视 C2000 PRO M.2 NVMe 固态硬盘 512GB

HIKVISION 海康威视 C2000 PRO M.2 NVMe 固态硬盘 512GB

439元起

KIOXIA 铠侠 EXCERIA PLUS 极至光速 固态硬盘 1TB M.2接口(NVMe协议)

KIOXIA 铠侠 EXCERIA PLUS 极至光速 固态硬盘 1TB M.2接口(NVMe协议)

989元起

HIKVISION 海康威视 C2000 Pro M.2 NVMe 固态硬盘 2TB

HIKVISION 海康威视 C2000 Pro M.2 NVMe 固态硬盘 2TB

1299元起
4评论

发表评论请 登录
  • 最新
  • 最热
  • 4楼
    2020-12-04

    还有开发在本机装数据库?

  • 板凳
    2020-11-28

    SSD的掉电保护和传统RAID卡,存储设备的还不太一样,入门级掉电保护可能只保护FTL。所以他不敢给缓存数据算落盘

  • 椅子
    2020-11-28

    码农其实随便搞个ssd就好了,然后最主要的是内存,然后cpu,最后公司反正肯定有svn,git,无所谓,然后私活的话自己在家用nas搭个gitlab,不久完了。。

  • 沙发
    2020-11-28

    额,全篇有点扯淡啊。不要老拿码农说事儿。就算是用fio跑,还分io类型呢。wal日志写用fsync基本都是可配,开了性能到爆炸。4k的随机读取是有价值的,一般评测软件都会标记测试file大小,自己看看,还要设计ssd多channel并发io的问题。服务器上硬盘转速高,ssd颗粒用slc,比消息级高不是很正常吗

评论举报

请选择举报理由

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
56
扫一下,分享更方便,购买更轻松