AIX 上的进程优先级与进程控制

上传人:洪易 文档编号:40221228 上传时间:2018-05-24 格式:DOC 页数:6 大小:63.50KB
返回 下载 相关 举报
AIX 上的进程优先级与进程控制_第1页
第1页 / 共6页
AIX 上的进程优先级与进程控制_第2页
第2页 / 共6页
AIX 上的进程优先级与进程控制_第3页
第3页 / 共6页
AIX 上的进程优先级与进程控制_第4页
第4页 / 共6页
AIX 上的进程优先级与进程控制_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《AIX 上的进程优先级与进程控制》由会员分享,可在线阅读,更多相关《AIX 上的进程优先级与进程控制(6页珍藏版)》请在金锄头文库上搜索。

1、引言引言作为一名 AIX 管理员,您应该已经了解有关如何处理进程的基础知识,包括研究进程、 设置进程的优先级和终止进程。此外,您还应该知道如何使用手头的各种工具来调整进程 并相应地进行优化。这些工具包括 AIX 5.3 中新增的一些工具。要在系统上提供有效的进 程控制,您必须了解进程和线程的定义以及二者之间的区别。本文还将介绍ps、nice、schedtune 命令以及进程监视器控制台 (procmon)、AIX 工作负载管理 器 (WLM) 和其他可供使用的工具。让我们先从进程和线程的定义开始:进程进程进程是指系统内部由命令、Shell 脚本或其他进程启动的活动。线程线程线程是一个独立的控制

2、流,它与其他独立的控制流一起在进程内部的同一 地址空间中运行。内核线程是单个顺序控制流。 看待这种区别的另一种方式是,进程是系统用于控制系统资源使用情况的实体,而线程则 控制实际使用的处理器时间。大多数系统管理工具仍要求参考进程而不是线程。实际上, 进程本身也拥有内核线程,每个进程可具有一个或多个内核线程(例如多线程应用程序)。 对于线程,您可以在系统上的不同 CPU 中运行多个线程,从而真正利用多处理器计算机 (对称多路处理机,又称 SMP 机)的优势。应用程序在设计上可拥有多个用户级线程, 并将它们计划为由应用程序或 libpthread 中的 pthread 调度程序处理。多个控制线程允

3、 许应用程序同时为来自多个用户的请求提供服务。在 libpthread 实现中,用户线程位于虚 拟处理器之上,而虚拟处理器本身又位于内核线程之上。本文将对进程的内核方面进行深 入研究,同时探讨有助于提高整个系统管理效率的工具。为帮助您有效管理环境,我们将 详细介绍久经试验的 UNIX 命令以及很多可供 AIX 管理员使用的新型工具。线程和线程和 SMT通过允许在不同的 CPU 上运行多个线程,还可以有效利用同步多线程 (SMT)。当系统处 于 SMT 模式下时,处理器可以从多个线程中获取指令。SMT 的概念专门用于 POWER5 体系结构,它指的是单个进程不能同时使用所有处理器执行单元。POW

4、ER5 设计可在每个芯片内核上实现双向 SMT。其结果是,每个物理处理器内核将由两个虚拟 处理器表示。SMT 在商业环境中特别有用,因为在这种环境中,单个事务的处理速度与 所执行的总事务数相比并不那么重要。借助于大型或更改频繁的工作集(例如数据库服务 器和 Web 服务器),SMT 应能够增大工作负荷的吞吐量。浮点密集型工作负荷很少能 从 SMT 中获益,因而是最可能降低性能的因素。这些工作负荷会占用大量的浮点单元或 内存带宽。每条指令的平均时钟周期数 (CPI) 和缓存未命中率都较低的工作负荷可能会从 SMT 得到少许益处。通常情况下,SMT 应能够使系统性能提高约 30%。您必须确定系 统

5、上运行的关键进程是否可从 SMT 获益。关键进程通常可以从 SMT 获益;但是,如果 您确定的情况并非如此,则需要将其关闭,因为这些进程在缺省情况下处于启用状态。计划概念计划概念我尽量不在 AIX 调度程序的内核构造方面花费太多的时间,但在介绍进程管理或调度程 序优化之前,您需要对这些知识有更好的了解。 系统上的每个 CPU 都有自己专用的运行队列,该队列是按线程优先级值排序的可运行线 程的列表。另外,还有一种运行队列,称为全局运行队列。所有新线程都被放在全局运行 队列中。每当 CPU 准备分派线程时,它都会先检查此全局运行队列,然后再检查其他运 行队列。在 CPU 上,当一个线程完成它的时间

6、切片后,它将返回原来运行它的 CPU 运行队列。这有助于 AIX 维护它的处理器关联性。(我将在后面对处理器关联性进行详细 讨论。) 您可以优化某些环境变量来提高调度程序的性能,但这已超出本文的论述范围。系统上的 CPU 由所有线程共享,其方式是向每个线程都提供一定的时间切片来运行。缺省时间切 片是 10 毫秒(一个时钟计时单元)。使用 schedo 命令可以更改这一缺省值。增加时 间切片可减少上下文切换,从而可以提高系统吞吐量。使用 vmstat 或 sar 命令可以查 看上下文切换。如果上下文切换的值非常高,则增加时间切片可提高性能,但这必须在经 过大量分析之后才能实施。 在系统模式方面,

