SCO UNIX 系统核心参数的意义Windows系统

| 收藏本文 下载本文 作者:电子小狗

小编在这里给大家带来SCO UNIX 系统核心参数的意义Windows系统(共含6篇),希望大家喜欢!同时,但愿您也能像本文投稿人“电子小狗”一样,积极向本站投稿分享好文章。

SCO UNIX 系统核心参数的意义Windows系统

篇1:SCO UNIX 系统核心参数的意义Windows系统

一、磁盘和缓冲 NDISK 是连到系统上的磁盘驱动器数目,它在引导时设置。 NBUF 在引导时所分配的1K系统缓冲区的数目。这些缓冲区在一个数据高速缓存中。 这个数据高速缓存是一个含有磁盘文件信息的内存阵列。高速缓存的命中率 随缓冲区的增加而提高。高速缓存

一、磁盘和缓冲

NDISK

是连到系统上的磁盘驱动器数目。它在引导时设置。

NBUF

在引导时所分配的1K系统缓冲区的数目。这些缓冲区在一个数据高速缓存中。

这个数据高速缓存是一个含有磁盘文件信息的内存阵列。高速缓存的命中率

随缓冲区的增加而提高。高速缓存的命中减少了对磁盘的访问,并因此提高

了系统的整体性能。这个参数值一般在100到600范围内。每个缓冲区包含

1076个字节。hash队列的数目(NHBUF)应该随系统缓冲区的增加,这样才

能获得最优性能。

NPBUF

指定要分配多少个物理I/O缓冲区。每个读写活动都需要一个I/O缓冲区。每个

入口缓冲区。第入口包含52个字节。这个参数的缺省值是20。

NHBUF

指定为1K缓冲区分配多少hash队列。这是为了搜索给定设备号和块号的缓冲区

的,这样就不必在整修缓冲区队列中进行线性搜索了。这个值必须是2的幂。

每个入口包含12个字节。NHBUF的值必须这样选,NBUF的值除以NHBUF的值约等于4。

(在文件/usr/adm/messages中查看NBUF的值,它在引导时确定并显示。)

CTBUFSIZE

是以Kbye为单位的磁带(QIC-11,QIC-24)缓冲区的大小。它的值应为32到256。

它是在初始化时分配的静态缓冲区的大小。下面是与相应环境对应的合理的值:

32K 勉强的最小值:对数据流是不够的。

64K 允许数据流(有益于内存小的系统)或使用小磁带(性能并不关键)的最小值。

96K 比缺省低一级的配置,如果缺省值使用的内存太多,就减于此。

128K 缺省值:好的性能折衷配置值。

192K 比缺省高一级的配置,如果缺省值所提供的性能太差,就增为这个值。

256K 最大值。

MAXBUF

允许高速缓冲中可有的缓冲区的最大数目。这是核心中所说明的缓冲区头的数目。

如果所需的缓冲区数小于这个数值,那么在引导时就会依据内存的大小来自动进行

配置。如果NBUF不为0,那么就会准确地配置NBUF个缓冲区,而MAXBUF就没有必要

大于NBUF。如果NBUF为0,核心就会动最多配置MAXBUF个缓冲区。

OMAABLEBUF

每次传输大于16MB的DMA请求所需的传输缓冲区的数目。它一定是一个4到128的值。

缺省值为16。

NAUTOUP

为文件系统的自动更新指定以秒为单位的缓冲区寿命。当一个系统缓冲区中的内容

已经在内存中驻留了由NAUTOUP参数所指定的这么长时间时,它就会被写入硬盘。

如果指定一个较小的值,那么系统的可靠性就会因为较频繁地把缓冲区中内容写入

磁盘而提高,但系统性能会降低。指定一个较大的值则会提高系统性能,但要以降低

系统安全性为代价。这个控制着bdflush守护进程的活动。

BDFLUSHR

为对把文件系统缓冲区中的内容写到磁盘上的需要进行检查指定以秒为单位的频率。

范围是1至300。缺省值为30秒。这个参数控制着bdflush守护进程的活动。

PUTBUFSZ

指定环形缓冲区putbuf的大小,putbufk 包含由操作系统写到控制台上的最后几个

PUTBUFSZ字符。putbuf的内容可使用crash(ADM)看到。

PIOMAP

决定由核心可编程I/O(PIO)分解例程使用的映射入口阵弄的大小。这个例程可允许

设备驱动程序通过把大的数据块分解为小的数据单位而在中断级上完成对大型数据块

的可编程I/O操作。用户不应该修改这个参数。

DO387CR3

当安装了一个80387浮点协处理器时,用以控制对控制寄存器3(CR3)高位字节的设置,

NUMTRW

是在核心数据空间分配的“传输库接口(TLI)”这个数据读/写结构的数目。用户不

应该修改这个参数。

PRFMAX 是核心简要表(/dev/prf,在profile(ADM)中有说明)能够

正确处理的文本符号的最大数目.

NCLIST 指定要分配多少个显示缓冲区.每个缓冲区最多包含64个

字节.这些缓冲区动态地连接于终端线或其它低速设备的输入

/输出队列表.每个终端所需的平均缓冲区数目是5到10个.

