AIX 5L 磁盘性能优化

更新时间:2024-05-28 18:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2007 年 9 月 06 日

了解如何在创建您的逻辑卷之前使用合适的磁盘布置以提高磁盘性能。本系列文章的第 2 部分(请参见参考资料)关注于监视逻辑卷,以及用于分析结果的命令和实用工具(iostat、lvmstat、lslv、lspv 和 lsvg)。 关于本系列

本系列教程共有三篇文章(请参见参考资料),介绍了 AIX? 磁盘和 I/O 子系统,重点关注于在优化磁盘 I/O 性能时的各种挑战。尽管磁盘优化很可能没有 CPU 或者内存优化那么激动人心,但它是优化服务器性能的关键部分。事实上,其中部分原因是因为磁盘 I/O 是最薄弱的子系统环节,与任何其他子系统相比,您可以执行更多的操作以提高磁盘 I/O 性能。 引言

与其他子系统的优化工作不同,实际上在构建系统的体系结构设计阶段就应该开始进行磁盘 I/O 优化。尽管存在一些 I/O 优化参数的虚拟内存等价项(ioo 和 lvmo),但是提高磁盘 I/O 性能的最佳方法是正确地配置您的系统,而不是优化相关的参数。与虚拟内存优化不同,在创建了逻辑卷并开始运行之后,要更改它们的组织结构会变得更加复杂,所以您通常只有一次机会正确地完成这项任务。本文讨论了配置逻辑卷的方式,以及相对于物理磁盘应该将它们布置于何处,本文还介绍了用于监视您的逻辑卷的工具。其中,大多数工具并不适合于长期趋势研究,并且是 AIX 特定的工具,它们可以提供相关信息以便了解如何配置逻辑卷,以及是否针对您的环境对它们进行了优化。

本系列文章的第 1 部分(请参见参考资料)介绍了 iostat,但其中仅介绍了使用该工具来查看异步 I/O 服务器。第 2 部分使用 iostat 来监视您的磁盘,并向您介绍了它能够完成哪些工作以帮助您快速地确定 I/O 瓶颈。尽管 iostat 是通用的 UNIX? 实用工具之一,并且它不是专门为 AIX 而开发的,但实际上,对于快速地确定系统的运行情况,它是非常有用的。更特定的 AIX 逻辑卷命令可以帮助您更深入地研究逻辑卷,以帮助您真正地分析实际问题(如果存在任何问题)。在使用这些工具之前,您必须清楚地了解您需要哪些信息,这一点是很重要的。本文描述了相关的工具,并向您介绍了如何分析它们的输出,这将帮助您分析磁盘 I/O 子系统。 逻辑卷和磁盘布置概述

这个部分定义了逻辑卷管理器(Logical Volume Manager,LVM),并介绍了它的一些特性。让我们深入地研究逻辑卷的概念,分析它们与提高磁盘 I/O 使用率之间的关系,并通过定义和讨论 intra-policy 和 inter-policy 磁盘实践,从物理磁盘的角度介绍有关逻辑卷的布置。

从概念上讲,逻辑卷层位于应用程序和物理层之间。在磁盘 I/O 的上下文中,应用程序层是文件系统或者原始逻辑卷。物理层由实际的磁盘组成。LVM 是一种

AIX 磁盘管理系统,它可以在逻辑和物理存储之间映射数据。这允许数据保存在多个物理盘片上,并使用专门的 LVM 命令对其进行管理和分析。实际上,LVM 控制系统中所有的物理磁盘资源,并帮助提供存储子系统的逻辑视图。了解它位于应用程序层和物理层之间,应该可以帮助您理解它为什么很可能是所有层中最重要的一层。甚至您的物理卷本身就是逻辑层的一部分,因为物理层仅包含实际的磁盘、设备驱动程序和任何您可能已经配置的阵列。图 1 阐释了这个概念,并显示了逻辑 I/O 组件与物理磁盘及其应用程序层非常紧密地结合在一起。

图 1. 逻辑卷图表

