Buffers Management 缓存区管理参数包括:
NBUF:total system buffers the value is wrrenty determined at system start up
????以KB为单位,定义系统启动时分配的全部缓存区的数量.buffer cache是硬盘和用户地址空间之间的临时缓存区域.NBUF控制buffer cache的数量.改变NBUF必须同时改变NHBUF参数,通常NBUF/NHBUF约等于4.
????系统引导时所显示的"kernel i/o bufs"表示buffer cache的大小,在文件/usr/adm/messages中也记录了buffer cache的大小.增加buffer cache的大小,可以提高buffer cache的使用频率,减少硬盘的读写次数,从而整体提高硬盘的I/O性能.使用命令sar -b可以获得系统buffer cache使用频率的有关报告.
????通常情况下,系统buffer cache的数量为300~600,在大型的服务器系统上buffer cache的数量为8000或者更多,NBUF缺省值设置为0,表示系统在引导时自动设置buffer cache的大小.
NHBUF:hash buffers(for disk block sorting)
????表示系统上有多少个混队队列要分配,每一个混队队列占用8个字节的内存.NHBUF必须是2的乘幂,取值范围是32~524288,缺省值为0,表示系统在引导时自动设置NHBUF的大小.
????在单CPU的计算机系统上,NHBUF的值必须少于NBUF大小的1/2.
????在多CPU的计算机系统上,NHBUF的值一般设置为单CPU情况下设置的2倍以上,这可以减少需要访问同一混对队列的多个进程之间的可能链接.
NMPBUF:number of dmaable page for scatter-gather and dma reguests
????以4KB内存页面为单位,定义16KB簇缓存区、4KB传输缓存区transfer buffer以及1KB复制请求缓存区copy request buffer的数量.如果系统上建立了许多用户,以及系统内存大于16MB,NMPBUF的数量不能少于40.NMPBUF的缺省值为0,这种情况下,系统在启动时,根据内存数量的多少,将NMPBUF设置为40~64之间的某个数值.NMPBUF的最大取值为512.
PLOWBUFS:Percentage og buffers,below 16MB
????以百分比的形式,表示第一个16MB的RAM中,所包含的buffer cache数量.如果系统中硬盘等外围设备的控制器不能执行DMA到内存的操作(例如24位地址控制器),那么应该将PLOWBUFS值尽可能地设置的大些,如果允许,可以把PLOWBUFS值设置为100,这样可以消除16MB以上内存和复写内存copy buffer之间的粗菩枰?PLOWBUFS的取值范围是1~100,缺省值为30.系统内存多于16MB,可以调整PLOWBUFS的值,否则建议使用缺省值.
PUTBUFSE:Size of the circular buffer putbuf
????这个参数确定循环缓冲区PUTBUF的大小,PUTBUF包含了最近的由操作系统传输给终端的PUNBUFSE自负,可以使用crash(ADM)查看PUTBUF的内容.PUTBUFSE缺省值是2000,最大值是10000.
MHINODE:inode hash table size
????确定inode hash table的大小,MHINODE的取值必须是2的乘幂,取值范围是64~8192,缺省值是128.
BDFLUSHR:interval in secouds between bdflush being run
????这个参数以秒为单位定义系统守护进程bafflush的运行时间长度,既定以buffer cache中的内容写入硬盘的时间.BDFLUSHR必须和NAUTOUP联合调整.取值范围是1~300秒,缺省值为30秒.加大该值会降低硬盘性能,增大数据丢失概率.如果将BDFLUSHR设置为300秒,平均而言,buffer cache中大约150秒的数据将丢失.
NAUTOUR:age,in secouds,tat a delayed-write buffer must be before bdflush writes it out
????以秒为单位,定义缓冲区数据的寿命,既定义文件系统自动更新的时间间隔.其值大小应该同BDFLUSHR匹配.只有当bdflush守护进程运行,并且缓存区被安排了一段NAUTOUR时间或者更长的时间用于写操作,缓存区里的数据才被写入硬盘.也就是说,并不是所有的写缓存区在bdflush守护进程运行时都会被更新.因为bdflush守护进程运行的时间相对NAUTOUP时间短一些,这样就可以实现某个进程对缓存区多次进行写操作,减少对硬盘的实际写操作.
????如果减少BDFLUSHR/NAUTOUP比值,实际的硬盘读写次数也会减少,系统的I/O性能将得到提高,但I/O过程的可靠性将降低.如果增加BDFLUSHR/NAUTOUP比值,系统的I/O过程的可靠性会得到提高,但I/O性能将下降.
????NAUTOUP取值范围是0~60,缺省值是10.