每个入口(缓冲区空间加上头)包含72个字节.满了以后,与

终端有头的输入/输出字符就会丢失,虽然显示还在继续.

NEMAP 指定I/O传输映射的最大数目.

NUMXT 确定一个子设备能够配置支持的位映射显示设备(例如BLIT或

AT&T5620终端)的数目.

NUMSXT 确定一个子设备能够配置的SHELL层的数目,其缺省值为6.

NKDVTTY 确定由控制台键盘驱动程序支持的虚终端(TTYS)的数目,用户

不应该修改这个参数.

NCPYRIGHT 定义用以打印控制台初始化信息的核心数据结构的大小.用户

不应该修改这个参数.

KDBSYMSIZE 是符号表的大小.值一定要在10000至100000之间.缺省值为

60000.

NINODE 指定要分配多少I节点表的入口,每个表入口都代表一个活动

文件的内存I节点.例如,一个活动文件可能是一个当前目录,

一个打开的文件或是一个安装点.当修改了这个变量,文件

控制结构就被修改了.所用的入口数目依赖于被打开文件的

数目.入口数一般在100到400之间.缺省值为300.

NINODE的值直接与NFILE的值有头.(NINODE等于或大于NFILE)

NINODE一定要小于或等于NSSINODE.NINODE若大于NS5INODE,

就会使得系统无法工作.当I节点表溢出时,在系统控制台上会

显示如下警告信息:

WARNING:i-node table overflow

NFILE 指定要分配多少个打开文件表入口.每个入口表示一个打开的

口包含12个字节.NFILE入口直接与NINODE有头.同样的方式控制

其结构操作.当文件表溢出时,在系统控制台上会显示如警告信息:

NOTICE:file table overflow

请注意:这个参数不影响每进程打开文件的数目(请看NFILES参数)

NOFILES 指定每个进程所打开文件的最大数目.缺省值为60.除非某个

的应用程序包要求修改NOFILES,其它情况下不要发迹这个60的缺省

设置./bin/sh使用了三个文件入口:标准输入.标准输出和标准错误

(0,1,2通常分别为stdin,stdout.stderr保留).这就只给每个进程留

了NOFILES减3个其它可打开文件的入口.如果某个进程需要比这个数目

多于三个的可打开文件,那么标准文件就必须被关闭.这种做法是不

提倡的,一定要小心地使用.如果所配置的NOFILE值大于最大值(100)

或小于最小值(60),那个所配置的值就置为缺省值(60),同时把一条

信息送到控制台上.

NPROC 指定要分配多少个里程表的入口.每个里程表入口都代表一个的进程,

替换程序总在第一个入口中,而/etc/init总在第2个入口中,入中的

数目领事于终端线的数目和每个用户产生的进程的数目,每个用户进程

的平均数在2至5之间(再请看MAXUP,缺省值为25).如果表被填满,fork(S)

系统调用就会返回一个错误EAGAIN.NPROC的值可在50至400之间.

缺省值为100.

jysww 回复于:-02-19 22:51:13有意思,好东西!

原文转自:www.ltesting.net

篇2:SCO UNIX5 动态核心参数Windows系统

动态核心参数也是 UNIX 5引进的新特性,但并非所有核心参数均可以动态调整。动态核心表涉及以下几个部分: 一、动态核心表的可用空间,通过以下几个参数控制: 以下参数决定有多大的内存空间可以分配给动态核心表。 TBLPAGES:动态核心表的最大页面数。DEFAU

动态核心参数也是UNIX5引进的新特性。但并非所有核心参数均可以动态调整。动态核心表涉及以下几个部分:

一、 动态核心表的可用空间,通过以下几个参数控制:

以下参数决定有多大的内存空间可以分配给动态核心表。

 TBLPAGES:动态核心表的最大页面数。DEFAULT=0,0意味着取系统的自动配置值。

 TBLDMAPAGES:可用于DMA存取的最大内存页面数。

 TBLLIMIT:单个表占整个TBLPAGES和TBLDMAPAGES的最大百分比。DEFAULT=70%。

 TBLSYSLIMIT:若TBLPAGES取0值,此参数表示动态表可占内存的最大百分比。DEFAULT=25%

二、 动态核心表

下列参数控制了动态核心表空间可以增长的最大幅度。

 MAX_DISK:系统容许的硬盘驱动器表数目

 MAX_INODE:系统的节点表槽数目。

 MAX_PROC:进程表数目。

 MAX_FILE:可打开文件数目。

 MAX_REGION:区表数目。(此值应略大于MAX_PROC值的三倍。)

 MAX_MOUNT:可挂载系统表的数目。

 MAX_FLCREC:锁表的数目。

三、 相关命令

 显示动态参数当前值

getconf 参数名

如: getconf KERNEL_PROC

getconf KERNEL_PROC_MAX

注:sar Cv 命令中的PROC_SZ也表明了实际的活动进程数

 改变当前动态参数值

setconf 参数名 参数值 (返回值为原值)

 查看、修改动态核心参数的几个命令

/etc/conf/cf.d/configure -x

sysdef

/etc/conf/cf.d/idtune[color=darkred:00607af0be][/color:00607af0be]

