其他可调参数

AIX中的一些杂项参数是可以调整的。

AIX_TZCACHE
表 1. AIX_TZCACHE可调参数
描述信息
用途 在整个进程中,存储 TZ 变量的固定副本。
缺省值:不设

可能的值:ON(启用参数)

显示 $AIX_TZCACHE
更改

export AIX_TZCACHE=ON

这些更改将对以后从该 shell 启动的所有进程生效。 通知应用程序始终使用 TZ 变量的初始值。 如果应用程序频繁调用时区查询,该过程可提高性能。 例如,如果应用程序频繁检查当地时间。 但是,当该应用程序已启动时,将不识别对 TZ 变量所作的任何更改。

诊断 建议不要将此参数用于 /etc/environment 文件中的通用系统配置。 对于不改变 TZ 变量,但是频繁发出时区请求的应用程序使用此参数。
调整 不适用
EXTSHM
表 2. EXTSHM可调参数
描述信息
用途 打开扩展共享内存设备。
缺省值:不设

可能的值:ON,1SEG,MSEG

显示 echo $EXTSHM
更改

export EXTSHM

更改会在该 shell 中立即生效。 在从这个 shell 注销之前更改一直有效。 通过在 /etc/environment 文件中添加 EXTSHM=ONEXTSHM=1SEGEXTSHM=MSEG 命令,可实现永久更改。

诊断 不适用
调整 将该值设置为ON1SEGMSEG,允许进程分配小至 1 字节的共享内存段,四舍五入到最接近的页面。 该选项有效消除了 11 个用户共享内存段的限制。 对于 32 位进程,所有内存段的最大容量为2.75GB。

EXTSHM 设置为 ON 与将该变量设置为 1SEG 效果相同。 无论何种设置,小于 256 MB 的任何共享内存在内部作为 mmap 段创建,因此与 mmap 有着相同的性能影响。 大于等于 256 MB 的任何共享内存作为工作段在内部创建。

如果 EXTSHM 设置为 MSEG,那么所有共享内存在内部都作为 mmap 段创建,从而获得更好的内存利用率。

更多信息,请参阅扩展共享内存

LDR_CNTRL
表 3. LDR_CNTRL可调参数
描述信息
用途 允许调整内核安装器。
缺省值:不设

可能的值:PREREAD_SHLIB、LOADPUBLIC、IGNOREUNLOAD、USERREGS、MAXDATA、MAXDATA32、MAXDATA64、DSA、PRIVSEG_LOADS、DATA_START_STAGGER、LARGE_PAGE_TEXT、LARGE_PAGE_DATA、HUGE_EXEC、NAMEDSHLIB、SHARED_SYMTAB、SED 或 LLU

显示 echo $LDR_CNTRL
更改

LDR_CNTRL={PREREAD_SHLIB | LOADPUBLIC| ...}

export LDR_CNTRL

更改会在该 shell 中立即生效。 在从这个 shell 注销之前更改一直有效。 在 "/etc/environment文件中添加以下一行,即可实现永久更改:
LDR_CNTRL={PREREAD_SHLIB | LOADPUBLIC| ...} 
诊断 不适用
调整 LDR_CNTRL环境变量可用于控制系统加载程序行为的一个或多个方面。 您可以使用 "LDR_CNTRL变量指定多个选项。 指定该选项时,请用 @ 符号分隔选项。 下面的示例显示了如何指定多个选项:
LDR_CNTRL=PREREAD_SHLIB@LOADPUBLIC

指定 PREREAD_SHLIB 选项会导致在访问整个程序库时读取它们。 通过调整 VMM 的超前读取功能,可以从磁盘读取程序库,并在程序开始访问其页面时将其缓存在内存中。 虽然这种方法可能会占用更多内存,但如果访问模式是非顺序的(例如 Catia),它还能提高使用许多共享库页面的程序的性能。

设定选项 LOADPUBLIC 引导系统安装器安装应用程序需要的所有模块到通用共享库段中。 如果某个模块不能公开加载到全局共享库段,那么它就会被应用程序私下加载。