现在,让我们简要地、自底向上地介绍 LVM 中的各个元素。每个驱动器作为一个物理卷进行命名。多个物理卷组成一个卷组。在卷组中,定义了逻辑卷。LVM 允许数据位于多个物理驱动器,尽管可能将它们配置为属于单个卷组。这些逻辑卷可以是一个或者多个逻辑分区。每个逻辑分区具有一个与其相关联的物理分区。在其中,您可以拥有物理部分的多个副本,以用于各种目的,如磁盘镜像。 让我们简要地介绍一下逻辑卷的创建与物理卷之间的关系。图 2 描述了物理磁盘盘片上的实际存储位置。

图 2. 物理磁盘盘片上的实际存储位置

作为一般规则,靠近中央的数据要比靠近外边缘的数据具有更快的寻道时间。这与数据的密度有关。因为越靠近中央,密度越大,实际上磁头只需移动更短的距离。内部边缘(inner edge)通常具有最短的寻道时间。作为最佳实践,应用程序使用 I/O 越多,就应该使其位于越靠近物理卷中央的位置。请注意,对于这个最佳实践,有一些例外的情况。磁盘边缘的每个磁道比靠近中央的磁道能够保存更多的数据。虽然这样说,但是实际上应该顺序地访问位于边缘的逻辑卷,以获得更高的性能。对于开启了镜像写一致性检查(Mirror Write Consistency Check,MWCC)的逻辑卷来说也一样。这是因为,MWCC 扇区位于磁盘边缘而不是中央,这与逻辑卷的 intra-disk 策略有关。

让我们来讨论另一个重要的、称为逻辑卷 inter-disk 策略的概念。inter-disk 策略定义了一个逻辑卷的物理分区实际驻留的磁盘的数目。一般规则是,最小的 (minimum) 策略可以提供最大的可靠性和可用性,而最大的 (maximum) 策略可以提高性能。简单地说,数据所分散到的驱动器越多,性能就越好。一些其他的最佳实践包括:分配密集的逻辑卷以分隔物理卷,定义所需的逻辑卷的最大大小,并将经常使用的逻辑卷布置在一起。这正是为什么在配置系统之前您必须了解具体的数据,以便您从一开始就可以创建有意义的策略的原因。

在创建逻辑卷时,您可以使用下面命令或者 smit 快速路径定义自己的策略:# mklv 或 # smitty mklv。 监视逻辑卷并分析结果

这个部分提供了有关如何监视您的逻辑卷并分析结果的介绍。介绍了各种各样的命令以及它们的用途,并且您还将检查输出内容。

刚刚接到了有关某个数据库服务器性能迟缓的报告。您怀疑可能出现了 I/O 问题,所以您使用 iostat 开始进行分析。如果您还记得,在本系列文章的第 1 部分中曾介绍过这个命令(请参见参考资料),尽管只是用作查看异步 I/O 服务器的目的。现在,让我们仔细地研究 iostat。iostat,相当于用于虚拟内存的 vmstat,很可能是概略了解 I/O 子系统运行情况的最有效方式。

清单 1. 使用 iostat # iostat 1

System configuration: lcpu=4 disk=4

tty: tin tout avg-cpu: % user % sys % idle % iowait

0.0 392.0 5.2 5.5 88.3 1.1

Disks: % tm_act Kbps tps Kb_read Kb_wrtn hdisk1 0.5 19.5 1.4 53437739 21482563 hdisk0 0.7 29.7 3.0 93086751 21482563 hdisk4 1.7 278.2 6.2 238584732 832883320 hdisk3 2.1 294.3 8.0 300653060 832883320

这个示例中显示了哪些内容,而所有这些内容又是什么含义呢?

? ? ? ? ?

% tm_act:报告物理磁盘处于活动状态,或者磁盘请求的总时间的时间百分比。

Kbps:报告传输到驱动器的数据量(单位为千字节)。 tps:报告每秒钟发送到物理磁盘的传输量。

Kb_read:报告在测量间隔中从物理卷读取的总数据量(单位为千字节)。 Kb_wrtn:报告在测量间隔中向物理卷写入的数据量(单位为千字节)。