answer 回复于:2003-04-28 17:07:59[color=red:5454925d36]在此我要声明。

我不想让这贴成为水贴。

所以,请不要在这里写一些

支持,感激,收藏之类的回复

我如果发现都会删除的

我只想在这里来讨论,如果你有什么问题和建议。

提出来一起讨论,我非常欢迎。

我写的东西,希望大家在的时候写上出处和作者

也帮咋们的网站做做广告[/color:5454925d36]

keigopan 回复于:2003-04-28 17:12:13希望这篇文章可以得到大家的支持,使之成为关于SCO UNIX5 动态核心参数方面的教科书性质的文章,让更多的人受益!!!

answer 回复于:2003-04-28 17:18:03明天我去单位写一点,一起把它给加全了。

keigopan 回复于:2003-04-28 17:20:02公司的破网,一会断一会连的

answer 回复于:2003-04-28 17:27:07我在家里是用小猫呀~~~

你应该知道我的痛苦了吧~~~

muzx 回复于:2003-04-28 17:27:12等待着.......

辛苦了!!

answer 回复于:2003-04-28 17:31:33[quote:e16cdf89fa=“muzx”]等待着.......

辛苦了!![/quote:e16cdf89fa]

一起来写吧~~

人多了,总是能量大~~~

keigopan 回复于:2003-04-30 15:38:36响应斑竹的号召,顶!!!!!!!!!!!!!!!

answer 回复于:2003-04-30 16:28:32我接着写,五一期间一定写完了。

兔子在上面也写了,UNIX系统提供了专门调整核心参数的命令。

/etc/conf/cf.d/configure 和 /etc/conf/bin/idtune

我想它们的用法,我就不用做太多描述了,大家应该都知道。

在根下敲入命令

#/etc/conf/cf.d/configure

回车后,屏幕可调出核心参数的主菜单,其内容为:

[color=red:dde5ffd1d6]Performance tunables[/color:dde5ffd1d6]

这组参数与系统的性能相关,将直接影响系统性能的好坏。这一组共包含6类。

1.   Buffers management        (系统缓存区管理)

2.   Processes and paging        (进程和页面调度)

3.   TTYs                                    (有关tty设备的参数)

4.    Name  cache                      (名字cache)

5.    AIO                                     (异步输入、输出)

6.    Virtual   disk                        (虚拟硬盘)

[color=red:dde5ffd1d6]Configuration tunables[/color:dde5ffd1d6]

这组参数与系统、设备、安全等多方面的配置有关,共12类,

7.    User and group configuration     (用户和组配置)

8.    Security                                       (系统安全方面的核心参数)

9.     TTY and console configuration    (终端和主控台配置)

10.    Filesystem  configuration           (文件系统配置)

11.    Table   limits                               (动态核心表参数)

12.     Streams                                     (流控制)

13.      Message   queues                     (消息队列)

14.      Event queues                            (事件队列)

15.      Semaphores                              (信号灯)

16.       Shared  date                             (共享数据核心参数)

17.       Miscellaneous  system  parameters     (杂项系统核心参数)

好了大的方向我想大家现在也,应该有所了解。

在后面的几天我会陆续,将每一项的具体值和用法写出来。

keigopan 回复于:2003-04-30 17:18:091 Buffers Management 缓存区管理参数

2 Process and paging 进程管理参数

3 TTYS 与字符设备驱动程序相关的数据结构大小和其它限制参数

4 Name Cache 与文件名和节点号之间映射相关的Name Cache有关参数

5 AIO 异步I/O性能相关参数

6 Virtual Disks 虚拟硬盘管理和配置相关参数

7 User and group configuration 控制与单个用户或组相关的系统资源参数

8 Security 系统安全性能参数

9 TTY and console configuration 终端相关参数

10 Filesystem configuration 不同文件系统的配置参数

11 Table limits 动态核心表相关的内存配置参数

12 Streams 字符I/O接口的配置相关参数

13 Messages queues 进程间通讯消息相关参数

14 Event queues 事件队列配置相关参数

15 Semaphores 进程间通讯信号灯相关参数

16 Shared data 进程间通讯共享相关参数

17 Miscellaneous system string buffer和kernel profiler symbol table相关参数

18 Miscellamious device drivers and hardware parameters相关参数

keigopan 回复于:2003-04-30 17:18:57[color=red:c5638b2049]Buffers Management [/color:c5638b2049]缓存区管理参数包括:

[color=red:c5638b2049]NBUF:total system buffers the value is wrrenty determined at system start up[/color:c5638b2049]

原文转自:www.ltesting.net

篇3:SCO UNIX核心参数的调整Windows系统

SCOUNIX核心参数的调整 【摘要】本文介绍了SCOUNIX操作系统中几个核心参数调整的一般原则及如何根据系统的实际运行状况进行核心参数的调整, 【关键词】SCOUNIX核心参数 SCOUNIX的核心参数的设置对系统的 性能 有很大的影响。本文详细介绍了SCOUNIX操作系统

SCO UNIX核心参数的调整

【摘要】本文介绍了SCO UNIX操作系统中几个核心参数调整的一般原则及如何根据系统的实际运行状况进行核心参数的调整。

