看傲腾配OpenCAS加速联通沃云业务

傲腾(Optane)是Intel在存储器方面的重量级产品。其采用3D Xpoint存储非易失介质来存储数据。3D Xpoint的一大特点就是时延更加接近SDRAM,而寿命方面大大高于NAND Flash,而容量密度则介于SDRAM和NAND Flash之间。这种特性决定了傲腾天生就是在SDRAM和Flash甚至HDD之间做缓存的好料

目前傲腾的几种形态分别是PCIe接口的闪存盘或闪存卡,和DIMM接口的内存条。

这些时候必须降时延

冬瓜哥曾经在这篇文章中详细介绍了为何前期测试时性能碉爆而上线后却惨不忍睹,也就是时延问题,在交互式I/O场景下是首要考虑因素。所谓交互式I/O,或者说OLTP类I/O模型,其数据块一般较小,而且多为同步I/O,也就是在上一笔I/O没有返回结果之前,不会进行下一笔I/O,此时存储系统的高并发完全派不上用场。除非业务层面是多路I/O流同时进行。

看看下面这张图,大多数桌面类应用无一例外全部都是交互式I/O模型,除了一些后台数据处理类业务比如音视频播放/处理、压缩解压、上传下载等等外。图中显示出,多数桌面类常用程序发出4个及以上数量的并发I/O的概率已经非常低。50%以上的概率都是发出单个同步I/O。

一个存储系统,并发度可以低,这不是问题,因为可以堆多套系统形成分布式架构来轻而易举的提升并发度但是如果一个系统时延很高,那么基本上是很难解决的,因为导致高时延的原因之一就是I/O的软件处理路径过长,处理步骤过于复杂,而不管是砍掉路径上的处理模块,还是优化其中某个慢速步骤的处理速度,其花费的精力都非常巨大,甚至得不偿失。此时当然希望直接从底层硬件层面一劳永逸的解决问题,也就是利用极低时延的存储介质,一砖撂倒。

实际上,最让Intel傲腾引以为傲的地方,应该是它极低的处理延迟。凭借相变存储在物理上天生的远高于NAND Cell的相应速度,即便是上层只发送一笔I/O请求(Queue Depth=1)的时候,其体现出来的IOPS也非常高。

相对而言,NAND Flash只有在高队列深度的情况下才能达到较高的吞吐量,因为NAND Flash延迟较高,为了获得较高IOPS,Flash SSD内部必须采用多通道、多颗粒、多Plane并发方式来获取高吞吐量。而对于原本就低并发的应用而言,傲腾显然可以更加高效的提升业务性能。

目前,采用傲腾介质作为数据缓存的应用案例越来越多,联通沃云与Intel最近搞了一个性能优化联合调优测试。目标业务是联通沃云。联通沃云海量数据检索平台,每日要从各省采集业务数据,单省日均采集记录达到 500 万条,最高峰值达到千万条记录;而后入库对数据做解析和分析后,提供对外的开放大数据服务,受信的第三方通过开放的接口可随时调用大数据平台中的数据。平台采用 ES(Elastic Search)作为分布式搜索引擎,由于云主机 IO 读写性能限制,导致大规模查询和按条件查询响应较慢。ES 大部分场景都是读多写少,因此在对系统做分表和 ES 检索优化的同时,探索提升云主机 IO 读写性能,尤其是减少读请求的延迟是一个非常重要的优化方向。

沃云基于 OpenStack 构建,后端存储和计算节点之间采用ISCSI 协议或者 RBD 相连。这些连接方式兼容性和稳定性非常好,但是延迟通常较高,典型的延迟都是毫秒级。毫秒和微秒对于人类来说没多少区别,但是对于一个计算机系统来说,相差一千倍。比如在下面的模拟测试结果中,平均随机读延迟达到了2毫秒,如果考虑长尾效应,则最差延迟超过了9毫秒。随机写的延迟大致为读的两倍