您需要非常小心地监视 % tm_act,因为当它的使用率超过大概百分之六十到七十时,这通常表示进程开始等待 I/O。这可能是即将发生的 I/O 问题的第一个征兆。将数据移动到更空闲的驱动器可以显著地帮助缓解这个负担。通常来说,您的数据位于越多的驱动器,性能就越好。与其他的事物一样,物极必反,因为您必须确保不会有太多的驱动器连接到任何一个适配器。有一种方法可以确定一个适配器是否满负荷,将连接到该适配器的所有磁盘的 Kbps 量累加起来。其总数应该小于磁盘适配器吞吐量速率,通常小于百分之七十。

使用 -a 标志(请参见清单 2)可以帮助您更深入地检查适配器的使用率。

清单 2. 使用带 -a 标志的 iostat # iostat -a

Adapter: Kbps tps Kb_read Kb_wrtn scsi0 0.0 0.0 0 0

Paths/Disk: % tm_act Kbps tps Kb_read Kb_wrtn hdisk1_Path0 37.0 89.0 0.0 0 0 hdisk0_Path0 67.0 47.0 0.0 0 0 hdisk4_Path0 0.0 0.0 0.0 0 0 hdisk3_Path0 0.0 0.0 0.0 0 0

Adapter: Kbps tps Kb_read Kb_wrtn ide0 0.0 0.0 0 0

Paths/Disk: % tm_act Kbps tps Kb_read Kb_wrtn cd0 0.0 0.0 0.0 0 0

显然,其中不存在任何瓶颈。使用 -d 标志允许您深入地研究一个特定的磁盘(请参见清单 3)。

清单 3. 使用带 -d 标志的 iostat # iostat -d hdisk1 1

System configuration: lcpu=4 disk=5

Disks: % tm_act Kbps tps Kb_read Kb_wrtn hdisk1 0.5 19.4 1.4 53437743 21490480 hdisk1 5.0 78.0 23.6 3633 3564 hdisk1 0.0 0.0 0.0 0 0 hdisk1 0.0 0.0 0.0 0 0 hdisk1 0.0 0.0 0.0 0 0 hdisk1 0.0 0.0 0.0 0 0

让我们来研究一些特定的 AIX LVM 命令。您已经了解了有关磁盘布置的内容,以及从一开始就正确地设计系统体系结构的重要性。不幸的是,您并不总是能够使用这种方法。作为系统管理员,您有时可能会接手一些必须进行修复的系统。让我们研究一下磁盘上逻辑卷的布局,以确定您是否需要更改定义或者重新组织您的数据。

让我们首先了解一下卷组,并查找作为其中的一部分的逻辑卷。lsvg 命令可以提供卷组信息(请参见清单 4)。

清单 4. 使用 lsvg

# lsvg -l data2vg

Data2vg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT data2lv jfs 128 256 2 open/syncd /data2 loglv00 jfslog 1 2 2 open/syncd N/A appdatalv jfs 128 256 2 open/syncd /appdata

现在,让我们使用 lslv,它可以提供关于逻辑卷的特定数据(请参见清单 5)。

清单 5. 使用 lslv # lslv data2lv

LOGICAL VOLUME: data2lv VOLUME GROUP: data2vg LV IDENTIFIER: 0003a0ec00004c00000000fb076f3f41.1 PERMISSION: read/write

VG STATE: active/complete LV STATE: opened/syncd TYPE: jfs WRITE VERIFY: off MAX LPs: 512 PP SIZE: 64 megabyte(s) COPIES: 2 SCHED POLICY: parallel LPs: 128 PPs: 256

STALE PPs: 0 BB POLICY: relocatable INTER-POLICY: minimum RELOCATABLE: yes INTRA-POLICY: center UPPER BOUND: 32 MOUNT POINT: /data LABEL: /data MIRROR WRITE CONSISTENCY: on/ACTIVE EACH LP COPY ON A SEPARATE PV ?: yes Serialize IO ?: NO