指定 IGNOREUNLOAD 选项避免该应用程序卸装库。 这种规范可以防止内存碎片,并消除重复加载和卸载库时产生的开销。 如果不指定 IGNOREUNLOAD 选项,一个模块可能会有两个数据实例。 如果在应用程序加载时加载了模块,然后又多次请求动态加载和卸载模块,则会创建模块的两个数据实例。

指定选项 USERREGS 会告诉系统在应用程序进行的系统调用中保存所有一般用途的用户寄存器。 该选项对进行垃圾回收的应用程序很有帮助。

指定 MAXDATA 选项会设置进程的最大堆的大小(包括覆盖可执行文件中所指定的任何 maxdata 值)。 maxdata 值用于设置进程的初始软数据资源限制。 对于 32 位程序,非零的 maxdata 值可启用大地址空间模式。 更多信息,请参阅大型计划支持。 要禁用大地址空间模型,请通过设置 LDR_CNTRL=MAXDATA=0 来指定 maxdata 值为零。 对于 64 位程序,maxdata 值为程序的数据堆提供有保证的最大大小。 即使提供了明确的地址,"shmat或 "mmap子程序也不能使用为堆保留的地址空间。 可以指定任何值,但是无论指定的 maxdata 值如何,数据区都无法扩展先前的 0x06FFFFFFFFFFFFFF。

存在两个附加 maxdata 选项以允许根据进程为 32 位还是 64 位来进行更加细致的控制。 这些附加的 maxdata 选项覆盖了相应对象方式的 MAXDATA 选项。 指定 MAXDATA32 选项将导致与 MAXDATA 相同的行为,但是将对 64 位进程忽略值。 指定 MAXDATA64 选项将导致与 MAXDATA 相同的行为,但是将对 32 位进程忽略值。

指定 PRIVSEG_LOADS 选项指引该系统装入程序将动态地装入的专用模块放入进程专用片断。 这种指定方式可能在大内存模型应用程序(在进程堆中执行专用动态装入和在进程堆中可能用完内存)中提高内存的可用性。 如果进程专用片段缺乏充足的空间,PRIVSEG_LOADS 选项就没有效果。 PRIVSEG_LOADS 选项只对 32 位应用程序(MAXDATA 值非零)有效。

指定 "DATA_START_STAGGER=Y选项后,进程的数据部分将以每个单片机的偏移量开始,该偏移量由 "vmo命令的 "data_stagger_interval选项控制。 在指定 MCM 上执行的第 n 个大页面数据进程,其数据部分从偏移量 (n * 'data_stagger_interval* PAGESIZE) % 16 MB 处开始。 DATA_START_STAGGER=Y选项只适用于 64 位内核上的 64 位进程。

指定 "LARGE_PAGE_TEXT=Y选项表示加载程序可能会尝试使用大页面来处理文本段。 LARGE_PAGE_TEXT=Y选项只适用于 64 位内核上的 64 位进程。

指定该 LLU=yes 选项可启用实时库更新(LLU)功能,当参数 llu_mode 通过命令 raso 设置为 1 或2 时则 LLU=no 禁用LLU功能。

 

指定 LARGE_PAGE_DATA=M 选项只能为数据段分配足够的大页面,直至 "brk值。 否则,在未指定 LARGE_PAGE_DATA=M 选项时,将分配整个数据段。 如果没有足够的大页面来支持对 brk 值的更改,对 brk 值的更改可能会失败。

指定 RESOLVEALL 选项将强制装入程序解析在程序装入时或者程序装入动态模块时所导入的所有未定义符号。 符号解析以标准的AIX深度优先顺序进行。 如果指定 LDR_CNTRL=RESOLVEALL,而导入的符号无法解析,程序或动态模块将无法加载。

指定 HUGE_EXEC 选项可让用户控制某些 32 位可执行文件只读段的进程地址空间位置。 有关更多信息,请参阅 32 位大型可执行文件

指定 NAMEDSHLIB=name,[attr1],[attr2]...[attrN] 选项使进程可以访问或创建由指定的名称标识的共享库区域。 可使用下列方法创建命名的共享库区域:
  • 不使用属性
  • 使用 "doubletext32属性创建命名的共享程序库区域,该区域有两个专门用于共享程序库文本的区段
