AIX 5L CPU性能优化(3)

http://tech.ddvip.com   2007年08月27日    社区交流

内容摘要:本系列文章的第 3 部分重点关注中央处理单元 (CPU) 性能优化中鲜为人知的方面:控制线程使用和 CPU 绑定。本文介绍了一些关键的工具和实用程序,您可以使用它们来分析线程和管理进程。

  清单 6. 检查是否启用了 SMT# smtctl
SMT is currently enabled.

  清单 7 显示了一个启用了 SMT 的双向系统的输出。

  清单 7. 一个启用了 SMT 的双向系统的输出# bindprocessor -q
The available processors are: 0 1 2 3

  如果您希望将一个进程绑定到某个特定的 CPU,非常简单,可以执行下面的命令:# bindprocessor 12741 2

  有时候,会很自然地出现处理器关联的情况。当某个线程在一个 CPU 上运行并发生了中断,通常会将它放回到相同的 CPU 上运行,因为这个处理器的缓存中仍然保存了属于该线程的相关信息。如果将其分派到另一个 CPU,它可能不得不从 RAM 中获取相关信息,而这将极大地降低处理的速度。

  您还可以使用子例程来绑定线程,尽管我在进行这种工作时会倍加小心。它所执行的操作是将一个进程中所有的内核线程绑定到某个处理器,这样做将强制这些线程运行于某个特定的处理器中,直到解除对它们的绑定。

  编程中使用的另一个重要线程命令是 gprof。gprof 命令为您所编译的程序(可能是用 C、Pascal、FORTRAN、或者甚至是 COBOL 编写的程序)产生一个执行概要。gprof 可以报告您的程序中所有子例程的流程控制,并为您提供每个子例程所使用的 CPU 时间。在对进程如何使用 CPU 资源进行故障诊断时,这是非常有用的。相关的数据来自于概要文件 (gmon.out)。您可以使用 gprof 对您的程序进行概要分析,并确定哪些函数正在使用 CPU。概要数据来自于调用关系图概要文件(缺省情况下是 gmon.out)。那么,在 AIX Version 5.3 中有何不同呢?因为 AIX Version 5.3 允许输出文件的概要具有用户指定的名称(通过设置特殊的环境变量),所以,为线程提供了附加的概要支持和选项,而这些都会影响所收集的概要数据的类型。

  总结

  在本文中,我介绍了控制线程使用和 CPU 绑定的重要性。您了解了一些用于分析线程和管理进程的、关键的工具和实用程序。而且,您使用 schedo 对内核进行了优化,了解了与处理器关联有关的所有内容,并掌握了如何绑定 CPU。本系列文章主要介绍关于 CPU 监视的内容,共由三篇文章组成,首先引入了优化的概念,然后介绍了监视和数据收集,最后以系统优化和管理作为结束。尽管大多数的读者可能对内存子系统的优化更加熟悉,但是我希望通过本系列文章说明 CPU 监视和优化的重要性。

来源:ibm    作者:Ken Milberg    责编:豆豆技术应用

正在加载评论...