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

上传人:飞*** 文档编号:4824480 上传时间:2017-08-26 格式: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 体系结构,它指的是单个进程不能同时使用所有处理器执行单元。POWER5 设计可在每个芯片内核上实现双向 SMT

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

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

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

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

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

9、ssor 命令# 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 1 f10001001ece2fb8 200001 pts/0 - grep p3您还可以使用 SMIT 快速路径 smit bindproc 来帮助绑定进程。另一种绑定进程的方式

10、是,使用 AIX 上可用的 bindprocessor API 在程序内部执行绑定。您应明白,这些命令的功能十分强大。在将进程绑定到 CPU 时,如果该 CPU 正处于繁忙状态,而其他 CPU 却处于空闲状态,则绑定操作实际上会降低该进程的性能。PS认识您很高兴让我们讨论一下通常可用于识别和处理进程的命令。要获得一个较长的文件清单,请使用以下命令,如 清单 3 所示。清单 3. 获取较长的文件清单# ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 Jan 08 - 0:05 /etc/init root 82126 204974 0 Jan

11、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 root 98390 1 0 Jan 08 - 8:36 /usr/sbin/syncd 60 root 106640 131160 0 Jan 08 - 0:25 /usr/dt/bin/dtsession要进一步识

12、别由 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 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 137

13、11: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 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如果要了解有关进程

14、的优先值的更多信息,则需要使用 -l 标志。“NI”列显示了优先值(请参见 清单 5)。清单 5. 使用 -l 标志获取优先值# ps -elfF S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD200003 A root 1 0 0 60 20 14001400 660 Jan 08 - 0:05 /etc/init 240001 A root 82126 204974 0 60 20 3c22b510 1264 Jan 08 - 0:00 /usr/sbin/snmpmibd 240801 A root 86210 10664

15、0 0 60 20 584d2400 2156 Jan 08 - 0:00 /usr/dt/bin/dtcm 240001 A root 90172 123038 0 60 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 60 20 41a5400 508 * Jan 08 - 8:36 /usr/sbin/syncd 60 240001 A root 106640 131160 0 60 20 3816a400 1880 Jan 08 - 0:25 /usr/dt/bin/dtsessi

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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