如何根据不同的工作负载调整存储性能
创始人
2025-02-12 14:51:19
0次

多年来,存储(尤其是共享存储阵列)的性能调优工作一直被认为需要一定程度的技术和经验基础才能做到的艺术。

但伴随着市场与技术的发展变化,现在人们不禁要问是否可以用更简化的操作来满足特定应用程序和应用负载的要求。

不过,存储“调优”仍然是必要的。

本文中,我们会谈到这其中所涉及的些许问题,以及可以如何优化存储硬件和主流应用程序的需求。

外部存储通常被用作应用程序数据的长期存放区域,其存储介质的速度远比主存储器要慢得多。

硬盘驱动器的延迟(响应)时间以毫秒级为单位,并且更适合于顺序而非随机输入/输出(I/O)性能。

[[191866]]

NAND闪存带来了更好的随机I/O处理性能,尽管其牺牲了存储介质的使用寿命。闪存存储还有另一个问题,其需要执行诸如垃圾回收类的后台任务,从而延长了响应时间。

DRAM的性能卓越,正如我们即将提到的,是用以改善系统性能的潜在方式。

最后,我们需要记住的是网络是连接着共享阵列、服务器和存储,在基于横向扩展节点的方案中(如超融合基础架构),网络亦是连接各节点,确保数据一致性的关键所在。

上述这些都是我们可以配置、优化的可选项。

  • 数据布局——跨物理介质部署分配数据可以提高I/O性能。单块硬盘或闪存驱动器的I/O性能是有限的,因此跨越多台设备的“条带化”有助于在多并发读写操作时扩展I/O。由于要使用RAID进行数据保护,条带化难以无限扩展,需要在RAID扩展性和RAID组重构时间之间做出权衡。RAID 6牺牲了额外的空间和奇偶校验量换取扩展性。还有一种方式是使用纠删码,但这更适合用于对象类型的数据。
  • 缓存——闪存或DRAM上的缓存数据可以改善I/O延迟,用共享阵列或应用程序主机上的缓存来服务读取请求。写入I/O同样得以加速,不过需要复制写入持久性缓存设备来预防硬件故障。诸如Nimble的Adaptive Flash或HPE 3PAR的Adaptive Flash Cache之类的现代化缓存方案可以优化昂贵资源的使用,并大幅优化性能。
  • 网络调优——在共享存储环境中,可以调整光纤通道和以太网网络来改善性能,即光纤通道中的信用阀值(Buffer Credits,又名流量控制机制)和以太网中的数据包尺寸(Packet Size)。很显然,使用非阻塞型交换机可以确保交换机上每个端口点对点的吞吐量。整体网络设计同样重要。在以前,我们为了节省成本将光纤通道网络设计为拓扑结构。而到了现在,光纤通道和以太网每个端口的速度虽然都并不会趋向饱和,端口共享仍然不是什么大问题,不过假如端口可以专用,那么这将更有助于消除瓶颈。
  • 分层——通常而言,分层的使用目的在于节省成本,但优化性能同样是其目的。根据所要求的I/O性能和存储介质的成本消息将数据部署到最合适的存储层上。分层算法多年来一直在快速发展,从LUN转向基于数据块的分层。正确的分层算法和数据部署可以在不用额外购置硬件的前提下提升性能。

为了得到最佳调优效果,我们首先要知道应用程序的I/O特性。

这在每个具体场景中可能千差万别,但我们仍可以将其归纳为某几种类型。

  • 结构化数据——最有代表性的是SQL(Oracle,SQL Server)和NoSQL(MongoDB,CouchDB)数据库,其具有混合式的I/O属性。所存储的数据通常具备随机的I/O属性(整表扫描除外),而数据写入则多以小型的增量式写入。传统的经验中我们将数据存放在RAID-5存储上并以RAID-10作为日志,但实际上仅有少量的I/O缓存才是相关的。对于现代化的存储阵列,大多数数据库加载(除了密集型)都易于管理,无需手动存放数据;而对于密集型工作负载,将日志存放在高性能存储上会是更好的选择。
  • 虚拟服务器——服务器虚拟化引入了随机与连续I/O工作负载混合的效应。这是因为数据通过多个虚拟机分布在LUN或卷上,每个虚拟机都独立于另一个,生成了随机工作负载的特性。提高虚拟服务器的性能需要部署更快速的存储介质(从而减少每个单独I/O的延迟)或者引入缓存。vSphere(VMware)和Hyper-V(Microsoft)都允许为单个虚拟机配置缓存。还可以在虚拟机管理程序中集成第三方缓存解决方案来提高I/O性能。对于HCI,VMware的Virtual SAN还提供了一个全闪存的选项,使用高性能和大容量闪存组合来优化I/O工作负载。
  • 虚拟桌面——虚拟桌面给I/O性能所带来的挑战与虚拟服务器中的随机访问问题相似,但却具有差异性。首先,大多数台式机都是由某一个镜像制成的,因此在启动大量桌面时存在着大量重复的数据。其次,虚拟桌面经常,甚至每天都会启动,因此读取(启动)和写入(关闭)时间会更多。通过在共享阵列中对桌面镜像使用缓存和重复数据删除,或者使用第三方软件,可以大幅提高桌面性能。非永久性的桌面镜像甚至可以缓存在DRAM中,这样的解决方案比购买昂贵的全闪存要便宜许多。
  • 网络服务器——额外的读取缓存有助于网络和其它读密集型应用程序(如内容管理系统)。这可以部署在共享阵列中,也可以在虚拟机管理程序中用专用缓存。其中的权衡之处在于,网络服务器本身有空余缓存时可以避免后端I/O,但缓存容量毕竟有所限制,在某个时刻仍需将数据存储回外部I/O。
  • 邮件服务器——回顾10至15年之前,Microsoft Exchange等平台上,每个邮箱的I/O需求是相当高的。随着新产品的发布,单个用户的I/O需求下降了15至20倍。Exchange 2016对比2003版,只需要大约5%的IOPS。因此,可以用JBOD而非SAN来部署Exchange。话虽如此,像Exchange这样的电子邮件平台仍可以从日益兴起的缓存和分布式数据部署(如宽条带化)中获益。
  • 分析——许多分析工具在构建数据配置文件时需要反复读取同样的数据。这些工具对延迟相当敏感,并且需要并行执行查询操作,例如Hadoop设计时会分布在多个存储节点上,每个节点配置多块磁盘。因此,提高分析工作负载的性能需要减少I/O读取延迟。我们可以选择使用闪存介质,为运行分析软件的外部存储或主机添置更多缓存。数据的存放并不讲究,因为很难准确预测运行分析时将使用到哪些数据。因此,分析操作中的重点在于平衡好存储和缓存,并可以根据需要增加缓存。

在上述所有的场景中,得到详细的指标来反应出性能和资源使用状况是相当重要的。通过正确的指标数据,我们可以综合考虑购置额外资源的成本,评估、权衡各种业务改变所带来的影响。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...