如何调试aix上的应用程序.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何调试AIX上的应用程序----越来越多的用户选择了 IBM的RS/6000服务 器作为应用程序的运行 平台,并且伴随应用程序复杂度的增加 ,给系统以及应用程序 的性能提出了 进一步的要求。在这里讲解是如何在 AIX 环境中调试系统性能 ,找出 具体的 问题和产生的原因 ,找到解决的办法 ,使得应用程序的反应速度加快 ,以满 足 用户的需求。 从性能角度来看 ,总体上分为 :系统整体性能和应用程序个体的性能。 从性 能调试的方法来讲大体上是一致的 ,只是着重 点和调试 目标 的 不同 。在 系统性能 方 面 ,是为了 达 到 最 大的系统 吞吐量 并 减小 反应 时间; 在应用程序 方面 ,是为 了 减小 反应 时间 。 性能调试 就 是使得应用程序和系统的 资源 分配 能够最佳地符合当前特 定 环境。 性能调试的 流程如 下 : 首先判断 CPU 是 否 是 瓶颈 ,如 果 CPU 是 瓶颈则 调试系统 或 应用程序的 参 数 ,增 强 CPU ; 第二判断内存 是 否是 瓶颈 , 调 节 系统和应用程序 关于内存 的 参数 , 使 内存 的 使用 达 到 最佳 ; 第三判断磁盘 的 输入 /输 出是 否 是 瓶颈 ,调 节磁盘 的使用 状态 及 参数 , 减 少 输入 /输 出 时间 ; 第四判断网络 是 否是 瓶颈 , 调 节网络 环境 或应用程序 访问方 式 , 增加 网 络吞吐 量或减小网络压力 ; 第五附 加的 测 试 跟踪 ,使用 附 加 工 具生 成 分 析报表 。 这里 开始对每 一个步 骤 进一步的 阐述 对于每一个进程来讲 , 它们都有进程优先级 , 计算公式为 : PRI=NICE+40+CPU_ PENALTY, 从公式中可以看到基本上用户进程的优先级 是大于 40的。可以使用“ ps-l ”和 “ p-semo THREA”D 命令分别查寻进程和 线程的CPU使用 状态。使用“ nicen proname”和“ renice +n proid来修改 进程 的优先级。 对 CPU 的整体调试过程可以总结如下 : 首先使用“ iostat 、”“ vmstat 和”“ sar 命”令查看是否 CPU 有瓶颈 ,以及使 用状态; 使用“ ps 命”令查看哪条进程占用大量 CPU 时间; 使用“ prof 、”“ gprof 和”“ tprof 命”令查看特定的应用程序中哪些或哪 一条语句占用 CPU 过长 ; 改应用程序代码 , 优化程序, 对于十分消耗 CPU 资源的数学算法调 用要使用 AIX 系统提供的函数库 BLAS/ESSL 中的数学算法,这些算法函数 要比程序员自己开发的函数节省系统资源。 此外 ,在编译可执行文件时 ,使用优化参数对程序进行进一步优化。 对于 CPU 的消耗在很多情况下是由应用程序引起的,在应用程序优化完 成以后 , 如果 CPU 依然没有很大的改善 , 这就需要对 CPU 直接进行升级了, 要么就增加 CPU 的个数。这里还有两个命令在应用程序调试时十分有 用:“ time 和”“ timex 。”这两个命令可以检测出某个应用程序从开始到结 束总共 花费的时间,“ time返回分钟数和秒数,“ timex返回总共的秒数。- ---在判断和调试系统内存之前 , 首先要了解内存访问的概念。内存在大多数 情况下指虚拟内存 , 其中包括实内存 (Real Memory 和磁盘上的虚拟空间 (Paging Spaceo值得注意的是在AIX系统中,实内存的输入/输出不仅在磁 盘虚拟空间之间产生, 而且包括另外两种形式 :固定数据文件 (Persistent Segment和远程数据文件(Client Segment。为了减少磁盘的寻址时间,磁盘 虚拟空间往往采用连续的存储空间。 检测系统内存的使用情况主要使用命令“ vmstat 此”命, 令可以查 看到活动的虚拟空间和剩余的实内存、内存页的输入 /输出状态和 CPU 是否有输入 /输出空闲。在分析统计调试结果时 ,一定要注意上面提到的 实内存输入 /输出的三种途径。 ----使用“ ps au命”令可以查看每条进程的内存占有情况,数据是以百 分比的方式显示。 ----还有一个命令十分有用,“ svmon这个,命令帮助调试者进一步取 得有关进程使用内存的信息 , 它可以生成当前使用内存最多的进程状态报 表。 SVMON 命令和 VMSTAT 命令可以配合使用, 它们的返回结果有一部 分是相互重叠的, 由此也可以验证进程使用内存状态的真实性。另外 , SVMON 命令还可以分析出来指定进程在使用内存方面的细节 , 究竟是哪 些程序片占用了哪些内存,参数是-P ” O 命令“ vmtune 用”来 修改操作系统与内存

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档