PAM 三种操作模式
为满足各种独特需求,NetApp 还提供了更改缓存行为的性能。PAM 支持以下三种操作模式:
默认模式,同时缓存数据和元数据。
元数据模式,仅缓存元数据。
低优先级模式,可缓存连续读取数据和其它低优先级数据。
默认模式
默认模式会同时缓存用户数据和元数据,类似于 Data ONTAP 为 WAFL 缓冲区高速缓存实施的缓存策略。对于 NFS 和 CIFS 等文件服务协议,元数据包括了维持文件和目录结构所需的数据。而在 SAN 中,元数据则包括了用于 LUN 数据簿记的少量块。
此模式最适用于工作集大小不超过 PAM 缓存大小的情况。而且,在有频繁访问的数据热点时也十分有用,可确保这些数据驻留在缓存中。
元数据模式
在此模式下,只有存储系统元数据才会进行缓存。对于很多随机工作而言,在缓存操作有效的一段时间内很少会重复使用应用程序数据。而元数据则不同,这些工作通常都需要重复使用它们,因此,缓存元数据将有助提高性能。另外,对于无法有效缓存的较大数据集(即活动数据集超出缓存的大小),仅缓存元数据也是一种可行的方法。
低优先级模式
在低优先级模式下,缓存对象不只是普通的数据和元数据,平时排除在外的低优先级数据也会包含在内。低优先级数据包括大型连续读取数据和最近写入的新增数据。写入数据一般都不会进行缓存,因为总写入工作很可能体积庞大,以致将缓存溢出并导致有用数据流失。此外,由于写入数据通常都不会再次读取(它们一般在执行写入时已经缓存到本地系统上),因此并不适合缓存。
在一些应用程序中,数据可能需要在写入后的某个滞后时间再次读取以便上游缓存可清除数据,低优先级模式在此时将十分有用。例如,基于 Web 的应用程序会创建新数据并分发 Web 用户可在日后访问的链接,对于此类应用程序,此模式可避免磁盘读取。在某些 Web 应用程序中,我们发现首次读取的滞后时间很长,以致只能从磁盘中获得数据(即使后续数据调用足够频繁,可以使上游缓存处理)。通过将此类磁盘读取变为缓存命中,低优先级模式下的 PAM 会使此类应用程序提速。
此时,您自然想弄明白 PAM 是否有助于缓解工作量以及应采用哪种模式。
PCS:确定 PAM 能否提高性能
为助您确定存储系统能否受益于新增的缓存,NetApp 开发了一款目前在 Data ONTAP 7.3 及后续版本中提供的 Predictive Cache Statistics(预测缓存统计)软件。PCS 可让您预测在系统缓存增加到两倍、四倍及八倍时所能得到的效果。
通过使用 PCS,您可以确定 PAM 能否为您的工作提高性能,并确定自己需要多少模块。此外,您还可以测试不同的操作模式,以确定“默认”、“元数据”、“低优先级”这三种模式中哪一个最适合您。
要开始使用 PCS,可通过以下命令启用该功能:
options flexscale.enable pcs
如果存储系统保持在 80% 以上的 CPU 使用率,建议您不要启用 PCS。启用 PCS 后,您必须让模拟缓存“热身”或收集数据块。缓存经过“热身”后,您即可使用 NetApp 的 Perfstat 工具查看和分析数据。
此过程将使用同时包括元数据和普通用户数据的默认缓存模式来模拟缓存。您也可以使用其它操作模式进行测试。
启用元数据模式:
options flexscale.normal_data_blocks off
启用低优先级模式:
options flexscale.normal_data_blocks on
options flexscale.lopri_blocks on
完成测试后,请禁用 PCS:
options flexscale.enable off
PCS 启用后,通过以下命令可了解当前情况:
> stats show -p flexscale-pcs
输出示例请见图 2。
图 2) PCS 输出示例。
以下指南有助您理解这些数据:
如果“hit/(invalidate+evict)”即“命中数/(无效数 + 退出数)”的比率很小,则很多数据将在被使用之前丢弃。“instance (ec0, ec1, ec2)”即“实例 (ec0, ec1, ec2)”可能太小。
如果“(hit+miss)/invalidate”即“(命中数 + 未命中数)/无效数”的比率很小,则可能表示工作有大量更新;可切换为元数据模式并再次检查命中率。
如果 usage 即“用量”很稳定且有少量“invalidate”即“无效数”和 “evict”即“退出数”,则表示工作集大小合适。
缓存的 KB/s 数约等于每个块每秒命中数 hit/s × 4KB。
值得注意的是,在 PCS 中模拟的三个缓存是级联缓存。在以上示例中,ec0 表示大小为 8GB 的第一个缓存,ec1 表示大小为 8GB 的第二个缓存,ec2 表示大小为 16GB 的第三个缓存。32GB 缓存每秒的命中数是三个缓存每秒的命中数合计。级联缓存的主要优势在于,在为 32GB 缓存测量准确命中率的过程中,我们也同时获得 8GB 和 16GB 缓存的命中率预计值。如此一来,我们便获得了命中率曲线中的三个点,并能够预计中间缓存大小的命中率。
PAM 和 FlexShare
FlexShare 是 Data ONTAP 的一个选项,用于为各卷级别设置系统资源(处理器、内存及 I/O)的优先级,从而在控制器负荷较大时向特定卷中的工作分配更多资源。FlexShare 能够与 PAM 完全兼容,在 FlexShare 中进行的设置适用于 PAM 缓存中的数据。凭借 FlexShare,可以在使用 PAM 实施的全局策略上进行更为细化的控制。例如,如果使用 FlexShare 为某个卷指定较高的优先级,则该卷在缓存中的优先级也会较高。
结论
在 IT 预算有限的今天,我们迫切需要从公司的投资中获得最佳性能,同时降低功耗、散热及空间方面的需求。PAM 实现了这个目标。它给予您调节缓存模式的灵活性,满足您在工作上的独特需求。在您作出购买决定前,PCS 还能帮助您确定能否从 PAM 受益,所需的模块数和各种设置。
作者简介
Naresh Patel
NetApp 性能工程技术总监
Naresh 拥有性能学博士学位,从事软硬件系统性能评估工作超过 22 年,其中包括在 NetApp 任职的 9 年。
Dave Tanis
NetApp性能和 PAM 高级产品经理
Dave 在系统工程和市场营销领域拥有丰富经验。他的 19 年职业生涯还包括研发性能工程设计、网络管理和产品管理。
Paul Updike
NetApp技术营销工程师
在其 16 年的 IT 从业生涯中,Paul 曾在性能、理论及工程环境的不同领域任职。自从六年前加入 NetApp 以来,他一直致力于 Data ONTAP 和存储系统性能的最佳实施。
网友评论