如果进程请求使用不存在的命名共享库区域,将以所指定的名称自动创建共享库区域。 如果指定的名称无效,那么将忽略 NAMEDSHLIB=name,[attr1],[attr2]...[attrN] 选项。 有效名称的长度是正数,并且只包含字母数字、下划线和句点字符。

指定 SHARED_SYMTAB=Y 选项将导致系统为 64 位程序创建共享符号表(如果程序导出了任何符号)。 如果程序的多个实例同时运行,使用共享符号表可以减少程序所需的系统内存量。

指定 SHARED_SYMTAB=N 选项将阻止系统为 64 位程序创建共享符号表。 此选项覆盖 XCOFF 辅助头中的 AOUT_SHR_SYMTAB 标志。

指定 SE 选项将设置进程的堆栈执行禁用 (SED) 方式,方法是忽略可执行文件指定的任何其他 SED 方式。 此选项必须设置为以下其中一个值:
SED=system
SED=request
SED=exempt
LDR_PRELOAD 或者 LDR_PRELOAD64
表 4. LDR_PRELOAD64可调参数
描述信息
用途 请求预装入共享库。 LDR_PRELOAD 选项针对 32 位进程,而 LDR_PRELOAD64 选项针对 64 位进程。 在符号解析过程中,每个导入的符号都会首先搜索该变量中列出的预加载库,只有在这些库中找不到符号时,才会使用正常搜索。 从预载库中抢占符号对AIX默认链接和运行时链接都有效。 延迟的符号解析不变。
缺省值:不设
可能的值:一个或多个图书馆名称
注: 如果列出了多个库,请使用冒号 (:) 将其分隔开。 将归档库的成员放在括号之间。
显示

echo $LDR_PRELOAD

echo $LDR_PRELOAD64

更改

$LDR_PRELOAD="libx.so:liby.a(shr.o)"

首先从 "libx.so共享对象,然后从 "liby.a的 "shr.o成员,最后在进程的依赖关系中解决所需的任何符号。 所有动态加载的模块(使用 "dlopen或 "load子程序加载的模块)也会首先从变量列出的预加载库中解析出来。

诊断 不适用
NODISCLAIM
表 5. NODISCLAIM可调参数
描述信息
用途 控制如何处理对 "free子程序的调用。 当 "PSALLOC设置为早期时,所有 "free子程序调用都会导致 "disclaim子程序调用。 当 "NODISCLAIM设置为true 时,不会调用 "disclaim子程序。
缺省值:不设

可能值:True

显示 echo $NODISCLAIM
更改

NODISCLAIM=true export NODISCLAIM

更改会在该 shell 中立即生效。 在从这个 shell 注销之前更改一直有效。 将 NODISCLAIM=true 命令添加到 /etc/environment 文件中可进行永久性更改。

诊断 如果 "disclaim子程序调用次数较多,可能需要设置该变量。
调整 如果将 "PSALLOC设置为 ",则通过设置该变量可以消除 "free子程序对 "disclaim子程序选项的调用。

有关更多信息,请参阅早期页面空间分配

NSORDER
表 6. NSORDER可调参数
描述信息
用途 重写集合名称解析的搜索顺序。
缺省值:bind、nis、local

可能值:bind、local、nis、bind4、bind6、local4、local6、nis4 和 nis6

显示

echo $NSORDER

该选项在内部开启,因此 "echo命令不会显示初始默认值。

更改

NSORDER=value, value, ...

export NSORDER

更改会在该 shell 中立即生效。 在从这个 shell 注销之前更改一直有效。 通过在 "/etc/environment文件中添加 "NSORDER=value命令,可实现永久更改。

诊断 不适用
调整 NSORDER 覆盖 /etc/netsvc.conf 文件。

有关更多信息,请参阅名称解析调优

PSALLOC
表 7. PSALLOC可调参数
描述信息
用途 设置环境变量 PSALLOC 以确定调页空间分配规则。
缺省值:不设

可能值:early

显示 echo $PSALLOC
更改

