如何利用闪存存储改善工作负载应用的性能和结果

描述

我是美光科技的首席存储解决方案工程师Dennis Lattka。这个头衔的真正含义是,我要致力于确定如何利用闪存存储改善工作负载应用的性能和结果。为此,我决定对大数据生态系统中最常用的分布式消息传递系统之一的Apache Kafka进行评估,测试如何以最佳方式将美光固态存储应用于 Apache Kafka,以及将产生怎样的收益。

美光科技

Apache Kafka介绍

通过对所涉及的各种资源(即 CPU、内存、磁盘活动和网络)进行监控,我发现主要的瓶颈因素依次为磁盘和网络。

一切取决于吞吐量

通过 Apache Kafka我发现,吞吐量决定一切。Kafka 开发人员在将写入数据直接传递到内核页面缓存方面做得非常出色,最大限度地减少了与 I/O 相关的问题。但是,无论这项开发功能如何出色,I/O 最终仍会转化为对 Kafka 分区(主题日志文件)的连续写入。因此所使用的磁盘的吞吐量越高,性能提升幅度就会越大。

在弄清楚了如何以最佳方式测试 Apache Kafka 以及使用哪些参数效果最好之后,我使用其内置的发生器测试脚本进行了一次简单的测试。3 个发生器共向一个 Kafka 代理发送了 6 亿条 100 字节的消息。

测试包括以下内容:(没有进行调整,仅采用默认配置。)

-总共产生了 600 个主题。

-为每个发生器分配了 200 个特定于该发生器的主题。

- 每个发生器为每个主题创建了 100 万条消息。

-采用的消息大小为每条消息 100 字节。
美光科技

使用的硬件:

-每个服务器配备 1 个代理和 3 个发生器,采用相同配置。

-两个英特尔(R)至强(R) CPU E5-2690 v3 @ 2.60GHz 处理器。

-384GB 内存

-两个固定在 ALB 模式的 10Gb 网卡。

使用 6TB 7.2k 硬盘、美光5100 ECO 1920GB 固态硬盘和美光9100 Pro 3.2TB NVMe硬盘进行了对比。

在每次测试中,Apache Kafka 代理分区都位于进行测试的硬盘上。

结果如下:

美光科技

从上表可以看出,吞吐量越高,每秒的 I/O 就越高,这对于 Apache Kafka 意味着每秒可以处理更多数量的连续消息(显示单位为 MB/s)。

结论

在 Apache Kafka 配置中采用吞吐量更高的磁盘设备(如美光5100 系列固态硬盘或美光 NVMe 固态硬盘)将显著提高 Apache Kafka 的性能。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分