schedo 命令
用途
管理处理器的调度程序调整参数。
语法
schedo[-p|-r][-y] {-o Tunable[= Newvalue]}
schedo[-p|-r][-y] {-d Tunable}
schedo -h[Tunable]
描述
使用 schedo 命令来配置调度程序的微调参数。 此命令设置或显示所有调度程序的微调参数的当前值或下一个引导值。 还可以用此命令进行永久性更改,或将更改推迟到下一次重新引导之后生效。 此命令是设置参数还是显示参数,要由所带标志来决定。 -o 标志执行这两个操作。 它或者显示参数的值或者为参数设置一个新值。
- 了解更改可调参数的效果
误用此命令会导致性能下降或操作系统故障。 在使用schedo命令更改系统参数之前,请确保已学习过性能管理中的相应调整章节。
在修改任何可调参数之前,您必须首先仔细阅读下面可调参数部分中有关其所有特性的内容,并按照任何参考指针进行操作,以便充分了解其用途。
然后必须确保此参数的“诊断”部分和“调整”部分真的适用于您的情况,且更改此参数的值可以有助于提高系统性能。
如果 "诊断 "和 "调整 "部分都只包含 "不适用",除非AIX®开发人员特别指示,否则绝对不能更改此参数。
- 优先级计算参数
- 大多数用户进程的优先级随进程最近使用的处理器时间量而不同。 处理器调度程序的优先级计算基于 schedo、sched_R 和 sched_D 所设置的两个参数。 。sched_R 和 sched_D 的值以 30 秒(1/32)为单位;即,调度程序使用下式计算作为对最近处理器使用的损失而加入到进程优先级值中的数量:
CPU penalty = (recently used CPU value of the process) * (r/32)而对每个进程最近使用的处理器值进行每秒一次重新计算的公式是:new recently used CPU value = (old recently used CPU value of the process) * (d/32)r(sched_R 参数)和 d(sched_D 参数)的缺省值都是 16。 这将保持操作系统以前版本的处理器调度行为。 在尝试这些值之前,您必须熟悉《性能管理指南》中的『调整处理器调度程序』。
- Memory-load-control 参数
- 当内存过量使用时,操作系统调度程序通过暂挂进程来进行内存装入控制。 系统并不将进程换出;而是偷页,因为需要它们来实现当前内存要求。 通常,从暂挂进程偷页。 当满足下列条件时,认为内存使用过量:
项 描述 p * 小时 其中: p是上一秒写入分页空间的页数
h是由 v_repage_hi 参数指定的整数
s是上一秒发生的页面窃取次数当内存使用过度,且满足下列条件时,将暂挂进程:项 描述 r * p f 其中: r r 是进程在最后一秒累积的重新页数
p 是由 v_repage_proc 参数
f 指定的整数,是该进程在最后一秒经历的缺页故障数此外,免除固定优先级进程和内核进程的暂挂。
术语重新调页是指属于某个进程的页由该进程管理后不久就重新引用页数。
用户还可以使用 "v_min_process参数指定最低多重编程级别。 这样做可以在整个进程暂挂期间确保有最少的进程数正在运行。 活动进程是可运行且正在等待页面 I/O 的进程。 正在等待事件的进程和已暂挂的进程不会被视为处于活动状态,等待进程也不会被视为处于活动状态。
当系统在 n 秒内保持低于过度落实阈值时,可以将暂挂的进程重新添加到混合中,其中 n 由 v_sec_wait 参数指定。 首先根据进程的优先级,其次根据进程暂挂时间的长短来将进程加回到系统中。
在尝试这些值之前,您应该非常熟悉《性能管理指南》中的『通过 schedo 命令调整 VMM 内存装入控制』。
- 时间片增量参数
schedo 命令也可以用来改变在调用分派器以选择运行另一个进程运行之前,操作系统允许某个给定进程运行的时间量(时间片)。 这个时间间隔的缺省值为一个时钟周期(10 毫秒)。 时间片微调参数允许用户指定时间片长度要增加的钟信号量。
在 AIX V 4中,此参数仅适用于具有 SCHED_RR 调度策略的线程。 请参阅《线程调度策略》。
- fork () 重试时间间隔参数
如果因为没有足够的调页空间用于创建新的进程而使 fork() 子例程调用失败,那么系统将在等待一段指定的时间后重试该调用。 时间间隔由步速子进程微调参数来设置。
- 对称多线程的特殊术语
支持多个运行队列。 在此方式下,每个处理器都具有自己的运行队列。 POWER5 处理器支持对称多线程,其中每个物理处理器都有两个执行引擎,称为硬件线程。 每个硬件线程本质上等价于单个处理器。 缺省情况下启用对称多线程,但是也可以动态地禁用(或者重新启用)对称多线程。 如果启用了对称多线程,那么每个硬件线程为单独的运行队列服务。 例如,在一个 4 路系统上,如果对称多线程被禁用或者当前无法使用,那么除全局运行队列之外还有 4 个运行队列。 如果启动了对称多线程,那么除全局运行队列之外还有 8 个运行队列。
属于同一个物理处理器的硬件线程称为兄弟线程。 主兄弟线程是指物理处理器的第一个硬件线程。 辅助同代线程是指物理处理器的第二个硬件线程。
- 虚拟处理器管理
- 可以定义比处理分区中工作所需的虚拟处理器更多的虚拟处理器。 可以不在降低整体处理器使用率或导致缺少虚拟处理器的情况下通过使用较少的虚拟处理器来减少分派虚拟处理器的开销。 虚拟处理器并不是动态地从分区中除去的,而是不再使用,只在提供了更多工作时才再次可用。 每个虚拟处理器最多使用一个物理处理器。 所需的虚拟处理器数是通过对物理处理器使用情况与可调整的 vpm_xvcpus 的和进行上舍入来确定的:
其中 number 是所需的虚拟处理器数,p_util 是物理处理器使用情况,而 vpm_xvcpus 是可调节的(它指定要启用的更多虚拟处理器数)。 如果 number 小于当前已启用的虚拟处理器数,那么将禁用某个虚拟处理器。 如果 number 大于当前已启用的虚拟处理器数,将启用已禁用的虚拟处理器。 连接到已禁用的虚拟处理器的线程仍然可以在已禁用的虚拟处理器上运行。number = ceiling( p_util + vpm_xvcpus) - 节点装入
节点装入,或者简称装入,是指所有运行队列(包括全局运行队列)的平均运行队列深度乘以 256,随着时间将大幅度地变得平滑。 例如,装入为 256 意味着,如果我们有 16 个处理器(包括对称多线程处理器),那么在过去几毫秒内,在系统中大约有 16 个可运行作业。
Power10的 VPM 吞吐量模式更改
VPM 吞吐量模式更改
当 Power10 系统以共享处理器方式运行时,虚拟处理器管理 (VPM) 的吞吐量方式的缺省值为 2。 当您将系统迁移到 Power10 系统或从 系统迁移到 AIX 之后, 操作系统会自动更改 VPM 吞吐量模式的默认值。 在引导操作期间, AIX 操作系统根据运行 LPAR 的服务器类型选择 schedo 命令的 vpm_throughput_mode 可调参数的缺省值。 AIX 操作系统选择的 vpm_throughput_mode 可调参数的值将保留并在目标服务器上使用。 在 Power10 系统上,可以使用以下命令切换到 vpm_throughput_mode 可调参数的建议值 2:
schedo -d vpm_throughput_mode注: 在迁移到 Power10 系统或从其迁移到更高版本时,建议将操作系统级别移至 7300-00 , 7200-05-03-2147 , 7200-04-05-2148 , 7100-05-09-2148 或更高版本。 如果没有此功能使您能够使用 schedo 命令来更改 vpm_throughput_mode 可调参数,那么将操作系统级别更新为 7200-05-00-2037 , 7200-04-03-2038 和 7100-05-07-2037 可能会覆盖为 vpm_throughput_mode 可调参数设置的值。
标志
| 项 | 描述 |
|---|---|
| -a | 显示所有可调参数的当前值、重新引导值(当与 -r 一起使用时)或永久值(当与 -p一起使用时),每行一对 Tunable = Value。 对于永久选项,如果参数的重新引导和当前值相等,那么对于一个参数只显示一个值。 否则,该值显示为 NONE。 |
| -d 无法 | 将 Tunable 重新设置为缺省值。 如果可调参数值(即,它当前的值不是缺省值)需要更改,但在该组合中未使用 -r,那么不对它做更改,而是显示一个警告。 |
| -D | 将所有的可调参数重新设置为缺省值。 如果需要更改的可调参数为 Bosboot 或“重新引导”类型或“增量”类型,并是从其缺省值更改的,而且组合中未使用 -r,那么不做更改,而是显示一个警告。 |
| -f | 当您在命令行指定 -a、-L 或 -x 选项时,强制显示受限可调参数,以列出所有可调参数。 如果您没有指定 -F 标志,那么不包含受限可调参数,除非它们特别命名为与显示选项关联。 |
| -h [无法] | 如果指定了一个可调参数,那么显示关于 Tunable 参数的帮助。 否则,显示 schedo 命令用法说明。 |
| - L [ 可调谐 ] | 列出一个或所有可调参数的特征,每个一行,使用以下格式: |
| -o 无法 [=Newvalue] | 显示值或将 Tunable 设置为 Newvalue。 如果需要更改一个可调参数(所指定的值与当前值不同),而且它是 Bosboot 或 Reboot 类型,或者是 Incremental 类型,并且当前值比指定值要大,在组合中未使用 -r,那么不做更改,而是显示一个警告。 当在组合中使用 -r 却没有指定新值时,显示可调参数的下一个引导值。 当在组合中使用 -p 却没有指定新值时,仅当可调参数的当前值和下一个引导值相同时才显示值。 否则,该值显示为 |
| -p | 当与 -o, -d 或 -D 组合使用时,将所做的更改应用到当前值和重新引导值中,即打开更新 /etc/tunables/nextboot 文件并更新当前值。 这些组合无法用在 Reboot 和 Bosboot 类型参数上,因为它们的当前值不能更改。 当与 -a 或 -o 组合使用而没有指定新值时,那么只有在一个参数的当前值与下一个引导值相同时才会显示参数值。 否则,该值显示为 |
| -r | 在与 -o、-d 或 -D 组合使用时,将更改应用到重新引导值上,即打开更新 /etc/tunables/nextboot 文件。 如果对任何 Bosboot 类型的参数做了更改,那么提示用户运行 bosboot。 当与 -a 或 -o 一起使用而没有指定新值时,显示可调参数的下一个引导值而不是当前值。 |
| -x [无法] | 列出一个或所有可调参数的特征,每个一行,使用以下(电子表格)格式: |
| -y | 在执行 bosboot 命令之前,禁止显示确认提示。 |
如果您对一个受限可调参数做了任何更改(用 -o、-d 或 -D 选项),将会有消息提示受限使用类型的可调参数已被修改。 如果您还在命令行指定了 -r 或 -p 选项,您将被提示确认更改。 另外,在系统重新引导时, /etc/tunables/nextboot 文件中显示的被修改为与缺省值不同的受限可调参数(使用命令行指定 -r 或 -p 选项修改)将导致一个错误日志条目,显示这些被修改的可调参数的列表。
| 缩写 | 2 的乘幂 |
|---|---|
| K | 1024 |
| M | 1 048 576 |
| G | 1 073 741 824 |
| 云 | 1 099 511 627 776 |
| 步 | 1 125 899 906 842 624 |
| :NONE. | 1 152 921 504 606 846 976 |
对 Mount(安装)类型参数的任何更改(使用 -o、-d 或 -D)将显示一条消息,警告您该更改仅对以后的安装有效。
对 Connect(连接)类型参数的任何更改(使用 -o、-d 或 -D 标志)都会导致重新引导 inetd,并显示一条消息,警告用户该更改仅对以后套接字连接有效。
在不使用 -r 的情况下,任何试图对 Bosboot 或 Reboot 类参数的更改(使用-o、-d 或 -D)都会导致一个错误消息。
在不使用 -r 的情况下,任何试图用比 Incremental(增量)类型参数当前值小的新值来更改它的值(使用 -o、 -d 或 -D)都会导致一个错误消息。
可调参数类型
| 项 | 描述 |
|---|---|
| 动态 | 如果该参数可在任何时间更改 |
| 静态 | 如果该参数决不可更改 |
| 重新引导 | 如果该参数仅可在重新引导期间更改 |
| Bosboot | 如果该参数仅可通过运行 bosboot 并重新引导机器来更改 |
| 安装 | 如果参数的更改仅对将来文件系统或目录安装有效 |
| 增量 | 如果该参数仅可增量(除了引导时间之外) |
| 连接(C) | 如果参数的更改仅对将来的套接字连接有效 |
| 不推荐 | 如果当前发行版的 AIX不再支持更改此参数。 |
请注意,受管于 schedo 命令的当前参数集仅包括 Dynamic 和 Reboot 类型。
兼容性方式
在 5.2 之前的兼容性方式下运行 (由 sys0 的 pre520tune 属性控制,请参阅 Performance management中的 AIX 5.2 兼容性方式 ) 时,参数的重新引导值 (类型为 Bosboot 的参数除外) 没有真正意义,因为在此方式下,不会在引导时应用这些参数。
在 5.2 版本以前的兼容性方式下,仍然可以通过将微调命令调用嵌入引导序列期间所调用的脚本中来设置微调参数的重新引导值。 因此,不用 -r 标志,也可以设置 Reboot 类型的参数,这样现有的脚本可以继续工作。
当机器迁移到 AIX 5.2时,将自动开启此方式。 对于完全安装,它是“关闭”的,而参数的重新引导值是通过在重新引导序列期间应用 /etc/tunables/nextboot 文件的内容来设置的。 只有在该方式下,-r 和 -p 标志才可以完全起作用。 有关更多信息,请参阅 Performance Tools Guide and Reference 中的 内核调整 。
可调参数
| 项 | 描述 |
|---|---|
| 亲缘关系 (affinity_lim) |
|
| 大步长 |
|
| ded_cpu_捐赠阈值 |
|
| 全球固定优先权 |
|
| 强制 (force_grq) |
|
| 最大旋转 |
|
| pacefork |
|
| 磁盘统计程序 |
|
| 调度_D |
|
| 调度_R |
|
| tb_balance_S0 |
|
| tb_balance_S1 |
|
| 阈值 |
|
| 时间片 |
|
| vpm_折叠策略 |
启用处理器折叠功能后,可以使用 vpm_vxcpus 可调参数来控制处理器折叠功能。 在 vpm_fold_policy 中,共有 3 个用于控制处理器折叠功能的位:
可以对位 0、位 1 和位 2 的值执行 OR 运算以构造期望的值。 注: 如果在 "高级系统管理界面" (ASMI) 中将 空闲省电 选项设置为 已启用 ,并且如果处理器利用率低于指定的阈值,那么可以将处理器设置为低频率或低电压状态。 您还可以在运行时将 vpm_fold_policy 可调参数设置为 0x3。
|
| vpm_quickput_core_threshold | 指定在采用 vpm_throughput_mode 参数之前必须展开的核心数目。 达到阈值之后,系统行为和 vpm_throughput_mode 参数值设为 1 一样。 |
| vpm_quickput_mode | 为缩放吞吐量方式指定需要的 SMT 利用级别。 值 0 指示缺省行为(原始吞吐量方式)。 值 1、2 或 4 选择缩放吞吐量方式及需要的 SMT 利用级别。
|
| vpm_xvcpus |
|
示例
- 要列出由 schedo 命令管理的全部可调参数的当前和重新引导的值、范围、单位、类型以及相关性,请输入:
schedo -L - 要列出(电子表格格式)由 schedo 命令管理的全部可调参数的当前和重新引导的值、范围、单元、类型以及相关性,请输入:
schedo -x - 要将 v_sec_wait 重新设置为缺省值,请输入:
schedo -d v_sec_wait - 要显示有关 sched_R 的帮助,请输入:
schedo -h sched_R - 要在下一次重新引导之后将 v_min_process 设置为 4,请输入:
schedo -r -o v_min_process=4 - 要将全部的 schedo 可调参数永久重新设置为缺省值,请输入:
schedo -p -D - 要列出所有 schedo 参数的重新引导值,请输入:
schedo -r -a