管理 CPU 调度程序的可调参数。
schedo [ -p | -r ] { -o Tunable[=Newvalue]}
schedo [ -p | -r ] { -d Tunable }
schedo -h [ Tunable ]
schedo -L [Tunable ]
schedo -x [Tunable ]
schedo -?
使用 schedo 命令来配置调度程序的微调参数。此命令设置或显示所有调度程序的微调参数的当前值或下一个引导值。此命令也可以示参数永久更改,或将更改推迟到下一个重新引导之后生效。此命令是设置参数还是显示参数是由所带标志确定的。-o 标志执行这两个操作。它既可以显示参数的值,也可以为参数设置新值。
大多数用户进程的优先级随进程最近使用的 CPU 时间的数量而改变。CPU 调度程序的优先级计算是基于 schedo 所设置的两个参数,即 sched_R 和 sched_D。sched_R 和 sched_D 的值以 30 秒(1/32)为单位;即,调度程序使用下式计算作为对最近 CPU 使用的损失而加入到进程优先级值中的数量:
CPU 处罚 =(进程最近使用的 CPU 值)*(r/32)
而对每个进程最近使用的 CPU 值进行每秒一次重新计算的公式是:
新的最近使用的 CPU 值 =(进程最近使用的旧的 CPU 值)*(d/32)
r(sched_R 参数)和 d(sched_D 参数)的缺省值都是 16。这样将保持操作系统以前版本的 CPU 调度行为。在尝试这些值之前,应该熟悉《性能管理指南》中『调节 CPU 调度程序』。
当内存过量使用时,操作系统调度程序通过暂挂进程来进行内存装入控制。系统并不将进程换出;而是偷页,因为需要它们来实现当前内存要求。通常,从暂挂进程偷页。当满足下列条件时,认为内存使用过量:
p * h s | 其中:
p 是最后一秒写入调页空间的页数 h 是由 v_repage_hi 参数指定的一个整数 s 是最后一秒发生的偷页数 |
当内存使用过度,且满足下列条件时,将暂挂进程:
r * p f | 其中:
r 是最后一秒进程累积的重新调页数 p 是由 v_repage_proc 参数指定的一个整数 f 是最后一秒进程所经历的缺页故障数 |
此外,免除固定优先级进程和内核进程的暂挂。
术语重新调页是指属于某个进程的页由该进程管理后不久就重新引用页数。
用户还可以用 v_min_process 参数来指定最低的多道程序设计级别。这样做可以在整个进程暂挂期间确保有最少的进程数正在运行。活动的进程是那些可以运行、正在等待页 I/O 的进程。正在等待事件的进程和暂挂的进程不认为是活动的,等待进程也不能认为是活动的。
当系统处于过量使用阈值以下 n 秒时,暂挂的进程可以被加回到组合中,其中 n 由 v_sec_wait 参数指定。首先根据进程的优先级,其次根据进程暂挂时间的长短来将进程加回到系统中。
在尝试这些值之前,应当完全熟悉《性能管理指南》中的『调节 VMM 内存装入控制』。
schedtune 命令也可以用来改变操作系统在调用分派器选择运行另一个进程运行之前允许某个给定进程运行的时间量(时间片)。这个时间间隔的缺省值是一个时钟周期(10 毫秒)。时间片微调参数允许用户指定时间片长度要增加的钟信号量。
在 AIX V4 中,此参数仅适用于使用 SCHED_RR 调度策略的线程。请参阅《线程调度策略》。
如果因为没有足够的调页空间用于创建新的进程而使 fork() 子例程调用失败,则系统将在等待一段指定的时间后重试该调用。时间间隔由步速子进程微调参数来设置。
注:误用此命令可能引起性能降低或操作系统故障。在使用 schedo 更改系统参数前,确保您已经学习了《AIX 5L V5.2 性能管理指南》中相应的调节章节。
-h [Tunable] | 如果指定了一个 Tunable 参数,则显示有关该参数的帮助。否则,显示 schedo 命令用法语句。 |
-a | 显示所有可调参数的当前值、重新引导值(当与 -r 一起使用时)或永久值(当与 -p一起使用时),每行一对 Tunable = Value。对于永久选项,如果参数的重新引导和当前值相等,则对于一个参数只显示一个值。否则,该值显示为 NONE。 |
-d Tunable | 将 Tunable 重新设置为缺省值。如果可调参数值(即,它当前的值不是缺省值)需要更改,但在该组合中没有使用 -r,则不对它做更改,而是显示一个警告。 |
-D | 将所有的可调参数重新设置为缺省值。如果需要更改的可调参数为 Bosboot 或“重新引导”类型或“增量”类型,并是从其缺省值更改的,而且组合中没有使用 -r,则不做更改,而是显示一个警告。 |
-o Tunable [=Newvalue] | 显示值或将 Tunable 设置为 Newvalue。如果需要更改一个可调参数(所指定的值与当前值不同),而且它是 Bosboot 或 Reboot 类型,或者是 Incremental 类型,并且当前值比指定值要大,在组合中没有使用 -r,则不做更改,而是显示一个警告。
当在组合中使用 -r 却没有指定新值时,显示可调参数的下一个引导值。当在组合中使用 -p 却没有指定新值时,仅当可调参数的当前值和下一个引导值相同时才显示值。否则,该值显示为 NONE。 |
-p | 当与 -o, -d 或 -D 组合使用时,将所做的更改应用到当前值和重新引导值中,即打开更新 /etc/tunables/nextboot 文件并更新当前值。这些组合无法用在 Reboot 和 Bosboot 类型参数上,因为它们的当前值不能更改。
当与 -a 或 -o 一起使用而没有指定新值时,仅当参数的当前值与下一个引导值相同的情况下才会显示该值。 否则,该值显示为 NONE。 |
-r | 在与 -o、-d 或 -D 组合使用时,将更改应用到重新引导值上,即打开更新 /etc/tunables/nextboot 文件。如果对任何 Bosboot 类型的参数做了更改,则提示用户运行 bosboot。
当与 -a 或 -o 一起使用而没有指定新值时,显示可调参数的下一个引导值而不是当前值。 |
-L [ Tunable ] | 列出一个或所有可调参数的特征,每个一行,使用以下格式:
NAME CUR DEF BOOT MIN MAX UNIT TYPE DEPENDENCIES -------------------------------------------------------------------------------- v_repage_hi 0 0 0 0 2047M D -------------------------------------------------------------------------------- v_repage_proc 4 4 4 0 2047M D -------------------------------------------------------------------------------- v_sec_wait 1 1 1 0 2047M 秒 D -------------------------------------------------------------------------------- ... 其中: CUR = 当前值 DEF = 缺省值 BOOT = 重新引导值 MIN = 最小值 MAX = 最大值 UNIT = 可调计量单位 TYPE = 参数类型: D (动态)、S (静态)、 R(重新引导)、 B(Bosboot)、M(安装)、I(增量)和 C(连接) DEPENDENCIES = 从属可调参数列表,每行一个 |
-x [Tunable] | 列出一个或所有可调参数的特征,每行一个,使用以下(电子表格)格式:
tunable,current,default,reboot,min,max,unit,type,{dtunable } 其中: current = 当前值 default = 缺省值 reboot = 重新引导值 min = 最小值 max = 最大值 unit = 可调计量单位 type = 参数类型:D(动态)、S(静态)、R(重新引导)、 B(Bosboot)、M(安装)、I(增量)和 C(连接) dtunable = 用空格分开的从属可调参数列表 |
-? | 显示 schedo 命令用法语句。 |
对 Mount(安装)类型参数的任何更改(使用 -o、-d 或 -D)将显示一条消息,警告用户该更改仅对以后的安装有效。
对 Connect(连接)类型参数的任何更改(使用 -o、-d 或 -D 标志)都会导致重新引导 inetd,并显示一条消息,警告用户该更改仅对以后套接字连接有效。
在不使用-r的情况下,任何试图对 Bosboot 或 Reboot 类参数的更改(使用-o、-d 或 -D)都会导致一个错误消息。
在不使用-r 的情况下,任何试图用比 Incremental(增量)类型参数当前值小的新值来更改它的值(使用 -o、 -d 或 -D)都会导致一个错误消息。
由调整命令(no、nfso、vmo、ioo 和 schedo)操作的所有可调参数分成这些类别:
动态 | 如果能在任何时间更改参数 |
静态 | 如果参数从来不能更改 |
重新引导 | 如果只能在重新引导期间更改参数 |
Bosboot | 如果只能通过运行 bosboot 和重新引导机器来更改参数 |
安装 | 如果对参数的更改仅对以后的文件系统或目录安装有效。 |
增量 | 如果除了引导时间只能增量参数 |
连接 | 如果对参数的更改仅对以后的套接字连接有效 |
对于 Bosboot 类型的参数,无论何时进行更改,调整命令都会自动提示用户,询问他们是否想要执行 bosboot 命令。对于 Connect 类型的参数,调整命令自动重新启动 inetd 守护进程。
请注意,受管于 schedo 命令的当前参数集仅包括 Dynamic 和 Reboot 类型。
当在 5.2 版本以前的兼容性方式(由 sys0 的 pre520tune 属性控制,请参阅《AIX 5L V5.2 性能管理指南》中的『调整 AIX 5.2 的增强功能』)下运行时,除了那些 Bosboot 类型参数外,参数的重新引导值都没有实际意义,因为在此方式下它们没有应用在引导期间。
在 5.2 版本以前的兼容性方式下,仍然可以通过将微调命令调用嵌入引导序列期间所调用的脚本中来设置微调参数的重新引导值。因此,不用 -r 标志,也可以设置 Reboot 类型的参数,这样现有的脚本可以继续工作。
当机器迁移到 AIX 5L V5.2 时,此模式自动“打开”。对于完全安装,它是“关闭”的,而参数的重新引导值是通过在重新引导序列期间应用 /etc/tunables/nextboot 文件的内容来设置的。只有在该模式下,-r 和 -p 标志才可以完全起作用。请参阅 AIX 5L Version 5.2 Performance Tools Guide and Reference 中的Kernel Tuning 以获取更多信息。
affinity_lim |
|
big_tick_size |
|
force_grq |
|
idle_migration_barrier |
|
fixed_pri_global |
|
maxspin |
|
pacefork |
|
sched_D |
|
sched_R |
|
timeslice |
|
%usDelta |
|
v_exempt_secs |
|
v_min_process |
|
v_repage_hi |
|
v_repage_proc |
|
v_sec_wait |
|
schedo -L
schedo -x
schedo -d v_sec_wait
schedo -h sched_R
schedo -r -o v_min_process=4
schedo -p -D
schedo -r -a
vmo 命令、ioo 命令、no 命令、nfso 命令、tunchange 命令、tunsave 命令、tunrestore 命令、tuncheck 命令和 tundefault 命令。
AIX 5L Version 5.2 Performance Tools Guide and Reference 中的 Kernel Tuning
《AIX 5L V5.2 性能管理指南》中的『调整 AIX 5.2 的增强功能』。