第一范文网 - 专业文章范例文档资料分享平台

AIX 5L 性能优化-重点介绍中央处理器(CPU) 性能和监视的各个方面

来源:用户分享 时间:2025/5/28 6:11:12 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

threads metrics 即可(请参见图 2)。

图 2. Procmon processes 选项卡

其他的一些菜单允许您 kill 进程(终止进程)或者 renice 它们(重新调整进程的优先级),请参见图 3。

图 3. renice 命令对话框

那么,nice 究竟是什么呢?您可以使用 nice 命令调整给定进程的优先级。所有进程的缺省值都为 20。使用 renice 命令(通过 Procmon 或者命令行)可以使得系统为给定的进程分配一个更高的或者更低的优先级。在进行该操作时,您实际上通过更改进程的 nice 值,从而更改了线程优先级的值(缺省值为 40)。

如果您在运行 ps 命令时使用了 -l 标志,那么您将看到具体的 nice 信息(请参见清单 1)。

清单 1. nice 信息 # ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 200001 A 0 12972 45770 0 60 20 dea6 764 pts/1 0:00 ksh 200001 A 0 33816 12972 3 61 20 36168 440 pts/1 0:00 ps 240001 A 207 45770 40374 0 60 20 258ec 744 pts/1 0:00 ksh

让我们通过 nice 启动一个新的 ksh,更改进程的优先级:# nice --10 ksh(请参见清单 2)。 当您再次使用 ps 查看进程表时,您将看到,对于这个进程以及它通过 fork 系统调用创建的子进程,它们的优先级都不再是缺省值。

清单 2. 使用 nice 命令得到的新的 ksh # ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 200001 A 0 12972 45770 0 60 20 dea6 764 pts/1 0:00 ksh 200001 A 0 17246 12972 0 50 10 68a1f 748 pts/1 0:00 ksh 200001 A 0 18450 17246 1 50 10 51bb1 380 pts/1 0:00 ps 240001 A 207 45770 40374 0 60 20 258ec 744 pts/1 0:00 ksh

您还可以使用 renice 命令(前面在介绍 Procmon 的图 3 中对该命令进行了说明),以便动态地为一个运行的进程重新分配优先级。

让我们回到 ps。如果您希望更详细地查看相关的线程,那么您可以使用 -mo 标志(请参见清单 3)。

清单 3. 使用 -mo 标志以便更详细地查看您的线程

# ps -mo THREAD USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMAND root 12800 45770 - A 0 60 1 - 200001 pts/1 - -ksh - - - 56759 S 0 60 1 - 10400 - - - root 44648 12800 - A 1 60 1 - 200001 pts/1 - ps -mo THREAD - - - 64905 R 1 60 1 - 0 - - - kmilberg 45770 40374 - A 0 60 1 - 240001 pts/1 - -ksh - - - 54005 S 0 60 1 - 10400 - - -

尽管大多数管理员通常仅在进行 ps -ef 操作时使用 ps,但是如果您更仔细地研究它的特

性,那么您将会了解到更多关于 ps 的内容。

更改线程的优先级

您已经了解了如何更改进程的优先级,那么对于线程又该如何操作呢?这部分内容介绍了如何更改用于计算每个线程优先级值的 CPU 调度参数。您可以使用 schedo(在 AIX Version 5.2 及更早的版本中是 schedune)来完成这项工作。 首先,您需要确保拥有下面的文件集(请参见 清单 4)。

清单 4. 检查文件集 # lslpp -lI bos.perf.tune Fileset Level State Description ---------------------------------------------------------------------------- Path: /usr/lib/objrepos bos.perf.tune 5.2.0.10 COMMITTED Performance Tuning Support Path: /etc/objrepos bos.perf.tune 5.2.0.10 COMMITTED Performance Tuning Support

现在,让我们报告所有的 CPU 参数,如清单 5 所示。

清单 5. 报告所有的 CPU 参数

# schedo -a

%usDelta = 100 affinity_lim = 7 big_tick_size = 1 fixed_pri_global = 0 force_grq = 0 idle_migration_barrier = 4

maxspin = 16384 pacefork = 10 sched_D = 16 sched_R = 16 timeslice = 1 v_exempt_secs = 2 v_min_process = 2 v_repage_hi = 0 v_repage_proc = 4 v_sec_wait = 1

首先从 fixed_pri_global 开始进行分析。它的缺省设置为 0。当 CPU 准备分派线程时,它会先检查全局运行队列,然后再检查其他队列。当线程在 CPU 上的时间片结束之后,它将被重新放回到这个队列中。这可以帮助维护处理器的关联性(稍后我将介绍这部分内容)。要提高整体的线程性能,您可以将名为 RT_GRQ 的环境变量设置为 ON。这样一来,就会

自动地将线程放入到全局运行队列中。如果您将缺省值从 0 更改为 1,那么所有固定优先级的线程都将放入到这个运行队列中。您可以执行下面的命令将缺省值从 0 更改为 1: #schedo -o fix_pri_global=1。 让我们再来讨论一下线程。用户进程的实际优先级会随着时间发生变化,这取决于该进程最近所使用的 CPU 时间。您需要查看的参数包括 sched_R 和 sched_D。这两个参数值的单位都是 1/32 秒,并且它们的缺省值都为 16。而且,对于刚创建的线程,其 CPU 值为 0。随着线程在 CPU 上执行时间的增加,其 CPU 使用时间将会递增。实际上,调度程序使用下面的公式来计算 CPU 使用时间: CPU usage = CPU usage*(D/32)。

在这个示例中,如果 D 参数设置为 32,那么线程的 CPU 使用时间将不会衰减,而该参数的缺省值为 16,这样就允许 CPU 使用时间随着时间的推移而衰减,从而使其获得更多的在 CPU 上执行的时间。

每个 CPU 都有一个专门的运行队列。运行队列是由运行线程所组成的列表,按照线程优先级的值进行排序。一共有 256 种线程优先级(从 0 到 255)。还有一个附加的全局运行队列,其中放的是新的线程。

Schedo 通常用于更改调度程序时间片的长度。要更改时间片,可以使用 schedo -o timeslice=value 选项。增加时间片的长度可以提高系统吞吐量,因为减少了上下文的切换。在进行这种更改之前,请确保反复地运行 vmstat 以确定系统中确实正在进行大量的上下文切换工作。

CPU 绑定

在这部分内容中,我将介绍有关 CPU 绑定的主题,即允许进程在特定的处理器上运行。这个术语本身可称为处理器关联。处理器关联有许多用途,其中一些甚至可以在调试的过程中使用。例如,您可以将线程绑定到给定的处理器,以找出导致某个挂起程序的根源。通常,在尝试将程序分散到多处理机系统(例如 SMP 系统)中时,会使用到处理器关联。您所使用的命令是 bindprocessor 命令。假定启用了同步多线程 (SMT),这是缺省的行为,那么在运行 bindprocessor 命令时,会将物理处理器的每个硬件线程作为单独的处理器列举出来。在 POWER5 芯片中,每个处理器中有两个硬件线程。对于共享的处理器逻辑分区 (LPAR),使用这个命令可以绑定到虚拟 CPU,所以您必须非常小心,因为它可能会导致预先安排运行于特定 CPU 的应用程序出现问题。让我们首先检查一下是否启用了 SMT(请参见 清单 6)。 清单 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

AIX 5L 性能优化-重点介绍中央处理器(CPU) 性能和监视的各个方面.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2i7zv0gt563y3j84w1j8_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top