【关键词】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

图一

还未被使用的NAMEI缓冲项保存在缓冲池中。当需要对一个新的组成项进行缓冲时,NAMEI缓冲算法就从缓冲池中分配一个缓冲项,最终缓冲池中的所有缓冲项都有可能被用尽,如图一所示。

S5HASHQS

图一说明了NAMEI缓冲项被组织成链表的形式。为了快速地访问链表中的任意一个NAMEI缓冲项,核心使用了散列表。散列表的大小由S5HASHQS决定。NAMEI缓冲项与散列表之间的关系可用下图说明:

NAMEI缓冲区的总数由S5CACHEENTS

决定。此例中S5CACHEENTS=28

散列表的大小由5HASHQS

决定。此例中S5HASHQS=7

图二

调整系统参数与走平衡木类似,需要我们在复杂的条件下寻求某种平衡。在调整上述核心参数时以下几条原则可供参考:

* 当增加S5CACHEENTS的数值时,也就增大了给定文件的组成部分在NAMEI缓冲区的概率。因为缓冲区越大,也就能缓冲更多的文件组成部分。

* 当增加S5HASHQS时,链表的平均长度减少。如果文件的组成项在链表中,则访问速度更快。

虽然散列函数可以完全确定某一文件组成项应在散列表的那一队列中,但这并不意味着这一文件组成项就一定在NAMEI缓冲区中,而只是告诉我们如果这一文件组成项在NAMEI缓冲区中,那末就一定在这一链表中。当文件组成部分不在缓冲区时,就需要对此进行缓冲。

下面我们进一步讨论一下S5CACHEENTS参数的设置。

如果参数S5CACHEENTS与S5HASHQS的值之比较高,那么散列表中的链表则较长,需要系统花更多的时间去遍历链表。相对来说,比值低较好,但设置的比例越低,所得的益处也越来越不明显。最好是使得S5HASHQS的值接近S5CACHEENTS的值。

S5CACHEENTS推荐的值是3*NINODE。因为S5CACHEENTS的值是基于NINODE的,所以慎重选择NINODE很重要。

S5CACHEENTS与S5HASHQS之比的值最好为4:1。因为S5HASHQS决定了散列表的大小,所以比值最好在推荐值上下且接近某个质数。

3、缓冲区

MAXBUF,NBUF,NHBUF,NAUTOUP,BDFLUSHR

因为相对于内存访问来说,磁盘I/O较慢,所以任何可以减少操作系统磁盘I/O次数的方法对系统来说都是有益的。SCO UNIX操作系统使用缓冲技术来减少磁盘I/O。

缓冲区是操作系统在内存中开辟一片区域。缓冲技术使用这块区域缓冲磁盘I/O的数据。这样,当操作系统接到请求去磁盘读某块数据时,可以先检查缓冲区中的数据。若要读的数据恰好在缓冲区中,那么操作系统可以简单地从缓冲区中读出数据交给请求者即可,因而减少了对磁盘访问的次数。类似地,当操作系统接到请求要写数据到磁盘上时,操作系统无须立即将数据写入磁盘,可以先把数据写入缓冲区,以后在合适的时候再把缓冲区的数据写入磁盘。

NBUF参数决定分配多大的缓冲区。缓冲区大小的基本单位是1K。NBUF在SCO UNIX中的缺省值为0。设置NBUF为0,使得SCO UNIX根据内存容量的大小自动配置缓冲区。

MAXBUF参数允许系统管理员为系统自动配置NBUF参数时指定一个最大值,即MAXBUF为NBUF的上界。

建议按以下要求调整缓冲区有关参数:

(1) 设置MAXBUF的值为内存总量大小的25%。例如,若机器的内存大小为32MB,那么MAXBUF为8MB。因为MAXBUF也是以1K为单位的,所以设定MAXBUF=8000。

(2) 设置NBUF为0。当系统启动时,会根据NBUF、MAXBUF即内存的大小自动配置缓冲区的大小。在启动屏上系统会显示:“kernel :i/o bufs = ****k”来报告系统自动配置的NBUF值。

NBUF设置的一般原则是使得NBUF的值为系统内存容量的10%到25%。若设置的NBUF 值较高,则留给应用程序的内存就少,反之则应用程序可用内存就多。NBUF参数的设置需要在这之间寻求平衡。

这里介绍的缓冲区如同上面介绍的NAMEI缓冲区一样也是被组织成散列表的形式。缓冲区散列表的大小由NHBUF决定。为了在运行高峰时,系统依然能有效地运行,NHBUF应设为2的方次、接近于NBUF/4的某个值。

NAUTOUP为文件系统的自动更新指定以秒为单位的时间间隔。当一个系统缓冲区中的内容已经在内存中驻留了由NAUTOUP参数所指定的这么长时间时,它就会被写入硬盘。如果指定一个较小的值,那么系统的可靠性就会因为较频繁地把缓冲区中内容写入磁盘而提高,但系统性能会降低。指定一个较大的值则会提高系统性能,但要以降低系统安全性为代价。

为把缓冲区中的内容写到磁盘上去,后台进程需要以一定的频率检查缓冲区的内容,BDFLUSHR参数指定后台进程检查的频率。范围是1至300秒,缺省值为30秒。