而如果将应用直接迁移到傲腾介质上,的确是最优的选择,但是鉴于傲腾的容量目前还达不到NAND Flash级别,所以将它用作缓存是一个非常具有性价比的方案,这就必须有一层软件来作为缓存管理层。好马配好鞍,Intel专门为傲腾开发了开源的缓存管理软件——OpenCAS。OpenCAS会在系统中虚拟出一个块设备,应用部署在该层的块设备之上,所有的I/O请求就会被OpenCAS接收并处理,利用高效的缓存算法,发挥出傲腾的性能。

和主流的缓存软件一样,OpenCAS也支持多种缓存模式,包括Write Through,Write Around,Write Back,Write Only,Pass Through。将OpenCAS安装到Compute Node上,并设置为对远程Ceph映射过来的盘,如下图所示。

测试采用了一块750GB的Intel Optane P4800X SSD,标称读写延迟10微秒。

这里对以上采集的数据分别按照随机读,随机写,7:3的随机读写进行分组对比,并形成柱状图使得测试结果更直观易懂。图中 Ceph 指的是直接对 Ceph 远程盘进行测试的结果,无缓存。

测试随机读取时,循环运行 FIO 测试工具 30 次。随着测试的进行,缓存的命中率也从开始几秒时的 1.3%左右逐步提升到最后的 95%-97%。这过程中性能表现也越来越好。这里数据采用 30 次运行里表现最好的数据。以下截图是 Open CAS 软件的缓存命中统计。

从以上的数据对比图可以看出,加了缓存之后,不管是 Write-Through 模式还是 Write-Back 模式,数据读取的延迟都有了非常大的改善。其中平均延迟从2006.2微秒减少到了 52.04 微秒(Write-Through)以及 51.01 微秒(Write-Back),降低了约40倍。P99 延迟数据从 2343 微秒减少到了 67 微秒(Write-Through 和 Write-Back 均是),缩小了约 97%,与此同时,每秒读请求数 IOPS 从 19142.84 提升到了 118046.38 ( Write-Through )以及 124237.81 (Write-Back),提升了约 6 倍

在随机读写 7/3 比例混合的场景中,Write-Through 模式写延迟仅有 12.7%减少(5438.97 VS 4744.42),但读性能表现良好,读请求的平均延迟缩小了约 90%(2030.72 VS 190.39),P99 缩小了 89%(2278 VS 247),有效抑制了读请求的延迟波动率。而Write-Back模式则表现出了卓越的性能优势,读延迟减少了 96.2%(2030.72 VS 76.89),写延迟减少了 98.3%(5438.97 VS 87.68),而每秒读写请求数提升了约 7.6 倍。

使用 Open CAS 结合 Optane™ SSD 来做缓存,在特定场景极大提升了OpenStack系统的读写性能。如果应用场景有数据一致性的要求,那么选择 Write-Through 模式。此时对于读密集的应用能带来很大的性能提升。而如果应用场景是写性能要求高,或者磁盘读写综合性能要求高,但数据一致性要求不高,或者有其他的补偿措施来保证数据一致性的,那么可以选择Write-Back模式,此时不管读还是写的性能都可以得到非常大的提升。联通沃云海量数据检索平台主要为读密集的使用场景,对读请求的延迟比较敏感。本次实验对其调优决策和平台升级有非常大的参考意义。

欢迎关注英特尔商用频道:

扩展阅读

连书都得看国外写的才能做好芯片?这有人不服!

《大话计算机》同款T恤,我要了!!

终于来了!手慢无!《大话计算机》开放预售!

位于计算机内存中的黑洞

《大话计算机》动图一则展示

《大话计算机》序言① by廖恒

《大话计算机》序言② by 包云岗老师

《大话计算机》序言③ by 何万青

《大话计算机》序言④ by 雷迎春

《大话计算机》序言⑤ by 汪利文

《大话计算机》序言⑥ by 张勇

《大话计算机》序言⑦ by @去流浪

  

博主简介:冬瓜哥,《大话计算机》与《大话存储 终极版》、《大话存储 后传》图书作者。多项技术专利发明人。

现任某半导体公司高级资深架构师。

大话计算机          大话存储

长按扫码可关注

嗨,你还在看吗

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值