关于AIX®磁盘和I / O子系统的这个由三部分组成的系列(请参阅参考资料 )重点关注优化磁盘I / O性能的挑战。 虽然磁盘调优可以说比CPU或内存调优不那么令人兴奋,但它是优化服务器性能的关键组成部分。 实际上,部分原因是磁盘I / O是您最弱的子系统链接,因此与其他子系统相比,您可以做更多的事情来提高磁盘I / O性能。
与调整其他子系统不同,调整磁盘I / O实际上应该在构建系统的架构阶段开始。 尽管有等效于I / O调整参数的虚拟内存( ioo和lvmo ),但提高磁盘I / O性能的最佳方法是正确配置系统而不调整参数。 与虚拟内存调整不同,在逻辑卷创建并运行后更改逻辑卷的结构要复杂得多,因此通常只有一次机会可以正确执行此操作。 在本文中,我们将讨论配置逻辑卷的方式以及相对于物理磁盘实际放置逻辑卷的位置。 我们还将介绍用于监视逻辑卷的工具。 这些工具大多数都不打算用于长期趋势,而是特定的AIX工具,这些工具提供有关如何配置逻辑卷以及是否已针对您的环境对其进行优化的信息。
AIX 7中对主要工具集和可调参数的更改很少,但是值得重新检查该功能以确保从系统中获得最佳信息和性能。
本系列的第1部分(请参阅参考资料 )介绍了iostat ,但是在查看异步I / O服务器之外没有使用该工具。 第2部分使用iostat监视磁盘,并向您展示如何做才能帮助快速确定您的I / O瓶颈。 iostat是不是专门为AIX开发的通用UNIX®实用程序,它对于快速确定系统中正在发生的事情非常有用。 更具体的AIX逻辑卷命令可帮助您更深入地研究逻辑卷,以帮助您真正分析问题所在(如果有)。 使用这些工具之前,请务必清楚了解要查找的内容。 本文介绍了这些工具,还向您展示了如何分析它们的输出,这有助于分析磁盘I / O子系统。
本节定义逻辑卷管理器(LVM)并介绍其某些功能。 通过定义和讨论策略内和策略间磁盘实践,让我们深入研究逻辑卷概念,研究它们与提高磁盘I / O利用率之间的关系,并讨论与物理磁盘相关的逻辑卷放置。
从概念上讲,逻辑卷层位于应用程序层和物理层之间。 在磁盘I / O的上下文中,应用程序层是文件系统或原始逻辑卷。 物理层由实际磁盘组成。 LVM是AIX磁盘管理系统,可在逻辑存储和物理存储之间映射数据。 这允许数据驻留在多个物理磁盘上,并使用专门的LVM命令进行管理和分析。 LVM实际上控制着系统上的所有物理磁盘资源,并有助于提供存储子系统的逻辑视图。 了解它位于应用程序层和物理层之间应该有助于您理解为什么它在所有层中最重要。 甚至您的物理卷本身也是逻辑层的一部分,因为物理层仅包含实际的磁盘,设备驱动程序以及您可能已经配置的任何阵列。 图1说明了这些概念,并显示了逻辑I / O组件与物理磁盘及其应用程序层紧密集成的方式。
现在,让我们从下至上快速介绍LVM的组成部分。 每个驱动器都称为一个物理卷。 多个物理卷组成一个卷组。 在卷组中,定义了逻辑卷。 LVM使数据可以位于多个物理驱动器上,尽管它们可能被配置为位于单个卷组中。 这些逻辑卷可以是一个或多个逻辑分区。 每个逻辑分区都有一个与其相关的物理分区。 您可以在此处拥有物理部分的多个副本,以用于磁盘镜像之类的目的。
让我们快速看一下逻辑卷创建与物理卷之间的关系。 图2说明了物理磁盘盘上的实际存储位置。
通常,向其中心写入的数据比在外边缘写入的数据具有更快的查找时间。 这与数据的密度有关。 由于它向中心移动时密度更高,因此头部的移动实际上较少。 内边缘通常具有最慢的寻道时间。 作为最佳实践,应将更密集的I / O应用程序更靠近物理卷的中心。 请注意,有一些例外。 磁盘在磁盘边缘(而不是中心)的每个磁道中保存的数据更多。 话虽这么说,顺序访问的逻辑卷实际上应该放在边缘以提高性能。 对于已启用镜像写入一致性检查(MWCC)的逻辑卷,也是如此。 这是因为MWCC扇区位于磁盘边缘而不是磁盘中心,这与逻辑卷的磁盘内策略有关。
让我们讨论另一个重要的概念,称为逻辑卷的磁盘间策略。 磁盘间策略定义逻辑卷的物理分区实际驻留的磁盘数。 一般规则是,最小策略可提供最大的可靠性和可用性,而最大策略则可提高性能。 简而言之,传播数据的驱动器越多,性能越好。 其他一些最佳实践包括将密集的逻辑卷分配到单独的物理卷,将逻辑卷定义为所需的最大大小以及将经常使用的逻辑卷放在一起。 这就是为什么在配置系统之前了解您的数据如此重要,以便您可以从一开始就创建有意义的策略的原因。
您可以使用以下命令或smit fastpath自己创建逻辑卷时定义策略: # mklv或# smitty mklv 。
本节提供有关如何监视逻辑卷和分析结果的说明。 介绍了各种命令以及它们的用途,我们将检查输出。
服务台刚刚打开了一个票证,该票证与某些数据库服务器上的性能降低有关。 您怀疑可能存在I / O问题,因此从iostat开始。 如果您还记得的话,该命令是本系列的第一期中介绍的(请参阅参考资料 ),尽管仅是为了查看异步I / O服务器。 现在,让我们更详细地了解iostat 。 iostat相当于将vmstat用于虚拟内存,可以说是最有效地了解I / O子系统正在发生的事情的最有效方法。
您在这里看到的是什么?
%tm_act :报告物理磁盘处于活动状态的时间百分比或磁盘请求的总时间。 Kbps :报告以千字节为单位的传输到驱动器的数据量。 tps :报告每秒发给物理磁盘的传输次数。 Kb_read :报告从测量间隔中从物理卷中读取的总数据(千字节)。 Kb_wrtn :报告从您测量的间隔中写入物理卷的数据量(千字节)。您需要非常仔细地观察%tm_act,因为当tm_act的利用率超过大约60%到70%时,通常表明进程开始等待I / O。 这可能是您即将出现I / O问题的第一个线索。 将数据移动到不太繁忙的驱动器上显然可以减轻这种负担。 一般来说,数据命中的驱动器越多越好。 就像其他任何事情一样,太多的好事也可能是坏的,因为您必须确保没有太多的驱动器碰到任何一个适配器。 确定适配器是否饱和的一种方法是对连接到一个适配器的所有磁盘的Kbps量求和。 总数应低于磁盘适配器的吞吐量额定值,通常小于70%。
使用-a标志(请参见清单2 )可以帮助您进一步深入研究适配器的利用率。
显然,这里没有瓶颈。 使用-d标志可以使您向下钻取到一个特定的磁盘(请参见清单3 )。
让我们看一些特定的AIX LVM命令。 您已较早地检查了磁盘放置以及从一开始就正确构建系统的重要性。 不幸的是,您并非总是有这种选择。 作为系统管理员,您有时会继承必须修复的系统。 让我们看一下磁盘上逻辑卷的布局,以确定是否需要更改定义或重新排列数据。
首先让我们看一下卷组,然后找到其中的逻辑卷。 lsvg是提供卷组信息的命令(请参见清单4 )。
现在,让我们使用lslv ,它提供逻辑卷上的特定数据(请参见清单5 )。
该视图提供了逻辑卷属性的详细描述。 你这边有什么? 内部策略处于中心位置,通常是I / O密集型逻辑卷拥有的最佳策略。 如您在前面的讨论中所回顾的那样,该规则也有例外。 不幸的是,您刚刚击中其中之一。 由于启用了镜像写入一致性(MWC),因此如果将卷放在边缘,则可以更好地处理该卷。
让我们看看它的相互政策。 相互策略是最小的,如果可用性比性能更重要,通常是最好的策略。 此外,物理分区的数量是逻辑分区的两倍,这表明您正在镜像系统。 在这种情况下,您被告知原始性能是最重要的目标,因此,逻辑卷的配置方式并未像实际使用卷那样。 此外,如果您正在镜像系统并使用外部存储阵列,则情况甚至更糟,因为您已经在硬件层提供了镜像,这实际上比使用AIX镜像更有效。
让我们在清单6中进一步深入研究。
lslv的-l标志列出了与逻辑卷关联的所有物理卷以及每个逻辑卷的分布。 然后,您可以确定磁盘上100%的物理分区已分配给该逻辑卷。 分布部分显示每个物理卷中的物理分区的实际数量。 在这里,您可以详细说明其磁盘内策略。 这些字段的顺序如下:
边缘 中间 中央 内中 内缘报告显示,大多数数据位于中间,而某些数据位于中心。
让我们继续前进,找出哪些逻辑卷与一个物理卷相关联。 这是通过lspv命令完成的(请参见清单7 )。
现在,您实际上可以确定该磁盘上的哪些逻辑卷已准备就绪,可实现最高性能。
您甚至可以进一步挖掘以获得更具体的信息(请参见清单8 )。
该视图告诉您物理卷上的空闲空间,已使用的空间以及在何处使用的分区。 这是一个很好的看法。
查看LVM使用情况的最佳工具之一是lvmstat (请参见清单9 )。
从此处的输出可以看到,该功能未启用(默认情况下),因此在使用# lvmstat -v data2vg -e运行该工具之前,需要将其启用。 清单10中显示的命令每10秒钟对LVM信息进行一次快照。
该视图特别有用的是,它仅显示存在活动的逻辑卷。 在监视特定应用程序并将其与特定逻辑卷使用量关联时,这可以非常方便。
此视图显示自启动数据收集工具以来系统中使用最多的逻辑卷。 在调整系统时深入到逻辑卷层时,这非常有用。
你在这看什么
%iocnt :报告读和写请求的数量。 Kb_read :从已读取的测量间隔中报告总数据(千字节)。 Kb_wrtn :从测量的时间间隔中报告写入的数据量(千字节)。 Kbps :报告以千字节为单位的传输数据量。在开始将其添加到库之前,请查看手册中的所有讨论的命令。
本节使用特定的逻辑卷调整命令进行介绍。 lvmo用于设置和显示pbuf调整参数。 它还用于显示阻止的I / O统计信息。
lvmo允许您更改用于每个卷组的pbuf或固定的内存缓冲区,因此可以显示并控制用于缓存卷组数据的内存。
让我们显示data2vg卷组的lvmo可调参数(请参见清单11 )。
这里有什么可调项?
pv_pbuf_count :报告将物理卷添加到卷组时添加的pbuf的数量。 max_vg_pbuf_count :返回可为卷组分配的最大pbufs数量。 global_pbuf_count :报告将物理卷添加到任何卷组时添加的pbuf的数量。让我们增加该卷组的pbuf计数:
# lvmo -v redvg -o pv_pbuf_count=2048老实说,我们通常远离lvmo并使用ioo 。 我们更习惯于调整全局参数。 重要的是要注意,如果将pbuf值增加太多,实际上会看到性能下降。
本文重点介绍逻辑卷及其与磁盘I / O子系统的关系。 它在较高级别上定义了逻辑卷,并说明了它与应用程序和物理层之间的关系。 它还定义并讨论了磁盘间和磁盘内策略与创建和维护逻辑卷有关的一些最佳实践。 您研究了监视逻辑卷的I / O使用率的方法,并分析了从命令中捕获的数据,这些命令用于帮助确定问题所在。 最后,您实际上是通过确定并增加特定卷组中使用的pbuf数量来调整逻辑卷的。 本系列的第3部分将重点介绍应用程序层,当您进入文件系统时,将使用各种命令来监视和调整文件系统以及磁盘I / O子系统。
翻译自: https://www.ibm.com/developerworks/aix/library/au-aix7optimize2/index.html