SCO UNIX 核心参数
SCO UNIX的核心参数的设置对系统的性能有很大的影响。本文详细介绍了SCO UNIX操作系统中对系统性能有较大影响的核心参数设置的一般原则。除此之外,精确调整核心参数还需要有关应用程序的知识。
一、I/O子系统的调整
因为磁盘I/O相对于内存访问速度较慢,所以I/O子系统核心参数的调整对整个SCO UNIX的性能有很大的影响。
1、文件,I节点和锁
NINOD和NFILE
NINODE和NFILE分别决定I节点表和文件表的大小。为了确定适当的NINODE和NFILE的值,可以用sar -v命令来查看等间隔时间内正在使用的I节点和打开文件的平均数。例如:
# sar -v
scsibox scsibox 3.2 2 i386 10/05/92
00:00:01 proc-sz ov inod-sz ov file-sz ov lock-sz
01:00:01 57/100 0 191/300 0 190/300 0 2/100 <-- 第一个时间间隔
02:00:01 57/100 0 191/300 0 190/300 0 2/100 <-- 第二个时间间隔
03:00:01 60/100 0 194/300 0 194/300 0 2/100 <-- 第三个时间间隔
^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | |
| NPROC | NINODE | NFILE | FLCKREC
| | | |
进程 inodes 已打开 已加锁的
平均 的平均 文件的 文件记录
数目 数目 平均数 的平均数
另一方面也可使用如下命令查看某一时刻的I节点和打开的文件数:
# pstat | egrep '^[0-9]'
165 active inodes
51 processes
171 open files
通过以上两种方法确定系统在峰值时刻的最大inode和打开文件数目,然后根据系统峰值时的I节点和打开文件数加上20%到25%的冗余量来设置系统的NINODE和NFILE的值。
NOFILES和FLCKREC
NOFILES决定了用户文件描述表的大小,它确定了单个进程在任何时刻可同时打开文件的数量。由于NOFILES的缺省值很大,因此一般无需修改NOFILES的值。只有在使用数据库的时候可能需要修改NOFILES的值。
一般来说操作系统有能力锁住某个文件,这样其他用户或进程就不可能再打开这个文件。除了对文件加锁以外,操作系统还可以对文件的记录进行加锁,文件的记录可以是一个字符,也可以是文件中的所有字符。
FLCKREC参数确定在系统范围内多少记录可以被加锁。要为FLCKREC赋一个合适的值,可以用“sar -v”命令提供的输出信息来确定。同NINODE、NFILE一样,根据“sar -v”命令提供的信息,加上20%到25%的冗余量来确定FLCKREC的值。若FLCKREC设置的太低,系统会出现错误信息提示文件锁表溢出。
2、NAMEI缓冲区
在动手调整NAMEI参数之前,很有必要了解设置NAMEI缓冲区的目的。在解释设置缓冲区的目的之前,先介绍一下在SCO UNIX操作系统下文件是如何打开的。举例来说,当我们要打开 “/usr/tmp/my_directory/my_file”文件时,操作系统所要做的第一件事就是将输入的字符串分裂成各个组成部分,也就是分裂成“usr”、“tmp”、“my_directory”和“my_file”。“my_file”是一个文件,“usr”、“tmp”、“my_directory”和“my_file”是目录,但在UNIX 操作系统中,一个目录实际上也是一个文件,因此,“usr”、“tmp”、“my_directory”也都是文件,在这些目录文件中包含有目录中所有文件的文件名和I节点数。
当操作系统将文件名分裂成一个一个的组成部分以后,就开始逐个处理文件名的组成部分。操作系统首先在根目录下寻找“usr”文件,找到后提取出“usr”的I节点数,根据I节点数读取磁盘,即将“usr”目录中的内容读入内存中,在此内容中定位下一个组成部分:“tmp”。一旦找到“tmp”,提取出相应的I节点数、根据I节点数从磁盘读取“tmp”的内容之后,操作系统对“my_directory”进行同样的操作。最后,操作系统定位到“my_file”,找到此文件的I节点数,然后打开文件。
打开文件的处理过程,因为涉及到多次的读盘操作,所以是很费时的,因此要想办法减少任何多余的I/O操作。
UNIX的设计者早已注意到某些目录和文件的使用频率较高,NAMEI缓冲区通过对这些目录和目录的组成部分进行缓冲来提高系统的性能。这样打开这些文件时就无需再访问硬盘,读取文件的速度大幅度提高。
S5CACHEENTS(System V Cache Entries)
为了介绍的方便,NAMEI缓冲区中的每一项称之为“NAMEI缓冲项”,在整个系统中存在一定数目的NAMEI缓冲项。正在使用的NAMEI缓冲项通过链接的方式组成链表,如下所示:
NAMEI缓冲项的总数由
S5CACHEENTS决定。
此例中S5CACHEENTS=28
meteor06 回复于:2003-07-11 10:03:06 |
idtune 可配置的核心参数
分为以下11类 1) Boot load extension parameters 2) Buffer cache free list 3) Hardware and device driver parameters 4) Memory management parameters 5) Name cache parameters 6) Message queue parameters 7) Semaphore parameters 8) Shared memory parameters 9) STREAMS parameters 10) System parameters 11) LAN Manager Client Filesystem parameters Boot load extension parameters 类核心参数 1) EXTRA——NDEV:fmodsw[],io_init[]与io..[]中额外设备槽的数 量。用于定义在设备驱动程序表中为引导时可装载的驱动程序 (BTLDs)所保留的设备槽的数量 2) EXTRA_NEVENT:额外事件槽的数量。用于定义在事件驱动程 序表中为引导时可装载的驱动程序(BTLDs)所保留的事件槽的数 量 3) EXTRA_NFILSYS:额外文件系统类型的数量。于定义在引导时 可装载的驱动程序(BTLDs)加载的额外文件系统类型的数量 4) MAX_BDEV:块设备的最大数量 5) MAX_CDEV:字符设备的最大数量 Buffer cache free list 类核心参数 BFREEMIN:定义自由队列中必须剩余的缓存区数量的下限,即自 由队列中最小的自由缓存区的数量。 Hardware and device driver parameters 类核心参数 1) NAHACCB : 主机适配置器驱动程序与其他Adaptec硬件之间进 行通信的可以使用的邮箱数量 2) NEMAP:指定在同一时间有效的mapchan输入/输出转换映射的 最大值,默认为10 3) NKDVTTY:控制太键盘驱动程序所支持的虚终端数,缺省为8 Memory management parameters 类核心参数 1) MAXSC:在单个操作中被换出页面的最大数量 2) MAXFC:在单个操作中可以被添加到自由队列的最大页面数量 Name cache parameters 类核心参数 1) HASHQS: 用于name cache 的 hash queus 的数量 Message queue parameters 类核心参数 1) MSGMNI :不同消息队列所允许的最大数量 2) MSGTQL:系统核心中能够存储的系统消息头的最大数量,即在 任何时刻系统中允许存在的没有被阅读的消息的最大数量 3) MSGSSZ: 在一个消息队列中用于存储消息的一个内存段的大 小,即一个消息段的长度 Semaphore parameters 类核心参数 1) SEM_NSEMS_MAX: POSIX.1b 信号灯的最大数量(如果使用 suds库) 2) SEMMSL :每个信号灯标识符所具有的信号灯的最大数量 3) SEMOPM:每个semop系统调用所能执行的信号灯的最大数量 4) SEMUME :每个进程未完成的表项数量 5) SEMVMX:信号灯所能具有的最大值 6) SEMAEM:在退出信号灯进行调的最大值 7) SEMMNS : :系统中信号灯的数量 Shared memory parameters 类核心参数 1) SHMMNI :共享内存标志符的最大数量,每项占用52个字节 STREAMS parameters 类核心参数 1) NMUXLINK:配置的多路复用器链路的数量 2) NSTRPUSH :被推入一个流(stream)的模块(module)的最 大数量 3) NLOG: 为日志驱动程序配置的次设备的数量 4) STRCTLSZ:允许分配给任何一个STREAMS消息的控制部分的 最大长度 System parameters 类核心参数 1) NODE: 系统名 2) TIMEZONE :时区 3) DSTFLAG:为ctime系统调用定义描述符值 4) KDBSYMSIZE;核心调式程序符号表的长度 5) NCPYRIGHT: 定义用于存储系统引导时显示在控制台上的某 些厂家驱动程序版权信息的最大字符长度 LAN Manager Client Filesystem parameters 类核心参数 1) LMCFS_BUF_SZ: 确定LMCFS 在单个网络信息包中能够传输 的最大数据量 2) LMCFS_LMINUM: 可分配的I节点的数量 3) LMCFS_NUM_BUF: 设置LCMFS 使用的消息块(SMB)数据 缓存区的数量 4) LMCFS_NUM_REQ:限制网络上同时发生SMB请求的数量 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/