AIX 上的进程优先级与进程控制
2007-05-11 08:13:07 来源:WEB开发网线程和 SMT
通过允许在不同的 CPU 上运行多个线程,还可以有效利用同步多线程 (SMT)。当系统处于 SMT 模式下时,处理器可以从多个线程中获取指令。SMT 的概念专门用于 POWER5 体系结构,它指的是单个进程不能同时使用所有处理器执行单元。POWER5 设计可在每个芯片内核上实现双向 SMT。其结果是,每个物理处理器内核将由两个虚拟处理器表示。SMT 在商业环境中特别有用,因为在这种环境中,单个事务的处理速度与所执行的总事务数相比并不那么重要。借助于大型或更改频繁的工作集(例如数据库服务器和 Web 服务器),SMT 应能够增大工作负荷的吞吐量。浮点密集型工作负荷很少能从 SMT 中获益,因而是最可能降低性能的因素。这些工作负荷会占用大量的浮点单元或内存带宽。每条指令的平均时钟周期数 (CPI) 和缓存未命中率都较低的工作负荷可能会从 SMT 得到少许益处。通常情况下,SMT 应能够使系统性能提高约 30%。您必须确定系统上运行的关键进程是否可从 SMT 获益。关键进程通常可以从 SMT 获益;但是,如果您确定的情况并非如此,则需要将其关闭,因为这些进程在缺省情况下处于启用状态。
计划概念
我尽量不在 AIX 调度程序的内核构造方面花费太多的时间,但在介绍进程管理或调度程序优化之前,您需要对这些知识有更好的了解。
系统上的每个 CPU 都有自己专用的运行队列,该队列是按线程优先级值排序的可运行线程的列表。另外,还有一种运行队列,称为全局运行队列。所有新线程都被放在全局运行队列中。每当 CPU 准备分派线程时,它都会先检查此全局运行队列,然后再检查其他运行队列。在 CPU 上,当一个线程完成它的时间切片后,它将返回原来运行它的 CPU 运行队列。这有助于 AIX 维护它的处理器关联性。(我将在后面对处理器关联性进行详细讨论。)
更多精彩
赞助商链接