- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AIX 上的进先级与进程控制
引言
作为一名 AIX? 管理员,您应该已经了解有关如何处理进程的基础知识,包括研究进程、设置进程的优先级和终止进程。此外,您还应该知道如何使用手头的各种工具来调整进程并相应地进行优化。这些工具包括 AIX 5.3 中新增的一些工具。要在系统上提供有效的进程控制,您必须了解进程和线程的定义以及二者之间的区别。本文还将介绍?ps、nice、schedtune?命令以及进程监视器控制台 (procmon)、AIX 工作负载管理器 (WLM) 和其他可供使用的工具。让我们先从进程和线程的定义开始:
进程——进程是指系统内部由命令、Shell 脚本或其他进程启动的活动。
线程——线程是一个独立的控制流,它与其他独立的控制流一起在进程内部的同一地址空间中运行。内核线程是单个顺序控制流。
看待这种区别的另一种方式是,进程是系统用于控制系统资源使用情况的实体,而线程则控制实际使用的处理器时间。大多数系统管理工具仍要求参考进程而不是线程。实际上,进程本身也拥有内核线程,每个进程可具有一个或多个内核线程(例如多线程应用程序)。对于线程,您可以在系统上的不同 CPU 中运行多个线程,从而真正利用多处理器计算机(对称多路处理机,又称 SMP 机)的优势。应用程序在设计上可拥有多个用户级线程,并将它们计划为由应用程序或 libpthread 中的 pthread 调度程序处理。多个控制线程允许应用程序同时为来自多个用户的请求提供服务。在 libpthread 实现中,用户线程位于虚拟处理器之上,而虚拟处理器本身又位于内核线程之上。本文将对进程的内核方面进行深入研究,同时探讨有助于提高整个系统管理效率的工具。为帮助您有效管理环境,我们将详细介绍久经试验的 UNIX? 命令以及很多可供 AIX 管理员使用的新型工具。
线程和 SMT
通过允许在不同的 CPU 上运行多个线程,还可以有效利用同步多线程 (SMT)。当系统处于 SMT 模式下时,处理器可以从多个线程中获取指令。SMT 的概念专门用于 POWER5 体系结构,它指的是单个进程不能同时使用所有处理器执行单元。POWER5 设计可在每个芯片内核上实现双向 SMT。其结果是,每个物理处理器内核将由两个虚拟处理器表示。SMT 在商业环境中特别有用,因为在这种环境中,单个事务的处理速度与所执行的总事务数相比并不那么重要。借助于大型或更改频繁的工作集(例如数据库服务器和 Web 服务器),SMT 应能够增大工作负荷的吞吐量。浮点密集型工作负荷很少能从 SMT 中获益,因而是最可能降低性能的因素。这些工作负荷会占用大量的浮点单元或内存带宽。每条指令的平均时钟周期数 (CPI) 和缓存未命中率都较低的工作负荷可能会从 SMT 得到少许益处。通常情况下,SMT 应能够使系统性能提高约 30%。您必须确定系统上运行的关键进程是否可从 SMT 获益。关键进程通常可以从 SMT 获益;但是,如果您确定的情况并非如此,则需要将其关闭,因为这些进程在缺省情况下处于启用状态。
计划概念
我尽量不在 AIX 调度程序的内核构造方面花费太多的时间,但在介绍进程管理或调度程序优化之前,您需要对这些知识有更好的了解。
系统上的每个 CPU 都有自己专用的运行队列,该队列是按线程优先级值排序的可运行线程的列表。另外,还有一种运行队列,称为全局运行队列。所有新线程都被放在全局运行队列中。每当 CPU 准备分派线程时,它都会先检查此全局运行队列,然后再检查其他运行队列。在 CPU 上,当一个线程完成它的时间切片后,它将返回原来运行它的 CPU 运行队列。这有助于 AIX 维护它的处理器关联性。(我将在后面对处理器关联性进行详细讨论。)
您可以优化某些环境变量来提高调度程序的性能,但这已超出本文的论述范围。系统上的 CPU 由所有线程共享,其方式是向每个线程都提供一定的时间切片来运行。缺省时间切片是 10 毫秒(一个时钟计时单元)。使用?schedo?命令可以更改这一缺省值。增加时间切片可减少上下文切换,从而可以提高系统吞吐量。使用?vmstat?或?sar?命令可以查看上下文切换。如果上下文切换的值非常高,则增加时间切片可提高性能,但这必须在经过大量分析之后才能实施。
在系统模式方面,CPU 有两种运行模式:内核模式和用户模式。在用户模式中,程序对进程专用区域中的用户数据具有读写访问权限。此模式是进程积累其大多数 CPU 时间所在的模式。另一种模式是内核模式。以内核模式运行的某些程序包括中断处理程序和内核进程。当在某个进程的上下文中执行以此模式运行的代码时,它不仅对全局内核地址空间具有读写访问权限,还将对该进程中的内核数据也具有读写访问权限。对于进程地址空间中的用户数据,必须使用内核服务进行访问。当用户程序访问系统调用时,它将在内核模式
文档评论(0)