Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2582351
  • 博文数量: 323
  • 博客积分: 10211
  • 博客等级: 上将
  • 技术积分: 4934
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-27 14:56
文章分类

全部博文(323)

文章存档

2012年(5)

2011年(3)

2010年(6)

2009年(140)

2008年(169)

分类: 系统运维

2009-02-03 21:23:42

内核可调参数
以下是内核参数,分组成下列几部分:
『调度程序和内存装入控制可调参数』
『虚拟内存管理器可调参数』
『同步 I/O 可调参数』
『异步 I/O 可调参数』
『磁盘和磁盘适配器可调参数』
『进程间通信可调参数』
调度程序和内存装入控制可调参数
大部分调度程序和内存装入控制可调参数在 schedo 手册页中有详细描述。以下是几个其他的相关参数:
maxuproc 用途: 指定每个用户标识的最大进程数目。
值: 缺省值:40;范围:1 到 131072
显示: lsattr -E -l sys0 -a maxuproc
更改: chdev -l sys0 -a maxuproc=NewValue
更改会立即有效而且在引导期间保存下来。如果值减小了,那么它只有在系统引导后才有效。
诊断: 用户不可以派生任何附加进程。
调整: 这是为了防止用户创建过多进程的安全措施。
ncargs 用途: 指定运行 exec() 子例程时,ARG/ENU 列表(大小为 4 KB 的块)允许的最大大小。
值: 缺省值:6;范围:6 到 1024
显示: lsattr -E -l sys0 -a ncargs
更改: chdev -l sys0 -a ncargs=NewValue
更改会立即有效而且在引导期间保存下来。
诊断: 用户不可以执行任何附加的进程,因为传递给 exec() 系统调用的变元表太长。低缺省值可能造成一些程序失败并出现幅角列表太长错误消息,在这种情况下,您可以尝试使用以上的 chdev 命令增加 ncargs 值,然后重新运行该程序。
调整: 这是为了防止变元表过长引起 exec() 子例程失败的一种机制。请注意,调整到一个较高 ncargs 值会对系统内存资源加一些额外的限制。
 