7、CPU 有两种运行模式:内核模式和用户模式。在用户模式中,程序对 进程专用区域中的用户数据具有读写访问权限。此模式是进程积累其大多数 CPU 时间所 在的模式。另一种模式是内核模式。以内核模式运行的某些程序包括中断处理程序和内核 进程。当在某个进程的上下文中执行以此模式运行的代码时,它不仅对全局内核地址空间 具有读写访问权限,还将对该进程中的内核数据也具有读写访问权限。对于进程地址空间 中的用户数据,必须使用内核服务进行访问。当用户程序访问系统调用时,它将在内核模 式而不是用户模式下进行。您需要理解这一概念,才能尝试解释 vmstat 和 sar 等命令 的输出。处理器关联性和绑定处理器处理器

8、关联性和绑定处理器处理器关联性是操作系统提供的在 SMP 硬件上使用的工具。从本质上讲,进程中的所有 线程都可以绑定到指定的处理器上运行。AIX 会在每个 CPU 上都设置一个运行队列,以 此来自动尝试推动处理器关联性的建立,这一点我在前面已经讨论过。通过使用进程关联 性来绑定线程或取消线程的绑定,可帮助您找到难以调试的挂起或死锁的根本原因。对于 某些应用程序,如果将它们的线程始终绑定在特定的 CPU 上运行,还可能提高其运行速 度。 在典型的 SMP 系统中,所有处理器都完全相同并可以在其系统上运行任意线程。从本质 上讲,任何进程或线程都可以分派到任意处理器上运行,但绑定在特定处理器上运行的

9、处 理器或线程除外。此操作可通过 bindprocessor 命令实现。让我们看一个示例(请参 见清单 1)。清单清单 1. 使用使用 bindprocessor 命令命令# bindprocessor -qThe available processors are: 0 1 2 3在此示例中,您可以看到有四个处理器可供调用。这些可用的处理器是:0、1、2、3。 以下命令显示了绑定到 CPU 3 的处理器(请参见清单 2)。清单清单 2. 发现绑定到发现绑定到 CPU 3 的处理器的处理器# ps -emo THREAD | grep p3root 401544 389152 - A 0 60

10、1 f10001001ece2fb8 200001 pts/0 - grep p3您还可以使用 SMIT 快速路径 smit bindproc 来帮助绑定进程。另一种绑定进程的 方式是,使用 AIX 上可用的 bindprocessor API 在程序内部执行绑定。您应明白,这些 命令的功能十分强大。在将进程绑定到 CPU 时,如果该 CPU 正处于繁忙状态,而其他 CPU 却处于空闲状态,则绑定操作实际上会降低该进程的性能。PS认识您很高兴认识您很高兴让我们讨论一下通常可用于识别和处理进程的命令。 要获得一个较长的文件清单,请使用以下命令,如清单 3 所示。清单清单 3. 获取较长的文件清单

11、获取较长的文件清单# ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 Jan 08 - 0:05 /etc/init root 82126 204974 0 Jan 08 - 0:00 /usr/sbin/snmpmibd root 86210 106640 0 Jan 08 - 0:00 /usr/dt/bin/dtcm root 90172 123038 0 Jan 08 - 0:35 /usr/lpp/X11/bin/X -D /usr/lib/X11/rgb -T -force :0 -auth /var/dt/A:0-DjUjUa

12、root 98390 1 0 Jan 08 - 8:36 /usr/sbin/syncd 60 root 106640 131160 0 Jan 08 - 0:25 /usr/dt/bin/dtsession要进一步识别由 CPU 占用者分解的进程,请参见清单 4。清单清单 4. 识别进程识别进程# ps aux | moreUSER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMANDroot 8196 12.9 0.0 384 384 - A Jan 08 14695:30 waitroot 57372 12.8 0.0 384 384 - A

13、Jan 08 14542:51 waitroot 61470 12.2 0.0 384 384 - A Jan 08 13884:38 waitroot 53274 12.0 0.0 384 384 - A Jan 08 13711:38 waitroot 245938 0.0 0.0 828 856 - A Jan 08 20:17 /usr/bin/xmwlm -root 98390 0.0 0.0 508 516 - A Jan 08 8:36 /usr/sbin/syncd root 69666 0.0 0.0 960 960 - A Jan 08 3:46 gilroot 0 0.0

14、 0.0 384 384 - A Jan 08 2:49 swapperroot 49176 0.0 0.0 448 448 - A Jan 08 1:13 xmgcroot 241842 0.0 0.0 23如果要了解有关进程的优先值的更多信息,则需要使用 -l 标志。“NI”列显示了优先值 (请参见清单 5)。清单清单 5. 使用使用 -l 标志获取优先值标志获取优先值# ps -elfF S UID PID PPID C PRI NINI ADDR SZ WCHAN STIME TTY TIME CMD200003 A root 1 0 0 6060 20 14001400 660 Ja

15、n 08 - 0:05 /etc/init 240001 A root 82126 204974 0 6060 20 3c22b510 1264 Jan 08 - 0:00 /usr/sbin/snmpmibd 240801 A root 86210 106640 0 6060 20 584d2400 2156 Jan 08 - 0:00 /usr/dt/bin/dtcm 240001 A root 90172 123038 0 6060 20 5136 f1000100224650e0 5136 Jan 08 - 0:35 /usr/lpp/X11/bin/X -D /usr/lib/X11/rgb -T -force :0 -auth /var/dt/A:0-DjUjUa 240001 A root 98390 1 0 6060 20 41a5400 508 * J

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号