这个视图为您的逻辑卷属性提供了详细的描述。这些数据表示了什么含义呢?intra-policy 是 center,它通常是面向使用大量 I/O 的逻辑卷的最佳策略。正如前面的讨论中所介绍的,对于这个规则,有一些例外的情况。不幸的是,您碰到了这些情况之一。因为已经开启了镜像写一致性检查 (MWC),所以如果卷位于边缘,那么应该能够更好地为其提供服务。让我们来研究一下 inter-policy。inter-policy 是 minimum,它通常是面向可用性高于性能的情况的最佳策略。而且,其中逻辑分区的数目是物理分区的两倍,这表示您正在对系统进行镜像。在这个示例中,对于您来说,原始性能是最重要的目标,所以逻辑卷的配置没有采用与如何使用卷的实际情况相关的方式。而且,如果您正在对系统进行镜像,并且使用了外部存储阵列,这种情况可能变得更糟,因为您已经在硬件层提供了镜像,而实际上,这比使用 AIX 镜像的效率更高。

让我们更深入地研究清单 6 中的内容。

清单 6. 带 -l 标志的 lslv # lslv -l data2lv

data2lv:/data2

PV COPIES IN BAND DISTRIBUTION

hdisk2 128:000:000 100% 000:108:020:000:000 hdisk3 128:000:000 100% 000:108:020:000:000

lslv 的 -l 标志列举了与逻辑卷和每个逻辑卷的分布(distribution)相关的所有物理卷。然后,您可以确定已经将磁盘上百分之百的物理分区都分配给了这个逻辑卷。其中的分布(distribution)部分显示了每个物理卷中的实际物理分区数目。从中,您可以详细地了解其 intra-disk 策略。这些字段的顺序如下所示:

? ? ? ? ?

边缘 (Edge) 中间 (Middle) 中央 (Center)

内部中间 (Inner-middle) 内部边缘 (Inner-edge)

该报告显示了,大多数数据位于中间,有些数据位于中央。

让我们继续研究,并找出与一个物理卷相关联的逻辑卷。可以使用 lspv 命令来完成这项任务(请参见清单 7)。

清单 7. 使用 lspv 命令 # lspv -l hdisk2

hdisk2:

LV NAME LPs PPs DISTRIBUTION MOUNT POINT loglv01 1 1 01..00..00..00..00 N/A data2lv 128 128 00..108..20..00..00 /data2 appdatalv 128 128 00..00..88..40..00 /appdata

现在,您可以实际地确定这个磁盘上的哪些逻辑卷实现了最大的性能。 您可以进行更深入地研究,以获取更具体的信息(请参见清单 8)。

清单 8. 带 -p 标志的 lspv # lspv -p hdisk2

hdisk2:

PP RANGE STATE REGION LV ID TYPE MOUNT POINT

1-108 free outer edge

109-109 used outer edge loglv00 jfslog N/A 110-217 used outer middle data2lv jfs /data2 218-237 used center appdatalv jfs /appdata

238-325 used center testdatalv jfs /testdata

326-365 used inner middle stagingdatalv jfs /staging 366-433 free inner middle 434-542 free inner edge

这个视图告诉您,该物理卷中哪些是空闲的、哪些已经被使用,以及在什么地方使用了哪些分区。这是一个非常好的视图。

最好的工具之一是,使用 lvmstat 查看 LVM 的使用情况(请参见清单 9)。

清单 9. 使用 lvmstat # lvmstat -v data2vg

0516-1309 lvmstat: Statistics collection is not enabled for this logical device.

Use -e option to enable.

正如您可以从这个示例的输出中看到的,缺省情况下并没有启用它,所以在使用这个工具之前使用 # lvmstat -v data2vg -e 来启动这个功能。下面的命令可以在 10 个时间间隔内,每秒钟对 LVM 信息进行一次快照: # lvmstat -v data2vg 1 10

这个视图显示了从启动该数据收集工具以来,您的系统中利用率最高的逻辑卷。在优化系统时需要深入地研究逻辑卷层,这时候该视图是非常有价值的(请参见清单 10)。

清单 10. 带 -v 标志的 lvmstat # lvmstat -v data2vg

Logical Volume iocnt Kb_read Kb_wrtn Kbps appdatalv 306653 47493022 383822 103.2 loglv00 34 0 3340 2.8

data2lv 453 234543 234343 89.3

您需要在其中查找什么信息呢?

% iocnt:报告读写请求的数目。

? Kb_read:报告在测量间隔中读取的总数据量(单位为千字节)。 ? Kb_wrtn:报告在测量间隔中写入的数据量(单位为千字节)。 ? Kbps:报告已传输的数据量(单位为千字节)。