虚拟内存管理器可调参数
全部虚拟内存管理器可调参数的列表位于 vmo 手册页。
同步 I/O 可调参数
在 ioo 手册页中完全描述了大部分同步 I/O 可调参数。以下是几个其他的相关参数:
maxbuf 用途: 在 block-I/O 高速缓存中的(4 KB)页数。
值: 缺省值:20;范围:20 到 1000
显示: lsattr -E -l sys0 -a maxbuf
更改: chdev -l sys0 -a maxbuf=NewValue
更改立即有效,而且是永久有效。如果使用了标志 -T,更改会立即有效,而且持续到下次引导。如果使用了标志 -P,更改推迟到下次引导,但这个更改是永久的。
诊断: 如果命令 sar —b 显示 breads 或 bwrites,且 %rcache 和 %wcache 很低,您可能需要调整这个参数。
调整: 这个参数一般对系统的性能影响很小,其中普通 I/O 不使用 block-I/O 高速缓存。
请参考:『调整异步磁盘 I/O』
maxpout 用途: 对文件指定未决 I/O 的最大数目。
值: 缺省值:0(不检查);范围:0 到 n(n 应该是 4 的倍数加 1)
显示: lsattr -E -l sys0 -a maxpout
更改: chdev -l sys0 -a maxpout=NewValue
更改立即有效,而且是永久有效。如果使用了标志 -T,更改会立即有效,而且持续到下次引导。如果使用了标志 -P,更改推迟到下次引导,但这个更改是永久的。
诊断: 如果前台响应时间有时在运行具有大量连续磁盘输出的程序时恶化,则需要对连续输出调步。
调整: 设置 maxpout 为 33 以及 minpout 为 16。如果连续的性能难以接受地恶化,增加上述一个或两个参数的值。如果前台性能仍然不可接受,则两个都减小。
minpout 用途: 指定一个基点,在该基点处,已达到 maxpout 的程序可以继续写入文件。
值: 缺省值:0(不检查);范围:0 到 n(n 应该是 4 的倍数,且大于或等于 4 小于 maxpout)
显示: lsattr -E -l sys0 -a minpout
更改: chdev -l sys0 -a minpout=NewValue
更改立即有效,而且是永久有效。如果使用了标志 -T,更改会立即有效,而且持续到下次引导。如果使用了标志 -P,更改推迟到下次引导,但这个更改是永久的。
诊断: 如果前台响应时间有时在运行具有大量连续磁盘输出的程序时恶化,则需要对连续输出调步。
调整: 设置 maxpout 为 33 以及 minpout 为 16。如果连续的性能难以接受地恶化,增加上述一个或两个参数的值。如果前台性能仍然不可接受,则两个都减小。
mount -o nointegrity 用途: 一个新的 mount 选项(nointegrity)可以增强某些写密集应用程序的本地文件系统性能。这种优化基本上避免了写入 JFS 日志。注意:增强的性能是以元数据的完整性的损失为代价而达到的。因而,使用这个选项要十分谨慎,因为系统崩溃可能使随这个选项安装的文件系统不可恢复。尽管如此,某些应用程序的类在系统崩溃后不需要文件数据来保持一致性,这些可能得益于使用了 nointegrity 选项。不完全文件系统可能有利的两个示例是用于编译器临时文件和用来执行非迁移或 mksysb 安装。
调页空间大小 用途: 保存工作存储器页面需要的磁盘空间大小。
值: 缺省值:configuration-dependent;范围:对于 hd6 是 32 MB 到 n MB,对于非 hd6 是 16 MB 到 n MB
显示: lsps -a mkps 或 chps 或 smitty pgsp
更改: 更改立即有效,而且是永久有效的。但调页空间不一定立即投入使用。
诊断: 运行:lsps -a。如果进程因为缺少调页空间而杀死,就要用子例程 psdanger() 监视状态。
调整: 如果看起来没有足够调页空间来处理正常的工作量,在另一个物理卷上添加一个新的调页空间或加大已存在的调页空间。
syncd Interval 用途: sync() 被 syncd 调用的间隔时间。
值: 缺省值:60;范围:1 到任何正整数
显示: grep syncd /sbin/rc.boot 或 vi /sbin/rc.boot
更改: 更改在下次引导后有效,而且是永久有效。备用方法是使用命令 kill 来终止守护程序 syncd 并用命令 /usr/sbin/syncd interval 从命令行重新启动它。
诊断: 当 syncd 正在运行时,文件的 I/O 被阻塞了。
调整: 在缺省级别上,这个参数几乎不影响性能。不推荐对这个参数进行更改。为了保持数据完整性(对于 HACMP™)而使 syncd interval 明显缩小,会导致性能下降。
异步 I/O 可调参数
maxreqs 用途: 指定异步 I/O 的最大请求数,这些请求可能在任何时候都是未完成的。
值: 缺省值:4096;范围:1 到 AIO_MAX(/usr/include/sys/limits.h)
显示: lsattr -E -l aio0 -a maxreqs
更改: chdev -l aio0 -a maxreqs=NewValue
更改在重新引导后生效并且永久有效。
诊断: N/A
调整: 这包括进行中的请求,还有等待开始的请求。异步 I/O 的最大请求数不能小于 AIO_MAX 的值(该值在文件 /usr/include/sys/limits.h 中定义),但可以大于它。对于拥有大量异步 I/O 的系统来说,使异步 I/O 的最大请求数大于 AIO_MAX 是适当的。
请参考:『调整异步磁盘 I/O』
maxservers 用途: 指定每个处理器的 AIO kprocs 最大数目。
值: 缺省值:10(每个处理器)
显示: lsattr -E -l aio0 -a maxservers
更改: chdev -l aio0 -a maxservers=NewValue
更改在重新引导后生效并且永久有效。
诊断: N/A
调整: 这个值限制了同时提出的异步 I/O 需求的最大数。这个值应该与期望的同时发生的 AIO 需求数基本一致。这个可调参数仅影响 JFS 文件系统(或在 AIX 4.3.2 之前的 Virtual Shared Disks(VSD))上的 AIO。
请参考:『调整异步磁盘 I/O』
minservers 用途: 当 AIO 内核扩展被装入时,设定要创建的 AIO kprocs 的值。
值: 缺省值:1
显示: lsattr -E -l aio0 -a maxservers
更改: chdev -l aio0 -a minservers=NewValue
更改在重新引导后生效并且永久有效。
诊断: N/A
调整: 建议不要把这个设为一个较大数,因为每个进程要占用一些内存。让这个数较小在很多情况下是可接受的,因为 AIO 会根据需要创建附加的 kprocs 达到 maxservers。这种调整仅对 JFS 文件系统(或 AIX 4.3.2 之前的 VSD)上的 AIO 有效。
请参考:『调整异步磁盘 I/O』
磁盘和磁盘适配器可调参数
磁盘适配器未完成请求的限制 用途: SCSI 总线上可能未完成的请求的最大数。(仅用于 SCSI-2 快速/宽带适配器。)
值: 缺省值:40;范围:40 到 128
显示: lsattr -E -l scsin -a num_cmd_elems
更改: chdev -l scsin -a num_cmd_elems=NewValue
更改立即有效,而且是永久有效。如果使用了标志 -T,更改会立即有效,而且持续到下次引导。如果使用了标志 -P,更改推迟到下次引导,但这个更改是永久的。
诊断: 执行大量写入到条形未加工逻辑卷的应用程序不会获得需要的吞吐率。
调整: 值应该等于 SCSI 总线上的物理驱动器(包括磁盘阵列里的驱动器)数乘以单独驱动器的队列深度。
磁盘驱动器队列深度 用途: 可以在磁盘设备队列中保存的最大请求数。
值: 缺省值:IBM® 磁盘=3;非 IBM 磁盘=0;范围:由制造商指定
显示: lsattr -E -l hdiskn
更改: chdev -l hdiskn -a q_type=simple -a queue_depth=NewValue
更改立即有效,而且是永久有效。如果使用了标志 -T,更改会立即有效,而且持续到下次引导。如果使用了标志 -P,更改推迟到下次引导,但这个更改是永久的。
诊断: N/A
调整: 如果非 IBM 的磁盘驱动器能够排队请求,那就执行此更改来确保操作系统利用此功能。
请参考:『设置 SCSI 适配器和磁盘设备的队列限制』
进程间通信可调参数
msgmax 用途: 指定最大消息大小。
值: 最大值为 4MB 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
msgmnb 用途: 指定队列中的最大字节数
值: 最大值为 4MB 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
msgmni 用途: 指定消息队列标识的最大数
值: 最大值为 131072 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
msgmnm 用途: 指定每个队列中的最大消息数
值: 最大值为 524288 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
semaem 用途: 指定退出时调整的最大值
值: 最大值为 16384 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
semmni 用途: 指定信号标识的最大数
值: 最大值为 131072 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
semmsl 用途: 指定每个标识的信号的最大数
值: 最大值为 65535 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
semopm 用途: 指定每个 semop() 调用中的最大操作数。
值: 最大值为 1024 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
semume 用途: 指定每个进程中撤销条目的最大数。
值: 最大值为 1024 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
semvmx 用途: 指定信号的最大值。
值: 最大值为 32767 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
shmmax 用途: 指定共享内存段大小的最大值。
值: 最大值为 256 MB(32 位进程)和 0x80000000u(64 位进程)条件下动态变化。
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
shmmin 用途: 指定共享内存段大小的最小值。
值: 最小值为 1 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
shmmni 用途: 指定共享内存标识的最大数
值: 最大值为 131072 条件下动态变化
显示: N/A
更改: N/A
诊断: N/A
调整: 不需要调整,因为它根据内核要求动态调整。
阅读(2025) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~