确定系统运行时缓冲区的有效性可使用sar命令:

# sar -b | more

scsibox scsibox 3.2 2 i386 07/26/94

00:00:01 bread/slread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s

01:00:01 0 1 97 0 0 85 0 0

02:00:00 0 2 97 0 1 87 0 0

03:00:01 0 1 98 0 0 86 0 0

04:00:01 0 2 93 0 1 88 0 0

05:00:00 0 1 98 0 0 85 0 0

06:00:01 0 1 99 0 0 86 0 0

07:00:01 0 1 99 0 0 86 0 0

08:00:01 0 1 100 0 0 86 0 0

%rcache域显示了缓冲区缓冲读操作的效率。一般来说,%rcache的值应在100%以上。

%wcache域显示了缓冲区缓冲写操作的效率。一般来说,%wcache的值应在80%以上。

二、内存子系统的参数调整

1、进程表

NPROC 和 MAXUP

系统中的每个进程在系统的进程表中都有一个登记项。NPROC核心参数确定进程表的大小。进程表必须足够大以致于能容纳下系统在运行高峰时的所有进程。通过检查sar -v命令的输出结果可以为NPROC设置一个合理的值:

# 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

|

进程平均数

使用如下命令可以查看系统在此时刻的进程数:

# pstat | egrep '^[0-9]'

165 active inodes

51 processes

171 open files

建议使用这两种方法来确定系统在运行高峰时的进程数,然后设置NPROC的值为高峰时进程数加上20%至25%的冗余量,

MAXUP是某一个用户可运行的最大进程数。设置MAXUP参数的目的在于防止某个用户滥用fork系统调用以致于僵死进程塞满系统进程表而导致系统崩溃。

NPROC的值应比MAXUP的值大10%以上。

MAXUP的具体值应根据运行在系统的应用程序确定。如果你发现应用程序报告“fork(S) failed”之类的错误,那末此时就需要增大MAXUP的值。从解决“fork(S) failed”之类错误的角度来说,应将MAXUP的值设置的大些,但如此以来就增加了进程表被僵死进程塞满而导致系统崩溃的可能性。

2、共享内存和共享库

NREGION

每个进程至少有三各区:正文区、数据区和堆栈区。正文区存放进程代码(即指令);进程所使用的变量存放在数据区;堆栈区用来存放进程的临时数据。

系统在核心维护着一张区域表(Region Table),这张表记录着系统中每个进程所使用的正文区、数据区和堆栈区的信息,NREGION决定了这张区域表的大小。为了确定确定区域表的使用情况,可以用crash(ADM)命令的region选项:

# crash

dumpfile = /dev/mem, namelist = /unix, outfile = stdout

> region

REGION TABLE SIZE = 300

Region-list:

SLOT PSZ #VL #NON RCNT SWP WAT FSIZE TYPE FOR BCK INO LISTADDR FLAGS

0 1 1 0 1 0 0 644c priv 1 2 295 f019598c done

1 5 5 0 26 3 0 5398 stxt 159 0 295 f01959d0 done

2 6 5 0 1 0 0 5604 stxt 0 3 297 f0195a14 done

......

201 2 0 0 1 0 0 0 priv 194 138 f0198ef0 stack

202 84 4 0 1 0 0 fefb8 priv 134 166 40 f0198f34 done

203 2 2 0 1 0 0 0 priv 166 168 f0198f78 stack

region选项的输出表示在系统的区域表中有203项。为了给NREGION确定一个合适的值,需要计算系统在使用高峰时区域表中有多少项。知道此值以后,再加上20%至25%的冗余量就是NREGION参数的值。若NREGION的值设置太低,则有可能导致系统区域表溢出错。

三、串行I/O子系统参数调整

为了提高串行I/O处理速度和处理单个字符,SCO UNIX操作系统采用了一种称为clist的机制。

当用户登录进入系统,系统就给此用户分配一个控制终端。例如,如果他通过串行终端登录进入,那末他的控制终端可能是“tty1a”,类似地,如果通过控制台登录,那末控制终端可能为“tty01”。无论控制终端的名字如何,控制终端记录了用户在登录期间的会话信息。特别地,控制终端维护着数条预定义的clist链表,每条链表用来对来往于键盘和屏幕的I/O信息进行缓冲。

要注意的是每个控制终端使用三个clist链表,分别是:“原始输入队列”,“正则队列”和“输出队列”。这三条队列是固定的,无法重新配置。注意不要与核心参数中的NCLIST参数搞混。NCLIST参数并不控制clist链表的数目,而是确定“cblocks”的数目。

如下图所示,“clist”是指向一条链表的指针,而链表由“cblock”组成,每个“cblock”可以缓冲多达64个字符(注意:cblock的大小由硬件决定,不可改变)。

clist

cblock

cblock

cblock

在内核中有一个名为“ttyhog”的变量,限制了“原始输入队列”可以接纳的字符总数。缺省地,ttyhog的值为256。因为每个cblock能够容纳64个字符,这意味着clist的队列由四个cblock组成(256/64=4)。

clist

cblock

cblock

cblock

cblock

