AIX系统性能分析及优化的研究
2015-07-21张明栋
张明栋
摘要:随着企业信息化不断深入发展,小型机的应用越来越广泛, 因此如何充分发挥小型机的性能,减少硬件投入成本,保障企业应用系统高效、稳定、可靠运行成为重要研究课题。本文主要以IBM小型机的AIX操作系统为运行平台,从CPU、内存及磁盘I/O三个方面,对AIX操作系统的性能分析及优化方法进行了具体的研究。
关键词:AIX;性能分析;性能优化
引言
AIX系统是IBM公司基于AT&T Unix System V开发的一套类UNIX操作系统,运行在IBM公司专有的Power系列芯片的小型机上。目前,IBM小型机广泛应用于政府、企业、银行以及证券等领域当中,尤其很多关键业务系统采用IBM小型机作为服务器,因此如何针对业务系统的特点和要求将小型机的系统资源尽可能均衡地充分利用,增强系统的吞吐能力,减少响应时间成为我们必须进行研究的课题。
本文主要以IBM小型机的AIX操作系统为运行平台,从CPU、内存及磁盘I/O三个方面,对AIX操作系统的性能分析及优化方法进行了具体的研究。
1 CPU
1.1 CPU性能分析
AIX 系统运行的硬件平台为Power CPU。Power CPU是IBM公司设计的一款基于 RISC 架构的处理器,主要用于服务器市场的小型机平台。CPU是系统运行的中枢大脑,重要性不言而喻。
AIX操作系统中用于CPU性能分析的工具及命令非常多,各自具有不同的特点。我们主要采用vmstat命令进行CPU运行数据的监测及分析,通过分析合理调度CPU资源,从而充分发挥CPU性能,解决CPU性能瓶颈。vmstat命令运行输出结果,如图1所示。
图1 vmstat命令输出结果
vmstat命令除了显示CPU负载情况外,还统计了虚拟内存、内核线程、物理内存及陷阱(错误)的活动情况。CPU是否成为整个系统性能瓶颈,主要由r、us、sy、id、wa五列数据决定。r列,表示可运行的内核线程平均数,包括正在运行的线程和正在等待 CPU 的线程,如果这个数字大于 CPU 的数目,至少有一个线程要等待 CPU,等待 CPU 的线程越多,越有可能对系统性能产生影响,如果这个数值达到CPU数量的2至5倍,说明CPU的处理能力可能已经成为影响整个系统性能的瓶颈。us列,显示系统中用户操作所消耗CPU时间百分比。sy列,表示系统中系统调用所消耗CPU时间百分比。id列,表示系统中CPU空闲时间所占的百分比。wa列,表示系统等待磁盘I/O所占时间百分比。在不需要共享CPU的单用户系统情况下,us+sy时间低于 90%,则不认为单用户系统是 CPU 受限制的。但是,如果在一个多用户系统中 us + sy 时间超过 80%,则进程可能要花时间在运行队列中等待,响应时间和吞吐量会受损害。
1.2 CPU性能优化方法
当上述监测和分析结果得出CPU性能不足,就应该使用相应的优化方法对CPU性能进行优化。通常对于CPU性能优化有四种方法:
(1) 平衡系统负载。将一些消耗CPU资源的进程分散在不同的期间运行,充分利用每天的24小时。
(2) 调整进程的优先级别。系统中运行的每个进程都有一个优先级,我们可以用ps命令查看进程的优先级别,优先级别值越小,优先级越高,能占用更多的CPU时间片。用nice和renice命令可以调整进程的优先级别,使关键应用进程享有较高优先级,从而提高系统性能。
(3) 调整CPU时间片的大小。如果系统中运行的大多是需要占用较多CPU运行时间且中途不会因I/O挂起的程序,可以通过schedo命令增大时间片的大小,从而减少时间片的切换,提高系统性能。
(4) 增加资源。添加更多的CPU或在虚拟环境中重新配置逻辑分区。在虚拟环境,通过设置无上限分区或动态合理调整逻辑分区之间虚拟处理器数量,提高物理资源的使用率。
2内存
2.1 内存性能分析
AIX系统的内存由实际物理内存和硬盘上的交换空间组成,称为虚拟内存。虚拟内存空间被划分为一个个固定大小为4KB的页面,这些页面存在于实际物理内存或交换空间上。
当操作系统内存资源不足时,系统运行速度会显著地变慢。对于系统内存性能分析的主要任务是监测系统配置的有限内存使用状况以及是否存在内存使用不当而影响系统整体性能的情况。
使用svmon命令可以对内存使用状况进行深层次的分析,从而得到当前内存使用状态的快照信息。svmon命令运行结果,如图2所示。
图2 svmon运行结果
其中第一行的size列报告了内存的大小,单位是大小为4k的页面;inuse列报告了进程所使用的内存中的页面数,加上属于一个已终止的进程但仍位于内存中的持久页面的数目;free列报告了空闲列表中页面的数目;pin列报告了内存中固定的页面数,固定的页面不能被调出。第二行的pg space报告了交换空间的实际使用情况,单位是大小为 4k 的页面。通过这些参数我们可以计算出系统内存、交换空间的使用率,当使用率较高时,我们就需要进行一些优化。
2.2 内存性能优化方法
内存资源常见的问题为资源不足。资源不足有两种,一是操作系统整体内存资源不足,二是内存资源的配置不合理。整体内存资源不足可以通过增加物理内存解决。内存资源的配置不合理通常采用以下三种方法解决:
(1) 调整内存页面大小。内存页面大小默认是4KB,但对于消耗大量内存的应用程序来说,分散存储在太多页面上可能造成影响。通过使用vmo命令调整相关参数,就可以对系统进行优化以提供大型的页面,从而极大地提高系统性能。
(2) 调整调度策略。虚拟内存的所有页面被分为程序页面和文件页面两种类型。前者是读入可执行程序的部分,后者为读入文件数据的部分。通过调整minperm和maxperm两个参数,可以平衡程序页面和文件页面的交换,减少程序页面的调出,提高系统性能。
(3) 合理设置交换空间。如果交换空间的使用率高于60%,则应该增加交换空间的大小和数量,可以避免调页空间不足导致进程挂起,提高系统运行效率。设置交换空间应遵循以下原则:大小相同、分布在不同的磁盘的中央位置。
3磁盘I/O
3.1 磁盘I/O性能分析
摩尔定律说,每过十八个月集成电路的晶体管数量会增加一倍,存储的密度每过十二个月就会增加一倍,每过十二个月至十八个月,用户就开始担心自己的存储的容量空间是否还足够了。不过,磁盘头旋转读取的速度可没变化这么快,传输速率还在兆字节的级别速度上。所以很多时候,应用系统的瓶颈,出现在 I/O 层面。如何分析 I/O 的性能问题,显得很重要。使用iostat命令,可以得到较详细的I/O性能数据,该命令运行结果,如图3所示。
图3 iostat命令运行结果
%tm_act指示磁盘活动所占总时间的百分比,通常当利用率超过70%时,进程将等待的时间会比完成 I/O所必需的时间要长,我们需要把数据从繁忙的磁盘中移到空闲磁盘里,从而可以帮助减轻磁盘的瓶颈。
Kbps指示了每秒钟多少 KB的数据被传送(读或写),这是在系统报告时间间隔内 Kb_read 加上 Kb_wrtn 的总和并除以的这段时间间隔的总数的结果。
tps指示了每秒钟磁盘传送的次数,一次传送是设备驱动程序级别到磁盘的一次 I/O处理请求,多重逻辑请求可以组合成单一的磁盘 I/O 请求,传送的大小是不确定的。
Kb_read报告了在测量间隔中总的从物理卷中读取的数据量(以KB为单位)。
Kb_wrtn显示了在测量间隔中总的写入物理卷中的数据量(以KB为单位)。
%tin_act,当它的使用率超过大概百分之六十到七十时,这通常表示进程开始等待I/O,这可能是即将发生的I/O问题的第一个征兆。
3.2 磁盘I/O性能优化方法
(1) 逻辑卷优化。把经常被访问的热点文件所在的逻辑卷移至负载相对较轻的物理卷上或通过RAID机制将文件所在逻辑卷条块化到多个物理磁盘,以用来平衡I/O负载。
(2) 文件系统优化。对于JFS格式的预读页可以通过修改minpgahead和maxpgahead参数进行优化,顺序预读功能可以改进需要顺序访问超大文件时系统的性能。
(3) 磁盘I/O访问模式优化。若应用系统进行同步I/O操作,则必须等待I/O完成之后才能继续执行。相反,异步I/O操作在后台运行,不会阻塞用户的进程,这样可以有效的提高了I/O吞吐量。
4结束语
本文通过不同的分析方法,对与AIX系统性能相关的三个主要方面分别进行了深入探讨。系统优化是一项复杂、繁琐、长期的工作,随着企业信息化的不断推进,应用系统的性能优化也显得越来越重要,本文所进行的研究和提出的优化方案可以为其他企业信息化建设提供参考。
参考文献:
[1]王育民,操作系统理论与技术,北京联合大学学报:自然科学版.2008,22(1):41.45.
[2]于宁斌,IBM UNIX&Linux-AIX 5L系统管理技术,电子工业出版社.2003,(8).
[3]Orian,走入IBM小型机世界,电子工业出版社 .2008,(5).
[4]张冬,大话存储一网络存储系统原理精解与最佳实践,清华大学出版社.2008,(11).