- 论坛徽章:
- 0
|
这是AIX 5L 磁盘优化的第三个部分,前2个部分就写的挺不错的,由浅入深的讲解了磁盘优化的原理和问题,以及一些工具。这个部分也是介绍了3个工具,有2个工具主要是收集磁盘的当前的状态的,让管理员更好的了解目前系统磁盘子系统的状态,通过一些数据来了解磁盘目前的配置和状体是否合理,第三个工具是ioo,一个十分重要的调整AIX 磁盘参数的工具,当然参数的调整是需要十分的小心的,因为对于一些在线系统不当的调整会造成性能的严重下降。所以做之前一定要谨慎,谨慎,再谨慎。。。。。。\r\n原文:http://www.ibm.com/developerwork ... gr-cn-ixpub&\r\n系列文章:http://www.ibm.com/developerwork ... gr-cn-ixpub&\r\n\r\n\r\n引言\r\n 本系列文章的第 1 部分和第 2 部分讨论了设计系统体系结构的重要性,它对整体系统性能所产生的影响,以及一个新的 I/O 优化工具 lvmo,您可以使用该工具对逻辑卷进行优化。在这个部分中,将研究如何使用 ioo命令优化您的系统,该命令可以对大多数 I/O 优化参数进行配置,并显示所有 I/O优化参数当前或者下一次的启动值。同时,还将介绍如何以及何时使用 filemon 和 fileplace 工具(这些特定的 AIX工具应该是您的技能库中重要的部分)、如何提高您的整体文件系统性能、如何优化您的文件系统,以及增强的日志记录文件系统 (JFS2)与日志记录文件系统 (JFS) 相比有什么不同。您甚至还将研究一些文件系统属性,如顺序访问和随机访问,它们都可能对性能产生影响。 \r\n 文件系统概述\r\n 这个部分将讨论 JFS2、文件系统性能,以及对 JFS 所做的特定性能改进。正如您所知道的,在 AIX 中有两种类型的内核。它们分别是 32位内核和 64位内核。尽管它们之间共享了一些常用的库、大多数的命令及实用工具,但了解它们之间的区别以及内核与整体性能优化之间的关系,这一点是非常重要的。JFS2 为 64 位内核进行了优化,而 JFS 则为 32位内核进行了优化。日记记录的文件系统可以提供更高的安全性,但在以前,往往会带来性能方面的开销。在选择相关的性能规则(以牺牲可用性为代价)时,为了使 JFS 提高性能,您可能会禁用元数据日志记录功能。就 JFS2而言,这种情况不再可能发生,甚至不再需要,因为已经对它进行了优化,以便更加高效地处理元数据密集型的应用程序。更重要的一点是,JFS2的关键优势在于其扩展能力。使用 JFS,单个文件最大不能超过 64GB。而使用 JFS2,您可以拥有一个 16TB的文件。另一个重大变化是目录组织方式的更改。增强的 JFS2 在执行索引节点搜索的时候使用二叉树的表示形式,与 JFS使用的线性方法相比,这种方法要好得多。而且,在创建文件系统的时候您不再需要分配索引节点,因为现在它们是由 JFS2动态分配的,这意味着将不会耗尽索引节点。尽管在本系列文章的第 1 部分中已经介绍了并发 I/O(请参见参考资料),但在这里有必要再次提及这个内容。并发 I/O 的实现允许多个线程并发地对同一个文件进行读写数据的操作。这是由于在实现 JFS2时采用了写操作排它索引节点锁的方式。这种方式允许多个用户同时对同一个文件进行读操作,当多个用户从相同的数据文件中进行读操作时,这种方式能够显著地提高性能。要打开并发 I/O,您只需要使用合适的标志装入 f/s(请参见清单 1)。我建议您在使用数据库(如 Oracle)的时候考虑使用并发 I/O 这个功能。\r\n \r\n清单 1. 打开并发 I/O\r\n \r\nroot@lpar29p682e_pub[/] mount -o cio /test\r\nroot@lpar29p682e_pub[/] > df -k /test\r\nFilesystem 1024-blocks Free %Used Iused %Iused Mounted on\r\n/dev/fslv00 131072 130724 1% 4 1% /test\r\n | \r\n 表 1 说明了 JFS2 的各种增强功能,以及它们与系统性能之间的关系。在优化您的 I/O 系统时,许多可调整的参数自身(稍后将深入研究这个问题)也存在差别,这取决于您正在使用的是 JFS 还是 JFS2,了解这一点同样也非常重要。 \r\n \r\n表 1. JFS2 的增强功能\r\n 功能JFSJFS2压缩是否配额是是延迟的更新是否直接 I/O 支持是是优化32 位64 位最大文件系统大小1 TB4 PB最大文件大小64 GB4 PB索引节点的数目在创建 f/s 时确定动态的大文件支持作为装入选项缺省联机碎片整理是是Namefs是是DMAPI否是 filemon 和 fileplace\r\n 这个部分将介绍两个重要的 I/O 工具,filemon 和 fileplace,并讨论如何在日常系统管理工作中使用它们。 \r\n filemon使用了一种跟踪工具来报告物理和逻辑存储(包括您的实际文件)的 I/O 活动。根据在运行跟踪工具时指定的时间间隔,对 I/O活动进行监视。它将报告所有文件系统层次的使用率,包括逻辑卷管理器(LVM)、虚拟内存和物理磁盘层。如果不使用任何标志,那么当要进行监视的应用程序或者系统命令运行时,它将在后台运行。跟踪工作将自动启动,直到停止该命令为止。此时,命令将生成 I/O活动报告,然后退出。它还可以处理由跟踪工具所记录的跟踪文件。然后,可以由该文件生成报告。因为对标准输出生成的报告通常会在您的屏幕中一滚而过,所以我们建议您使用 -o 选项,以便将该输出写入到一个文件(请参见清单 2)。 \r\n \r\n清单 2. 使用带 -o 选项的 filemon\r\n \r\nroot@lpar29p682e_pub[/] > filemon -o dbmon.out -O all\r\n\r\nRun trcstop command to signal end of trace.\r\nSun Aug 19 17:47:34 2007\r\nSystem: AIX 5.3 Node: lpar29p682e_pub Machine: 00CED82E4C00\r\n\r\nroot@lpar29p682e_pub[/] > trcstop\r\n[filemon: Reporting started]\r\nroot@lpar29p682e_pub[/] > [filemon: Reporting completed]\r\n\r\n[filemon: 73.906 secs in measured interval]\r\n\r\nroot@lpar29p682e_pub[/] >\r\nWhen we look at our file, here is what we see:\r\nSun Aug 19 17:50:45 2007\r\nSystem: AIX 5.3 Node: lpar29p682e_pub Machine: 00CED82E4C00\r\nCpu utilization: 68.2%\r\nCpu allocation: 77.1%\r\n130582780 events were lost. Reported data may have inconsistencies or errors.\r\nMost Active Files\r\n------------------------------------------------------------------------\r\n #MBs #opns #rds #wrs file volume:inode\r\n------------------------------------------------------------------------\r\n 0.3 1 70 0 unix /dev/hd2:38608\r\n 0.0 9 11 0 vfs /dev/hd4:949\r\n 0.0 2 4 0 ksh.cat /dev/hd2:58491\r\n Most Active Segments\r\n------------------------------------------------------------------------\r\n #MBs #rpgs #wpgs segid segtype volume:inode\r\n------------------------------------------------------------------------\r\n 0.6 0 162 223b9 client\r\n \r\nMost Active Logical Volumes\r\n------------------------------------------------------------------------\r\n util #rblk #wblk KB/s volume description\r\n------------------------------------------------------------------------\r\n 0.25 0 120 0.2 /dev/hd8 jfs2log\r\n 0.00 0 1304 2.7 /dev/hd4 /\r\n \r\n------------------------------------------------------------------------\r\nDetailed File Stats\r\n------------------------------------------------------------------------\r\n\r\nFILE: /unix volume: /dev/hd2 inode: 38608\r\nopens: 1\r\ntotal bytes xfrd: 286720\r\nreads: 70 (0 errs)\r\n read sizes (bytes): avg 4096.0 min 4096 max 4096 sdev 0.0\r\n read times (msec): avg 0.003 min 0.002 max 0.005 sdev 0.001\r\nlseeks: 130\r\n------------------------------------------------------------------------\r\nDetailed VM Segment Stats (4096 byte pages)\r\n------------------------------------------------------------------------\r\n\r\nSEGMENT: 223b9 segtype: client\r\nsegment flags: clnt\r\nwrites: 162 (0 errs)\r\n write times (msec): avg 1.317 min 0.369 max 1.488 sdev 0.219\r\n write sequences: 5\r\n write seq. lengths: avg 32.4 min 1 max 64 sdev 20.8\r\n\r\n------------------------------------------------------------------------\r\nDetailed Logical Volume Stats (512 byte blocks)\r\n------------------------------------------------------------------------\r\n\r\nVOLUME: /dev/hd8 description: jfs2log\r\nwrites: 15 (0 errs)\r\n write sizes (blks): avg 8.0 min 8 max 8 sdev 0.0\r\n write times (msec): avg 0.389 min 0.287 max 1.277 sdev 0.250\r\n write sequences: 11\r\n write seq. lengths: avg 10.9 min 8 max 24 sdev 5.1\r\nseeks: 11 (73.3%)\r\n\r\nDetailed Physical Volume Stats (512 byte blocks)\r\n------------------------------------------------------------------------\r\n\r\nVOLUME: /dev/hdisk0 description: Virtual SCSI Disk Drive\r\nwrites: 33 (0 errs)\r\n write sizes (blks): avg 45.3 min 8 max 256 sdev 82.7\r\n write times (msec): avg 0.544 min 0.267 max 1.378 sdev 0.370\r\n write sequences: 26\r\n write seq. lengths: avg 57.5 min 8 max 512 sdev 122.6\r\nseeks: 26 (78.8%)\r\n seek dist (blks): init 17091584,\r\n avg 913560.3 min 8 max 3940256 sdev 1431025.7\r\n seek dist (%tot blks):init 40.74951,\r\n avg 2.17810 min 0.00002 max 9.39430 sdev 3.41183\r\ntime to next req(msec): avg 6369.624 min 0.051 max 120046.794 sdev 23589.450\r\nthroughput: 3.1 KB/sec\r\nutilization: 0.00\r\n | \r\n 您可以在输出结果中查找较长的寻道时间,因为它们可能会导致应用程序性能降低。通过仔细地观察读写序列的计数,您可以更深入地确定该访问是顺序访问还是随机访问。当进行 I/O优化的时候,该信息可以为您提供帮助。该输出清楚地说明了这里不存在任何 I/O 瓶颈。filemon可以提供大量的信息,事实上,我常常发现它所提供的信息太多了。而且,在使用 filemon 时可能带来很大的性能损失。让我们来看一下,在运行filemon(请参见图 1)时,topaz 的结果。\r\n \r\n图 1. 在运行 filemon 时 topaz 的结果\r\n \r\n 在这个示例中,filemon 几乎占据了 96% 的 CPU!通常,我不推荐使用带来如此巨大开销的性能工具,所以我要重申一下,尽管 filemon 的确有其用武之处,但您在使用它的时候仍需非常小心。 |
|