对大多数系统来说,只需按如下公式设置NCLIST参数的值即可:

NCLIST = 12 *同时登录进入系统的用户数

四、进程通信参数的调整

UNIX内核提供了三种方式用于进程之间的通信:信号量、消息队列和共享数据。每种方式容许数个进程相互之间进行通信。对与IPC(进程通信)相关的核心参数进行调整也许不能提高系统的性能,但它能减少系统核心大小的尺寸。这一点通过适当配置IPC参数,恰好满足系统需要来实现。

IPC参数数值设定与运行于系统之上的应用程序有很大的关系。这一节不准备对各种具体的应用程序的IPC参数设置进行介绍,而主要介绍IPC参数的原理以供用户在具体设置IPC参数时参考。

信号量

信号量是用来同步进程的一种机制。信号量提供一种方法来保证两个进程不会同时试图使用同一种资源(也就是说,信号量保证了进程间的互斥)。

一般来说,一个信号量可以取两个值:0和1。0通常用来表示某个进程可以占用这个信号量,而1表示某个进程已经占用了这个信号量,因此其他进程只能等待信号量的释放。

SCO UNIX 系统V中的信号量概念与通常的信号量概念略有不同。下图说明了不同点:

单个信号量

信号量集

在SCO UNIX系统V中,一个信号量是通常意义的信号量的集合。在本文中为了对此进行区分,我们称SCO UNIX系统V中的信号量为信号集,而单个信号量我们称之为单个信号量。

核心参数SEMMNI确定了在系统范围内分配多少个信号量集。

使用ipcs(ADM)命令可以确定系统目前使用的信号量集。

# ipcs -s

IPC status from /dev/kmem as of Fri Oct 16 11:09:29 1992

T ID KEY MODE OWNER GROUP CREATOR CGROUP NSEMS OTIME CTIME

Semaphores:

s 0 0x6c737372 --ra-ra-ra- root other root other 3 11:39:44 11:39:43

ipc命令的输出表明目前只有一个信号量集在使用。通过对ipcs命令列出的信号量集的记数,可以确定应用系统所使用信号量集的最大数目,然后设置SEMMNI为此值加上一定的冗余量。

每个信号量集包含有一个或多个单个的信号量,而每个信号量集能够拥有的单个信号量的个数由SEMMSL参数决定。确定SEMMSL某个合适的值需要了解应用程序使用信号量资源的程度。

SEMMNS确定在系统范围内分配多少个单个的信号量。为了确定目前正在使用的单个信号量,同样使用ipcs(ADM)命令:

# ipcs -s

IPC status from /dev/kmem as of Fri Oct 16 11:09:29 1992

T ID KEY MODE OWNER GROUP CREATOR CGROUP NSEMS OTIME CTIME

Semaphores:

s 0 0x6c737372 --ra-ra-ra- root other root other 3 11:39:44 11:39:43

注意到NSEMS列的值为3,表明此信号量集使用3个单个信号量。通过计算ipcs所列出的单个信号量,可以得出某个应用程序所使用的单个信号量的最大个数,然后设置SEMMNS为此值加上一定的冗余量。

五、确定参数调整的效果

SCO UNIX操作系统提供了多种手段来帮助系统管理员对系统核心参数进行调整。

1、 sar命令

sar命令在文章中多次提到,建议读者要熟悉sar命令的-u、-b、-d、-v、-m、-p和-r选项。

2、 vmstat命令

vmstat可以提供系统中有关进程、调页、CPU和陷阱活动的统计数据。Vmstat提供的最有效的信息是通过该命令的-s选项产生的。

总之,系统操作员要根据应用系统的不同及时调整系统操作参数,特别是在运行数据库时。

【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】eton 回复于:-01-09 13:00:17good

ban76 回复于:2004-01-09 14:34:45:lol:

好!!!!

zhkun 回复于:2004-01-09 17:25:09我的sco505服务器,就是带150个终端,兄弟你看通过哪些命令可以观察系统的性能,调整哪些参数,使我的服务器运行在最佳状态。

咱不来那一套理论行不行?咱整点实在的。等您坐谈论道...........................

zhkun 回复于:2004-01-09 17:33:39今天说调这个参数,明天说调那个参数,咱就来点实际的,你说我该通过哪些命令进行观察和判断,然后怎么修改吧,waitting..................................

zhkun 回复于:2004-01-10 10:17:26I waitting ......

zhkun 回复于:2004-01-11 15:44:27waitting ......

怎么没有了,unix_sco 老师我waitting.........

unix_sco 回复于:2004-01-11 21:45:01系统操作员要根据应用系统的不同及时调整系统操作参数。比如MAXUP改为100以上,以应对sco505服务器带150个终端,因进程太多而系统死锁。当然这些参数的调整时机,与你的机器配置、档次(如CPU数量、内存大小、CPU档次等等)有一定的关系。

jxp 回复于:2004-01-12 08:14:52顶,这篇是好文章,建议加精!

zhkun 回复于:2004-01-12 08:43:18咱不整哪些虚无飘渺的、无边无际的、不着边际的东西,俺就需要实际的。使用哪些命令可以观察、判断,从而得出可以调整什么什么的参数。就是增加某些参数,可以说说为什么吗?

