AIX 5L CPU性能优化(3)
http://tech.ddvip.com 2007年08月27日 社区交流
内容摘要:本系列文章的第 3 部分重点关注中央处理单元 (CPU) 性能优化中鲜为人知的方面:控制线程使用和 CPU 绑定。本文介绍了一些关键的工具和实用程序,您可以使用它们来分析线程和管理进程。
更改线程的优先级
您已经了解了如何更改进程的优先级,那么对于线程又该如何操作呢?这部分内容介绍了如何更改用于计算每个线程优先级值的 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。
来源:ibm 作者:Ken Milberg 责编:豆豆技术应用