PSALLOC=early export PSALLOC

更改会在该 shell 中立即生效。 在从这个 shell 注销之前更改一直有效。

诊断 不适用
调整 为确定在低调页条件下一个进程没有中止,这个进程可以使用 Early Page Space Allocation 规则来预分配调页空间。 不过,该选项可能会导致分页空间的浪费。 可能还需要设置 NODISCLAIM 环境变量。

有关更多信息,请参阅 《分页空间槽的分配与回收》 和《 早期页面空间分配》。

RT_GRQ
表 8. RT_GRQ可调参数
描述信息
用途 使线程置于全局运行队列,而非单 CPU 运行队列。
缺省值:不设

范围:ON,OFF

显示 echo $RT_GRQ
更改

RT_GRQ={OFF/ON

export RT_GRQ

变更立即生效。 该变更在下次启动前有效。 通过在 "/etc/environment文件中添加 "RT_GRQ={ON|OFF}命令,可实现永久更改。

诊断 不适用
调整 可能会在多处理器系统上进行调整。 将此变量设置为ON会将线程放入全局运行队列。 在该情况下,将搜索全局运行队列以查看哪个线程具有最高优先级。 该选项可使系统更快地派发线程,并可提高运行 SCHED_OTHER 和被驱动中断的线程的性能。

有关更多信息,请参阅调度程序运行队列

RT_MPC
表 9. RT_MPC可调参数
描述信息
用途 在实时模式下运行内核时,如果有优先级更高的线程可以运行,就会向另一个 CPU 发送 MPC 以中断它,从而立即调度该线程。 更多信息,请参阅 "bosdebug命令。
缺省值:不设

范围:ON

显示 echo $RT_MPC
更改

RT_MPC=ON

export RT_MPC

变更立即生效。 该变更在下次启动前有效。 通过在 "/etc/environment文件中添加 "RT_MPC=ON命令,可实现永久更改。

诊断 不适用
TZ
表 10. TZ可调参数
描述信息
用途 设置时区。
缺省值:Olson time zone

可能的值:Olson time zone 或 POSIX time zone

显示 echo $TZ
更改

TZ = value export TZ

更改立即在外壳中生效。 该更改在您注销 shell 之前一直有效。 将 TZ= value 命令添加到 /etc/environment 文件可进行永久性更改。

诊断 不适用
调整 对性能敏感、不依赖时区规则和夏令时准确变化的应用程序可能会使用POSIX。
VMM_CNTRL
表 11. VMM_CNTRL可调参数
描述信息
用途 允许调整虚拟内存管理器。
缺省值:不设

可能的值: vmm_fork_policyESID_ALLOCATORSHM_1TB_SHAREDSHM_1TB_UNSHAREDSHM_AUTO_1TBMMAP_ANON_PSIZE

显示 echo $VMM_CNTRL
更改

VMM_CNTRL={vmm_fork_policy=… | ESID_ALLOCATOR=… | ...}

export VMM_CNTRL

更改会在该 shell 中立即生效。 在从这个 shell 注销之前更改一直有效。 将环境变量 VMM_CNTRL= 添加到 /etc/environment 文件可进行永久性更改。

诊断 不适用
调整 环境变量 VMM_CNTRL 可用来控制虚拟内存管理器。 您可以使用环境变量 VMM_CNTRL 和使用“@”符号分割选项来指定多个选项。 下面的示例显示了如何指定多个选项:
VMM_CNTRL=vmm_fork_policy=COW@SHM_1TB_SHARED=5

在您指定了 vmm_fork_policy=COW 选项的情况下,派生进程时,vmm 使用写入时复制无派生策略。 该选项为默认行为。 要禁止 vmm 使用写入时复制策略,请使用 vmm_fork_policy=COR 选项。 如果指定了 vmm_fork_policy 选项,那么会忽略全局 vmm_fork_policy 可调参数。

如果指定了 ESID_ALLOCATOR 选项,那么该选项控制分配器的间接 shmatmmap 分配。 请参阅 1 TB 分段别名判别 以获取详细信息。

如果指定了 SHM_1TB_SHAREDSHM_1TB_UNSHARED,它将控制 1 TB 共享内存区域的使用。 请参阅 1 TB 分段别名判别 以获取详细信息。

如果指定了 "SHM_AUTO_1TB,它将控制共享内存区域 1 TB 段大小的自主提升。 请参阅 创建具有 1 TB 段大小的共享内存对象 以获取详细信息。

如果环境变量 "VMM_CNTRL设置为 "MMAP_ANON_PSIZE=64K,匿名内存区域将支持 64 KB 页面大小。 此设置将影响在设置环境变量的持续时间内为进程创建的所有匿名内存区域。 缺省情况下, 4 KB 页面大小支持匿名内存区域。

AIX_STDBUFSZ
表 12. AIX_STDBUFSZ:可调参数
描述信息
用途 配置由 cpmvcatcpio 命令生成的读写系统调用的 I/O 缓冲区大小。 该选项也适用于数据流缓冲。
缺省值:未设置。

可能的值:用于指定缓冲区大小的整数值(按字节、KB 或 MB 计)。

显示 echo $AIX_STDBUFSZ
更改

AIX_STDBUFSZ=1024

export AIX_STDBUFSZ(配置 1024 缓冲区大小)

更改会在此 Shell 中立即生效。 在从这个 shell 注销之前更改一直有效。 可以通过将 AIX_STDBUFSZ 环境变量添加至 /etc/environment 文件来永久更改缓冲区大小。

诊断 不适用
调整
用以下方式指定值。
  • 使用格式 "export AIX_STDBUFSZ=1024指定一个整数值
  • 使用 "export AIX_STDBUFSZ=0x400格式指定十六进制值
  • 限制:最小限制为 64 个字节,最大限制为 127 MB。
  • 超出这些限制的有效整数将还原为最接近的限制值。
  • 如果指定值不是 2 的幂次,则四舍五入为小于指定值的最接近的 2 的幂次值。
  • 如果 AIX_STDBUFSZ 参数的值无效,那么会忽略此值。
AIX_LDSYM
表 13. AIX_LDSYM可调参数
描述信息
用途 缺省情况下,当文本页大小为 64 KB 时,不会显示 Lightweight_core 文件中的源行信息。 当文本页面大小为 64 K 时,使用环境变量 "AIX_LDSYM=ON获取 "Lightweight_core文件中的源代码行信息。
缺省值:未设置。

可能的值:ON。

显示 echo $AIX_LDSYM
更改

export AIX_LDSYM=ON

更改会在此 Shell 中立即生效。 在从这个 shell 注销之前更改一直有效。 可以通过将 AIX_LDSYM=ON 环境变量添加至 /etc/environment 文件来永久更改系统。

诊断 不适用
调整

如果应用程序的文本页面大小为 64 K,且需要在 "Lighweight_core文件中提供源代码行信息,则使用此参数。

AIX_CWD_CACHE
表 14. AIX_CWD_CACHE可调参数
描述信息
用途 禁用 getcwdgetwd 子例程用于检索当前工作目录的路径名的高速缓存算法。

缺省值:未设置。

可能的值 :OFF

显示 echo $AIX_CWD_CACHE
更改

export AIX_CWD_CACHE=OFF

更改将对以后从此 shell 开始的所有进程生效。 在进程初始调用 "getcwd或 "getwd子程序之前,设置 "AIX_CWD_CACHE参数的值。 在进程调用 getcwdgetwd 子例程之后,对 AIX_CWD_CACHE 参数的进一步更改将无效。

诊断 不适用
调整 不适用
printer_scalability
表 15. printer_scalability可调参数
描述信息
用途 设置环境变量,以便对AIX打印机子系统进行可扩展的改进。

缺省值:未设置。

可能的值 :OFF

显示 echo $printer_scalability
更改

printer_scalability = ON

startsrc -s qdaemon -e printer_scalability=ON

startsrc -s lpd -e printer_scalability=ON

更改会立即在外壳中生效。 更改一直有效,直至您注销 shell。 通过在 "~/.profile文件中添加 "printer_scalability = ON命令,可实现永久更改。

诊断 不适用
调整 不适用