zhkun 回复于:2004-01-12 09:00:20一直waitting.........................

zhkun 回复于:2004-01-13 16:46:50一直waitting.........................

sindney 回复于:2004-01-14 10:01:06不错!!有帮助。初学什么都是新鲜的!

yutian 回复于:2004-01-14 10:24:06好东西

zhkun 回复于:2004-01-14 11:41:20咱不整哪些虚无飘渺的、无边无际的、不着边际的东西,俺就需要实际的。使用哪些命令可以观察、判断,从而得出可以调整什么什么的参数。就是增加某些参数,可以说说为什么吗?

sidr 回复于:2004-01-14 15:26:56照单全收!thanks!

原文转自:www.ltesting.net

篇4:windows物理内存、核心内存、系统

在windows任务管理器的性能选项卡中有物理内存、核心内存、系统这三类数据,

1。物理内存

a.总数 系统的物理内存的容量,其中一部分内存被硬件占用

b.已缓存 是指系统所加载的内容

c.可用 表示应用程序能够直接使用的可用物理内存容量

d.空闲 表示当前物理内存中新近释放出来的容量,

2。核心内存

a.分页数 内核模式的组件位于页面文件的容量(被分页交换到页面文件中的内容)

b.未分页 表示内核模式的组件位于物理内存的容量

3。系统

a.提交 分别表示当前使用的虚拟内存数,以及系统所有的内存数

(物理内存加上有效的页面文件数量)

篇5:........Windows系统

........

CNL 回复于:-10-21 16:28:36谢谢共享,需要的快看啦!

AnEagle 回复于:2004-10-27 17:21:25具体的实施步骤和分析见“濉溪县农信联社业务网主机系统性能优化实施方案”

楼主太幽默了,在哪里找到的?

zhaobincn 回复于:2004-11-07 02:26:00SKKEEP兄弟 你已收藏完了吧

zhyesno 回复于:2004-11-07 08:44:29呵呵,收藏一下,

........Windows系统

。。:)

原文转自:www.ltesting.net

篇6:[]UNIX系统开发gcc参数详解Windows系统

[版本]-0.13 [声明] 这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用它不过,我

[版本] -0.13

[声明]

这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos 命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用它 不过,我会慢慢的补齐的.哈哈 如果你要转在本文章请保留我email(pianopan@beeship.com)和文章的全面性.

[介绍]

gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步

1.预处理,生成.i的文件[预处理器cpp]

2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]

3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]

4.连接目标代码,生成可执行程序[链接器ld]

[参数详解]

-x language filename

设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用,

可以使用的参数吗有下面的这些

`c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `assembler-with-cpp'.

看到英文,应该可以理解的。

例子用法:

gcc -x c hello.pig

-x none filename

关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型

例子用法:

gcc -x c hello.pig -x none hello2.c

-c

只激活预处理,编译,和汇编,也就是他只把程序做成obj文件

例子用法:

gcc -c hello.c

他将生成.o的obj文件

-S

只激活预处理和编译,就是指把文件编译成为汇编代码。

例子用法

gcc -S hello.c

他将生成.s的汇编代码,你可以用文本编辑器察看

-E

只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.

例子用法:

gcc -E hello.c > pianoapan.txt

gcc -E hello.c | more

慢慢看吧,一个hello word 也要与处理成800行的代码

-o

制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感,改掉它,哈哈

例子用法

gcc -o hello.exe hello.c (哦,windows用习惯了)

gcc -o hello.asm -S hello.c

-pipe

使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问题

gcc -pipe -o hello.exe hello.c

-ansi

关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inline typeof关键字,以及UNIX,vax等预处理宏,

-fno-asm

此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作关键字。

-fno-strict-prototype

只对g++起作用,使用这个选项,g++将对不带参数的函数,都认为是没有显式的对参数的个数和类型说明,而不是没有参数.

而gcc无论是否使用这个参数,都将对没有带参数的函数,认为城没有显式说明的类型

-fthis-is-varialble

就是向传统c++看齐,可以使用this当一般变量使用.

-fcond-mismatch

允许条件表达式的第二和第三参数类型不匹配,表达式的值将为void类型

-funsigned-char

-fno-signed-char

-fsigned-char

-fno-unsigned-char

这四个参数是对char类型进行设置,决定将char类型设置成unsigned char(前两个参数)或者 signed char(后两个参数)

-include file

包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以用它设定,功能就相当于在代码中使用#include

例子用法:

gcc hello.c -include /root/pianopan.h

-imacros file

将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中

-Dmacro

相当于C语言中的#define macro

-Dmacro=defn

相当于C语言中的#define macro=defn

-Umacro

相当于C语言中的#undef macro

-undef

取消对任何非标准宏的定义

-Idir

在你是用#include“file”的时候,gcc/g++会先在当前目录查找你所制定的头文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他

回先在你所制定的目录查找,然后再按常规的顺序去找.

对于#include,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺省的头文件目录查找

-I-

就是取消前一个参数的功能,所以一般在-Idir之后使用

-idirafter dir

在-I的目录里面查找失败,讲到这个目录里面查找.

-iprefix prefix

-iwithprefix dir

