使用 AIX 性能工具发现与内存相关的问题
2009-09-09 00:00:00 来源:WEB开发网问题
在启动某个应用程序时,我们注意到内存被完全消耗光了。这个应用程序是系统中运行的惟一进程。另外,在执行手工事务时也会出问题,常常由于服务器没有响应而超时。
问题分析和解决
我们最初的想法是内存耗尽与这个应用程序有关。但是,使用性能工具进行检查之后,我们改变了想法。
在印度神话中,有一种名为 Sanjeevini 的药可以治愈几乎所有疾病。topas 就是性能工具中的 Sanjeevini。它提供所有系统资源的概况,可以作为性能分析的起点。对于我们的问题,它提供分析问题的基础。在我们第一次观察到这个问题时,topas 显示计算内存的总使用量达到 99%。与此同时,团队也观察到了执行手工事务时的问题。团队当时只执行与一个应用程序有关的测试。
因此,研究过程的下一步是停止应用程序,再次使用 topas 检查计算内存的状态。这时的计算内存是 78%。考虑到没有其他应用程序在运行,这个数字不正常,它向我们提示了新的思考方向。
有助于分析问题的其他工具还有 svmon、vmstat 和 vmo。
svmon 命令
svmon 命令是一个性能度量工具,它捕捉和分析虚拟内存的快照。
svmon -G 命令显示下面的全局内存报告。它显示系统中真实内存和虚拟内存的使用量和空闲量。
svmon -G
图 1. svmon 全局内存报告
内存报告表明,总内存量为 1998848 个页面(页面大小为 4K),使用了 1996881 个页面,1967 个页面空闲。
在上面的报告中,空闲页面数量为 1967,但是不能由此断定存在任何与内存相关的限制或内存瓶颈,因为为了提高 I/O 性能,如果应用程序或内核没有明确请求的话,AIX® 会用尽可能多的空闲内存进行文件缓存。另外,报告表明分页空间总量为 3145728 个页面,其中使用的分页空间为 99556 个页面。
赞助商链接