?

在您将其添加到您的指令库中之前,请查看所有这些命令的 man 页面。 使用 lvmo 进行优化

这个部分介绍了使用特定的逻辑卷优化命令。lvmo 用于设置和显示您的 pbuf 优化参数。它还可以用于阻塞 I/O 统计信息。

lvmo 是在 AIX Version 5.3 中首次引入的新的命令之一。请务必注意,使用 lvmo 命令只允许更改那些专门用于特定卷组的 LVM pbuf 可调参数。ioo 实用工具仍然是在系统范围内管理 pbufs 的唯一方法。这是因为,在 AIX Version 5.3 之前,pbuf 池参数是一种系统范围的资源。随着 AIX Version 5.3 的出现,LVM 可以为每个卷组管理一个 pbuf 池。什么是 pbuf?最准确地说,pbuf 是一个固定的内存缓冲区。LVM 使用这些 pbuf 来控制挂起的磁盘 I/O 操作。 让我们显示一下 data2vg 卷组的 lvmo 可调参数(请参见清单 11)。

清单 11. 显示 lvmo 可调参数 # lvmo -v data2vg -a

vgname = data2vg

pv_pbuf_count = 1024

total_vg_pbubs = 1024 mag_vg_pbuf_count = 8192 perv_blocked_io_count = 7455 global_pbuf_count = 1024

global_blocked_io_count = 7455

其中哪些是可调参数?

pv_pbuf_count:报告在将一个物理卷添加到该卷组时所添加的 pbuf 数目。

? Max_vg_pbuf_count:报告可以为一个卷组分配的最大 pbuf 量。 ? Global_pbuf_count:报告在将一个物理卷添加到任何卷组时所添加的 pbuf 数目。

?

让我们为这个卷组增加 pbuf 计数: # lvmo -v redvg -o pv_pbuf_count=2048

老实说,我通常并不使用 lvmo,而是使用 ioo。我更习惯优化全局参数。请务必注意,如果您将这个 pbuf 值设置得太大,将会导致性能降低。 结束语

本文重点关注于逻辑卷以及它们与磁盘 I/O 子系统的关系。本文概略地定义了逻辑卷,并说明了它与应用程序和物理层的关系。本文还定义和介绍了

inter-disk 和 intra-disk 策略的一些最佳实践,因为它们与创建和维护逻辑卷有关。您了解了为您的逻辑卷监视 I/O 使用情况的各种方法,并且分析了从用于帮助确定问题的各种命令所捕获的数据。最后,您通过确定和增加特定卷组所使用的 pbufs 量,对您的逻辑卷进行了优化。本系列文章的第 3 部分将在您继续研究文件系统的同时,重点关注于应用程序层,并使用各种命令以监视和优化您的文件系统和磁盘 I/O 子系统。

共享本文?? 参考资料 请 Digg 这个故事 学习 发布到 ? 您可以参阅本文在 developerWorks 全球站点上

del.icio.u 的 英文原文 。

Slashdot 一下!? 优化 AIX 5L? 的性能:优化您的内存设置:查看

本系列中的其他部分。

? ?

优化 AIX 5L 的性能:监视您的 CPU:查看本系列中的其他部分。 “ AIX 5L V5.3 中的存储管理”:这篇文章重点关注于在 AIX 5L Version

5.3 中引入的一些特性,这些特性增强了逻辑卷管理器 (LVM) 和 Enhanced Journal File System (JFS2) 的范围、功能和性能。 有关开发逻辑卷策略的更详细的信息,请参阅图书 Storage Management Concepts:Operating System and Devices(来自 National Center for Supercomputing Applications)中的 Choosing an Inter-Disk Allocation Policy for Your System 部分。

Improving database performance with AIX concurrent I/O:阅读这本白皮书,以获得有关如何提高数据库性能的更多信息。

IBM 红皮书:Database Performance Tuning on AIX 用于帮助系统设计人员、系统管理员和数据库管理员,以设计、确定大小、实现、维护、监视和优化关系数据库管理系统 (RDMBS),从而在 AIX 上实现最优的性能。 Test 234:AIX 5L Performance and Systems Tuning:这项考试是 IBM 认证计划中的一部分。