一般一起使用,当-I的目录查找失败,会到prefix+dir下查找

-nostdinc

使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头文件的位置

-nostdin C++

规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创libg++库使用

-C

在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的

-M

生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c来测试一下,很简单。

-MM

和上面的那个一样,但是它将忽略由#include造成的依赖关系。

-MD

和-M相同,但是输出将导入到.d的文件里面

-MMD

和-MM相同,但是输出将导入到.d的文件里面

-Wa,option

此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选项,然后传递给会汇编程序

-Wl.option

此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选项,然后传递给会连接程序.

-llibrary

制定编译的时候使用的库

例子用法

gcc -lcurses hello.c

使用ncurses库编译程序

-Ldir

制定编译的时候,搜索库的路径,

比如你自己的库,可以用它制定目录,不然

编译器将只在标准库的目录找。这个dir就是目录的名称。

-O0

-O1

-O2

-O3

编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高

-g

只是编译器,在编译的时候,产生调试信息。

-gstabs

此选项以stabs格式声称调试信息,但是不包括gdb调试信息.

-gstabs+

此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.

-ggdb

此选项将尽可能的生成gdb的可以使用的调试信息.

-static

此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么

动态连接库,就可以运行.

-share

此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.

-traditional

试图让编译器支持传统的C语言特性

[参考资料]

-Linux/UNIX高级编程

中科红旗软件技术有限公司编著.清华大学出版社出版

-Gcc man page

[ChangeLog]

-2002-08-10

ver 0.1 发布最初的文档

-2002-08-11

ver 0.11 修改文档格式

-2002-08-12

ver 0.12 加入了对静态库,动态库的参数

-2002-08-16

ver 0.16 增加了gcc编译的4个阶段的命令

运行 gcc/egcs

**********运行 gcc/egcs***********************

GCC是 GNU 的 C 和 C++ 编译器。实际上,GCC 能够编译三种语言:C、C++ 和 Object C(C 语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。

如果你有两个或少数几个 C 源文件,也可以方便地利用 GCC 编译、连接并生成可执行文件。例如,假设你有两个源文件 main.c 和 factorial.c 两个源文件,现在要编译生成一个计算阶乘的程序。

代码:

-----------------------

清单 factorial.c

-----------------------

int factorial (int n)

{

if (n <= 1)

return 1;

else

return factorial (n - 1) * n;

}

-----------------------

清单 main.c

-----------------------

#include

#include

int factorial (int n);

int main (int argc, char **argv)

{

int n;

if (argc < 2)

{

printf (“Usage: %s nn”, argv [0]);

return -1;

}

else

{

n = atoi (argv[1]);

printf (“Factorial of %d is %d.n”, n, factorial (n));

}

return 0;

}

-----------------------

利用如下的命令可编译生成可执行文件,并执行程序:

$ gcc -o factorial main.c factorial.c

$ ./factorial 5

Factorial of 5 is 120.

GCC 可同时用来编译 C 程序和 C++ 程序。一般来说,C 编译器通过源文件的后缀名来判断是 C 程序还是 C++ 程序。在 Linux 中,C 源文件的后缀名为 .c,而 C++ 源文件的后缀名为 .C 或 .cpp。但是,gcc 命令只能编译 C++ 源文件,而不能自动和 C++ 程序使用的库连接。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程序会自动调用 gcc 实现编译。假设我们有一个如下的 C++ 源文件(hello.C):

#include 

void main (void)

{

cout << “Hello, world!” << endl;

}

则可以如下调用 g++ 命令编译、连接并生成可执行文件:

$ g++ -o hello hello.C

$ ./hello

Hello, world!

**********************gcc/egcs 的主要选项*********

gcc 命令的常用选项

选项 解释

-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,

例如 asm 或 typeof 关键词。

-c 只编译并生成目标文件。

-DMACRO 以字符串“1”定义 MACRO 宏。

-DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。

-E 只运行 C 预编译器。

-g 生成调试信息。GNU 调试器可利用该信息。

-IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。

-LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。

-lLIBRARY 连接时搜索指定的函数库LIBRARY。

-m486 针对 486 进行代码优化。

-o FILE 生成指定的输出文件。用在生成可执行文件时。

-O0 不进行优化处理。

-O 或 -O1 优化生成代码。

-O2 进一步优化。

-O3 比 -O2 更进一步优化,包括 inline 函数。

-shared 生成共享目标文件。通常用在建立共享库时。

-static 禁止使用共享连接。

-UMACRO 取消对 MACRO 宏的定义。

-w 不生成任何警告信息。

-Wall 生成所有警告信息。

【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】

原文转自:www.ltesting.net

请教!Windows系统

强行卸载文件系统Windows系统

系统的安全检查Windows系统

系统管理员的日常工作Windows系统

北风那个吹。。。。。。Windows系统

拆解Windows Vista系统文件夹

Windows优化系列之系统加速

SA239第15章读书笔记Windows系统

SA239第16章读书笔记Windows系统

SA239第3章读书笔记Windows系统

SCO UNIX 系统核心参数的意义Windows系统(共6篇)

欢迎下载DOC格式的SCO UNIX 系统核心参数的意义Windows系统,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档