话说某日浏览健康网站的时候,S哥突然看到浓重加黑的标题:
Flashtec NVRAM Does 15 Million IOPS At Sub-Microsecond Latency
用手指逐个字母念完之后,S哥皱紧了眉头,当然大部分的单词他还是认识的,连在一起却有一种说不出来的怪异感觉。
15 Millon IOPS !排除完视觉干扰(擦了擦眼镜),S哥倒吸了一口凉气。15 Million 的 IOPS 是什么概念呢?不是一般的快。
我们先看一下一张表:
表信息来自维基百科,里面列举了一些ssd 和其它flash相关的存储器。通过对比IOPS发现,里面最快的大约在1个Million(百万)左右,是Flashtec的十分之一。
让我们看看他的庐山真面目:
好神奇,还有个尾巴。(不知是超级电容还是电池)用来应对host异常掉电。
该产品既不是NVDIMM 也不是传统的SSD,叫做NVRAM,因为他既可以当SSD也可以当成DRAM用,与NVDIMM不同的是,它并不插在内存口。接口采用PCI-E 3.0 x8 lane 。
S哥找来一张它两种模式的图示:
S哥疑问了,就算是采用 Memory Mapped Access, 他的带宽也就是PCI-E的带宽阿,PCI-E x8 lane 的带宽大约是8G B/s (按照每一个lane,1GB/s带宽估算)。那他的理论IOPS应该最大为:2Million (8G B/ 4KB = 2Million )。
到底哪里错了呢? S哥百思不得其解。
冷静一下,
什么是IOPS呢?全称是 Input Output Operations Per Second,即所谓的每秒钟可执行的输入输出操作。这是个用来衡量存储设备性能的重要指标 。
S哥发现IOPS的概念里,并没有写明每个operation的传输大小。换句话说,它可以随便大小,不一定是4KB!
之前估算它理论IOPS的时候,S哥想当然的用了4KB的datasize。
S哥于是开始Google这个产品的测评:
作为一个block设备,配制成类似SSD模式,对于4K的数据传输大小,它的IOPS 大约1M左右:
那他15M的IOPS从哪里来呢?
继续深入挖掘,在一篇英文介绍中,终于发现有人写道:
“If you are focused on writes for those metadata and database workloads, then on 64 byte random writes, the Flashtec can deliver 15 million IOPS, which is about 100X what an SSD can deliver, according to Peene. (The SSDs can do somewhere between 50,000 and 100,000 IOPS.) In block mode, the Flashtec NVRAM drive can do about 1 million IOPS with 4 KB file sizes.”
所以说,15Million的IOPS 是用64 byte的传输大小计算的。
一切真相大白!
算成传输速度的话,15Millon的IOPS 乘以 64Byte 得到 <1 GB/s 的速度。从传输速度上并不占优势,但是随机读写的IOPS 反映了存储器内部控制器的处理能力,还是要点赞的。
S哥最后总结一下:
- IOPS 的比较要结合具体的传输数据的大小来比较,不要脑补成4KB。
- 要浏览健康网站,比如SSDFans。
参考网站:
http://www.storagereview.com/pmc_nv1604_flashtec_nvram_drive_review
PMC Announces FlashTec NVRAM Drives with More Then 10 Million IOPS
https://en.wikipedia.org/wiki/IOPS
http://pmcs.com/products/storage/flashtec_nvram_drives/nv1604/
http://www.enterprisetech.com/2014/08/06/flashtec-nvram-15-million-iops-sub-microsecond-latency/
想要每天看一条SSD文章吗?扫一扫,微信关注我们!或者微信搜索公众号ssdfans关注。