Power Architecture:High-Performance Architecture with a History:阅读这本白皮书。

“Power to the People; A history of chip making at IBM:这篇文章介绍了 IBM power 体系结构。

“ AIX 中的处理器关联:使用进程关联设置来绑定线程或者取消线程的绑定,这样做可以帮助您找出产生棘手的挂起或死锁问题的根源。阅读这篇文章,以了解如何使用处理器关联来限制进程,并仅在指定的中央处理单元 (CPU) 上运行该进程。

“CPU 监视和优化”:了解标准的 AIX 工具如何帮助您确定 CPU 瓶颈。

?

?

?

?

?

?

?

?

?

IBM 红皮书:AIX 5L Practical Performance Tools and Tuning Guide 对 AIX 5L Version 5.3 中提供的性能监视和优化工具进行了全面的介绍。 “ AIX 5L Version 5.3:为您提供了哪些新的特性?”:了解 AIX 5L Version 5.3 中的哪些特性能够使您获益。

IBM 红皮书:AIX 5L Differences Guide Version 5.3 Edition 关注于与 AIX 5L Version 5.2 相比,AIX 5L Version 5.3 中所引入的差异。 操作系统与设备管理:IBM 的这个文档为用户和系统管理员提供了全面的信息,以便在执行诸如备份和还原系统、管理物理和逻辑存储,以及确定合适的分页空间之类的任务时,帮助您选择合适的选项。

IBM 红皮书:有关获得 IBM 的 AIX 5L 和 eServer? pSeries? 认证方面的帮助,请阅读 IBM Certification Study Guide for eServer p5 and pSeries Administration and Support for AIX 5L Version 5.3。 查看 Ken Milberg 撰写的其他文章和教程:

o 在 developerWorks and IBM

?

?

?

?

?

? ?

受欢迎的内容:查看您的同事所感兴趣的 AIX 和 UNIX 文章。 AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。

AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。

AIX 5L Wiki:发现 AIX 相关技术信息的协作环境。 按主题搜索“AIX and UNIX”库:

o 系统管理 o 应用程序开发 o 性能 o 移植 o 安全性 o 提示

o 工具和实用程序 o Java? 技术 o Linux? o 开放源代码

?

? ?

? ?

Safari 书店:访问此电子参考资料库可查找特定的技术资源。 developerWorks 技术事件和网络广播:了解最新的 developerWorks 技术事件和网络广播。

Podcast:收听 Podcast 并与 IBM 技术专家保持同步。

Future Tech:访问 Future Tech 网站以了解有关其最新产品的详细信息。

? ?

获得产品和技术

? ?

您可以从这里下载 nmon 分析程序。

IBM 试用软件:从 developerWorks 可直接下载这些试用软件,您可以利用它们开发您的下一个项目。

讨论

? ?

参与 developerWorks Blog,从而加入到 developerWorks 社区中来。 参与“AIX and UNIX”论坛:

o AIX 5L——技术论坛

o AIX for Developers 论坛 o 集群系统管理

o IBM Support Assistant o 性能工具——技术 o 虚拟化——技术

o 更多“AIX and UNIX”论坛

关于作者

en Milberg 是 techtarget.com 网站的技术作家和网站专家,并且在 K

searchopensource.com 网站提供 Linux 技术信息和支持。他还是《IBM 系统杂志(开放系统版)》的撰稿人和技术编辑。Ken 拥有马里兰大学计算机和信息科学学士学位以及技术管理硕士学位。他是长岛 POWER-AIX 用户组的创立者和负责人。多年以来,他在大小型企业工作过,并且担任过从 CIO 到高级 AIX 工程师的各种职位。现在,他在 Future Tech 工作,这是一家总部设在长岛的 IBM 业务合作伙伴。Ken 是一名通过 PMI 认证的项目管理专业人员 (PMP),还是一名通过 IBM 认证的高级技术专家(CATE,IBM System p5 2006),并且是

通过 Solaris 认证的网络管理员 (SCNA)。您可以通过 kmilberg@gmail.com 与他联系。

本文来源:https://www.bwwdw.com/article/sf37.html

Top