还剩32页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
系统性能的优化Informix接下来,讲述与系统性能关系比较紧密的几点1系统参数的设置2Solaris因为在不同informix版本下,Solaris内核参数的设置可能不同,建议从当前安装版本的Informix目录下类似于release/en_us/0333/IDS_
7.3的文件中获取相关信息值说明在主备机上分别用身份登录后,root编辑忙文件调整系统参数,/e/system确保文件中存在以下内容system参数名称shmsys:shminfo_shmmax2048000000共享内存段的最大值,一般为系统内存的一半semsys:seminfo_semmni4096系统范围内设置信号量集的最大数目semsys:seminfo_semmns4096系统中(信号量)的最semaphores大个数数据结构数量semsys:seminfo_semmnu4096undosemsys:seminfo_semume64semsys:seminfo_semmsl100系统范围内信号量集中信号量的数目共享内存的最小值shmsys:shminfo_shmmin100系统中共享内存段的最大个数shmsys:shminfo_shmmni100shmsys:shminfo_shmseg100每个用户进程可使用的最大共享内存段数目是系统线程的和种,他的任务就是将系统缓冲区池()中被
4.3Page CleanerBuffer Pool修改过的页面刷新到磁盘上,以使内存中的数据和磁盘上的数据保持一致.该参数的值最好是等同于有在其上存储的活跃的磁盘数目换言之,该DBSpace参数决定于独立的通道.I/
04.4RES IDENT该参数用于指定是否要求共享内存中的可驻留部分(Resident Portion)必须驻留在物理内存中.如果该值设置为则要求其必须驻留在物理内存中;如果设置其值为则
4.5Y,N,Resident的页面可以被虚存管理系统换出到磁盘上.Portion将强制驻留在物理内存中的优点是可以提高对该部分内存区域访
4.6Resident Portion问的速度(访问命中率为)由于该部分是共享内存中最主要的一部分,100%,所以这样做有利于系统性能的提高;MULT IPROSESSOR
4.7指明服务器是单处理器还是多处理器.单处理器设置为多处理器设置为
4.80,
1.
4.9AFF.NPROCS/AFF.SPROC当参数MULTIPROSESSOR设置为1,B[J Informix Dynamic Server系统运行在一个多处理器服务器上,我们可以利用操作系统支持的处理器和(Affinity)特性将CPUVPC(注:CPU VPS:最重要的一类虚拟处理器类,包含所有用户线程及部分系统线程,在该虚拟处理器类中不允许有阻塞性系统调用出现.)同某些处理器进行绑定,与CPU VPC绑定的处理器越多,CPU VPC中的线程所能获得的运行机会也就越多,该VPC的重要性也就越突出.AFF_NPROCS用于指定服务器上将有几个处理器被用于CPU VPC进行绑定.该参数不能超过实际处理器的个数.如果该参数的值为0,则意味着CPU VPC被绑定在一个特写的处理器上.后一个参数AFF-SPROC用于指定服务器上从哪一个编号开始的那几个处理器将同CPU VPC进行绑定.处理器的编号从0开始.譬如,服务器上有四个处理器,它们分别编号0,123,如果AFF_NPROC的值为3而参数AFF_SPROC的值为0,则意味着编号0,1,2的三个处理将与CPUVPC进行绑定.注意:进行正理绑定以后,CPU VPC中的所有线程就能在绑定的儿个处理器这间自由迁移,而所有其它VPC中的所有线程都只能在剩余的处理器上运行,因此,在设置这两个参数时,至少要给其它VPC保留一个处理器以供其中的线程运行.
4.10NUMCPUVPS指定系统中CPU VPC的个数.如果服务器是一个单处理器或双处理器的机器,将该参数的值设为1,如果服务器的物理处理数较多,则可以多设儿个CPU VPC,最好是物理处理器个娄减一.注意:CPU VPC的数据不能多于系统中物理处理器的数目.
4.11SINGLE.CPU.VP指示系统中的CPU VPC是否是一个,如果只有一个该参数设为1,否则设为
0.
4.12N0AGE在操作系统对进程进行调度时,如果某个进程在过去一段时间经常占用CPU,则操作系统会降低它的优先级.将该参数设为1可屏蔽掉这一机制,使得操作系统在调度CPU VPC中的线程时不考虑其以前对CPU占用情况,从而使CPU VPC中的线程获得更多的运行机会.
4.13LRUS该参数用于指定系统中LRU队列的个数.LRU是Least Recently Used(最近最少使用)的缩写.当系统中所有的缓冲区都分配完毕以后,如果又由新的页面被读入内存,就必须进行替换,将某个不太重要的缓冲区中的页面覆盖掉.Informix Dynamic Server系统采用的替换策略就是LRU,即认为“最近最少使用(被访问厂的页面是最不重要的,这样的页面将被覆盖掉.系统中采用LRU队列来实现这一策略,所有缓冲区被安置在某一个LRU队列中,队列中越靠近”头上的缓冲区最近越少访问,一量某个缓冲区被访问后,就将其在队列中的位置向队列尾移动.系统中维护多条LRU队列,使得每条队列的长度缩短了;也有多个“头”可供选取进行替换,提高了系统的整体性能.建议:一般的应用系统,对于多处理器的服务器来说,最好将LRU队列的数目设置为CPUVPC的数目;而对于单处理器或双处理器的服务器来说,可将LRU队列的数目设为3或
4.特定的应用系统根据自己的应用特点设置该参数.
4.14LRU_MAX_DIRTY/LRU_MIN_DIRTY缓冲区的页面被修改后,为避免过于频繁地启动I/O,并不立即刷新回磁盘.系统每隔一段固定的时间后,会执行一个检查点(Check Point)操作潸所有被修改而末刷新的页面全部刷新到磁盘上.在两次检查点操作之间,可能会有许多页面被修改但不被刷新,我们称之为脏页面(Dirty),这样的脏页面多了以后,可供用于替换的干净页面就少了,系统进行替换时的效率就可能下降.因此,当系统中的脏页面达到一定比例时,系统就会启动Page Cleaner线程,刷新一些页面,保证系统中有一定比例的干净页面.LRU_MAX_DIRTY和LRU_MIN_DIRTY都是百分比,代表系统中脏页面在所有缓冲区中所占的比例.当系统中的脏页面的比例上升直至超过了参数LRU_MAX_DIRTY的值的时候,系统就会唤醒Page Cleaner线程,刷新脏页面;由于Page Cleaner线程的刷新工作,系统中的脏页面的比例又会回落,当系统中的脏页面的比例回落到参数LRU_MIN_DIRTY的值以下时,PageCleaner线程又开始睡眠,直到下一次被唤醒或检查点操作.
4.15但如果一次检查点过程很长,在此期间即使LRU的上下限都很低也不一定影响性能
4.16CHPTINTVL该参数用于指定系统中两次检查点操作之间的时间间隔.单位为秒.检查点是一个时间点,在这个时间点上,系统将把内存缓冲区所有的“脏”数据页刷新到磁盘上.Checkpoint的频率和持续时间会影响IDS的性能.因为在Checkpoint期间IDS禁止所有的数据库服务器进程进入临界区(Critical section,是指IDS的一段代码区,它包含一系列的磁盘操作,这些操作必须被当作一个单元来执行,它是为了保证物理上的一致性),这样用户进程可能会被中断,所以频繁出现Checkpoint会影响IDS的性能.然而,较少的Checkpoint的代价有二:操作系统失败后可能需要较长的快速恢复时间,它是由于物理日志较大及各Checkpoint之间的逻辑日志项数增加造成的;较大的物理日志需要较多的磁盘空间.调优的方法:首先利用Onstat-1检查自上次Checkpoint以来所使用的物理日志的页数Numpage字段值,如果新检查点开始时Numpage字段值就接近物理日志大小的75%,则Checkpoint很可能是由物理日志的活动引起的.此时可通过增加物理日志的大小和增加CKPTINTVL(在ONCONFIG文件中)值来减少Checkpoint出现的次数.反之,如果想增加Checkpo血的次数可通过进行上述相反的操作可根据应用的情况设置该值.
5.17PA.PAGES/PA.THRESHOLD在很多情况下,我们将要处理的数据是连续存放在磁盘上的.那么,在CPU处理完当前的页面转而处理下一个页面时,如果发现该页面不在缓冲区中,CPU就必须等待磁盘I/O将页面读入,这个等待的过程对于速度比磁盘I/O快上千倍的CPU来说是一种极大的浪费.假如我们在CPU正在处理缓冲区页面时,利用空闲的I/O预先将后续的页面读入到内存中来,就有可能避免这种浪费现象的发生.而”向前读”多少个页面在什么时机开始这种数据的“向前读”也是值得考虑的.PA.PAGES的值指示出在系统自动进行“向前读”时读取的页面数目,而参数PA.THRESHOLD的值指示出在还有多少个页面可供CPU处理时进行“向前读”,也就是协调CPU和磁盘I/O的速度,使之并行效率更高.如果不希望采取“向前读“策略,可以将参数PA.PAGES的值设置为
0.系统性能调优
6.Informix•要求管理人员应使用户尽可能遵守下面四条原则•在一个合理的时间间隔内,不要让一个事务一值被打开而不提交或回滚•一般不要使用作业控制机制来中止一个进程,除非用户确实想中止自己的作业•不要在经常备访问的表中进行大规模的更新在为一个应用规定特定的隔离级别之前,应先考虑它可能带来的存取问题现网上的数据库已经运行多时,性能肯定比没有初试运行时有所下降那么什
5.1么时候应该进行系统的性能调优或者设备扩容呢?数据库系统性能通常与、共享内存数据的存储和网络设置等四个方面有
5.2CPU直接的关系下面着重介绍通过配置参数和监控运行效率,Informix IDSInformix IDS来提高数据库的性能性能
5.3IO缓冲区读、写命中率
5.
3.1CACHE缓冲区读、写CACHE命中率表示已完成的读、写内存次数与读、写磁盘次数之比IDS对于每一个客户端的数据请求,都会现先在共享内存中查看结果数据是否存在,然后再从硬盘中将数据读取出来;操作完毕,也不是立即将数据写回硬盘,而是等到页刷新线程被激活时,“脏”数据才被写回硬盘而且,IDS也有数据预读功能,可以将当前数据所在的数据页及随后的一些数据页的数据一次性地读出来所以,如果大部分的数据都在共享内存中,将大大减少了操作数据,从而获得高性能使用“onstat-p”命令可以查看共享内存缓冲区的读、写命中率dskreads pagreadsbufreads%cached dskwritspagwrits bufwrits%cached
169251705332631292299.
9964920913257521211511894.
641.如果读的命中率小于95%1通过修改BUFFERS值,增大共享内存来获得更高的命中率在OLTP联机事务处理系统,Informix建议BUFFERS一般为实际的物理内存的20%至25%,以获得较高的性能2高速缓冲区百分比低于95%,用户应减低LRU_MAX_D1RTY,LRU_MIN_DIRTY值,缩小MLRU队列长度,来提高读性能
2.如果写的命中率小于85%,应增大以下参数值来提高写命中率1LRUS内存池由LRUS LeastRecentlyUsedQueues分开管理,如果LRU个数增大,则每个LRU的长度减少Informix建议LRUS为CPUVP个数的4倍2LRU_MAX_DIRTY和LRU_MIN_DIRTY:LRU队列中已修改的缓冲区的临界百分比一旦达到LRU_MAX_DIRTY,页刷新线程就被激活,将内存中的“脏”数据写回硬盘,此操作一直到LRU_MIN_DIRTY,刷新线程才被挂起3CKPTINTVL:增大此值以减少CHECKPOINT的频率同样的道理,增大物理日志,减少了的几
5.
3.24PHYSLOG CHECK POINT率但是,调整上述参数可能导致的持续时间的增大,反而影响
5.
3.3CHECK POINT了应用系统,此时需要权衡利弊,再作出决定如果读命中率高而写命中率很低,但的持续时间又比较长,此时的瓶颈一般在磁盘的CHECK POINT能力上,这种情况就要考虑设备扩容了I
5.
3.4ovbuff是用户进程试图获得共享内存区,但已无可用共享内存缓冲区的次数
5.
3.5ovbuff如果在使用命令时,输出结果中的应为或一个较小的正数onstat-p”ovbuff注上述参数只有用户进程在使用时查看才有效,如果在小时之内IDS24的值超过或则需要重新开始监控该字段在一个固定时间内的值ovbuff5060,可用先使其复零由于值表示已无可用缓冲区时试图onstat-z ovbuffIDS获得缓冲区的次数,如果值在一定时间内上升较快则说明要进行调ovbuff优了用户可通过增加文件中的增大以分配更多的共ONCONFIG BUFFERS享内存和
5.
3.6ovlock lockwaitsovlock是用户进程在操作数据时,试图获得锁,但未能获得的失败次数;lockwaits是等待锁的会话的次数若观察“onstat-p”的结果中这两个值之一大于0,则说明ONCONFIG文件中预先定义的LOCKS已被使用完,此时应该考虑增大LOCKS值,或者修改表的锁模式为表级锁以减少使用中所需的锁个数,但这会降低并发操作在TELLIN中,为了提高并发处理能力,对卡号信息表和经常操作的表,一般都采用行锁row如果LOCKS的数量已经远比达到预测中的呼叫能力所需要的LOCK大,但还是出现了oovlock大于0的情况,这时可能是某个异常应用占用了大量的锁资源,或者是它对某些表采取了表级的排它锁EXCLUSIVE LOCK,导致其它SESSION在访问此表时只能等待,这样,其它进程就被阻塞了,虽然CPU IDLE很高,但性能却严重下降以下内容描述使用onstat-u”和onstat-k”命令,查找出哪些进程在等待锁的方法:onstat-uUserthreadsaddress flagssessid ustrtty waittout locksnreads nwrite40072010•--P*-D71nformla-00035754007230…P…0Informix-0000040072770•-P—1fnfortatx•00000400726202InfonwH-0000040072td001nfonaix•00000400732808InfonwlM-0000040073630---P---91nfonvix-000D0400739e0—P*-D0Informix*0000040073d90*0Informix-00000»^bd414^V-BP-rn Isuto45020578804106221\0744fO-BF00400QO753bO・•・”•・8600200议4576D L--PR--^3l30007809-i2001HH1H128tot-il.l^ndM^u^concurrent|onstatLocks addresswt ownerIki1st typetr1snurn rowldkeyl/bs1z300b77do0\400741400HOR・S100021060300078280\40074140300b77M HDR*S101971220300b785s0\40074140300b7B28HDR*!X101e400•30dd44007576£4004140j30007854HOR^X101e41000300t79040400757600S100021060300b793D040075760300b79M S1019712206active.5000total8192hash buckets图1如何查找等待锁与占有锁的进程
1.根据onstat-u”的输出,会话号sessid为84的SESSION在等待锁资源300b78d
82.根据onstat-k”的输出,300b78d8的持有者是
400741403.在回到“onstat-u”的输出界面,40074140所对应的会话号是
81.这时,使用可以知道此会话所对应的进程在干什么
5.
3.74“onstat-gses81”如果确认为异常进程,要么使用命令将其终止,要么使用kill“onmode-z81”将此终止SESSION另外,观察”的输出中的可以知道当前是否发现有死锁的情
5.
3.8“onstat-p dltouts况在这里需要澄清一点,文件中的参数的意
5.
3.90NC0NFIG DEADLOAK_TIMEOUT义是当执行一个分布式的查询时,等待远端数据库响应的时间,并非在本地数据库或者网络数据库中执行一条语句可能等待锁的最大时间SQL
5.
3.10overuserthread该值应为否则表示用户试图连接的个数超过了配置的允许连接的个数最大连接个数配置o,由参数配置,其第二个和第三个参数的乘积决定了某种方式下最大连接数如NETTYPENETTYPE ipcshm,2,100,NETNETTYPE soctcp,2,100,CPU表示共享内存连接方式允许最大连接数为200个表示网络连接方式允许最大连接数为200个或????说明????NotesHeading如果中没有配置,则默认值为
5.
3.11nconfig50的频率
5.
3.12CheckpointCheckpoint的频率和持续时间会影响IDS的性能因为在Checkpoint期间IDS禁止所有的数据库服务器进程进入临界区critical section,是指IDS的一段代码区,它包含一系列的磁盘操作,这些操作必须被当作一个单元来执行,它是为了保证物理上的一致性,这样用户进程可能会被中断,所以频繁出现Checkpoint会影响IDS的性能然而,较少的Checkpoint的代价有两操作系统失败后可能需要较长的快速恢复时间,它是由于物理日志较大及各Checkpoint之间的逻辑日志项数增加造成的;较大的物理日志需要较多的磁盘空间调优的方法所以,在物理设备(内存、CPU和硬盘等)已确定的情况下,至少可以通过减少CHECK POINT的间隔和持续时间这两种方法,来减少CHECK POINT对系统的影响
1、分析onstat的输出,减少CHECK POINT的次数使用uonstat T”命令,输出结果中的numpages值表示自上一检查点以来所使用的物理日志的页数如果新检查点开始时numpages接近物理日志大小的75%,则检查点很可能是由于物理日志的活动而启动的,写磁盘动作发生在缓冲区没有充分被利用的情况下此时可以增加物理日志的大小或增加CKPTINTVL来减少检查点的次数反之,如果想增加Checkpoint的次数可通过进行上述相反的操作
2.减少CHECK POINT的持续时间减少修改和值可以减少
5.
3.13BUFFER,LRU_MAX_DIRTY LRU_MIN_DIRTY的持续时间假设设置为为CHECK POINTBUFFERS30000,LRU_MAX_DIRTY为那么,一次则有可能将页的60,LRU_MIN_DIRTY50,CHECK POINT18000数据写到硬盘中;如果将和减低为和LRU_MAX_DIRTY LRU_MIN_DIRTY1则依次最多只有页的数据被写到硬盘中0,CHECKPOINT300但并不是和、越小越好,它直
5.
3.14BUFFERS LRU_MAX_DIRTY LRU_MIN_DIRTY接影响了数据的读、写命中率CACHE线程个数
5.
3.15CLEANER在以下情况下应该考虑修改CLEANERS的配置
1.增大BUFFERS很有可能没有读、写提高命中率,或者提高极少,这种情况下增大BUFFERS并没有好处°
2.硬盘个数增多,对磁盘阵列容量进行了扩容对此,Informix有如下建议1)、若磁盘数小于20,每一个存储有数据的磁盘都应有一个CLEANERS2)、若磁盘数在20和100之间,每一个CLEANERS对应于2个磁盘)、个以上的磁盘,则一个对应于个磁盘
5.
3.163100CLEANERS4线程个数是否足够
5.
3.17AI0有时系统磁盘10并不是瓶颈,但是数据库的10性能上不去导致数据库整体性能太低Informix通过AIO异步的对用户的I/O请求进行服务来加速I/O处理的处理,这样一个虚处理器不必等待一个I/O结束就可以开始处理另一个I/O请求如果AI0的个数配置太少,则可能出现上述现象可以使用监控内存中的脏页情况,以确定是否工线程太少nstat-R LRUA40iin-wOl[scpxxb]:/home/scpxxbonstat-RInformix DynamicServer Version
7.
31.UC7A--On-Line--Up3days03:12:39--113816Kbytes8buffer LRUqueue pairspriority levels#f/m pairtotal%of lengthLOW MED_LOW MED_HIGH HIGH0f
5000100.0%500030201940400001m
0.0%00012f
5000100.0%50003042191840013m
0.0%0000014f
5000100.0%50003065189243015m
0.0%000000dirty,40000queued,40000total65536hash buckets,2048buffer sizestartclean at2%of pairtotal dirty,or100buffs dirty,stop at1%一般的该命令显示的结果红色部分应该总小于工否则执行写请求的BUFFERS*LRU_MAX_D RTY%,page不够,或是线程数不够,也可能是执行物理写入的线程数不够,或者磁盘控制器存cleaner AIOVP KAIO在问题或系统磁盘工本身达到瓶颈0确定是否是由于工数目太少引起磁盘工太忙,可通过命令来探测从磁盘读写的长队A0/0nstat-g ioq列,如果对应工的队列长度值太大(一般大于)并且不断增加则说明工较忙,需要修改A len25A0onconf配置文件中参数增加的数量ig NUMAIOVPSAI042iin-wOl[scpxxb]:/home/scpxxbonstat-g ioqInformixDynamicServer Version
7.
31.UC7A--On-Line--Up3days03:18:24--113816KbytesAIO I/O queues:q name/id lenmaxlen totalopsdskread dskwritedskcopyadt0000000msc001126000aio00134820pio0017070lio00150105010数据库参数的设置3Informix参数类型参数参数值参数说明数据空间名称ROOTNAME rootdbsROOT数据空间所在路径,根据实际情况ROOT/dev/vx/rdsk/sms_d填写ROOTPATHg/lv_rootdbs配置参ROOTDBS数据空间偏移量,单位为ROOT kbyteso数ROOTOFFSET0数据空间大小,单位为ROOT kbytesROOTSIZE256000镜像标志表示有镜像,表示没有镜像10说明我们让磁盘管理系统或操作系统处理磁盘镜像,不让数据库服务器对磁盘块进行磁MIRROR0盘镜像,因此该参数一般设置为0o磁盘镜像参数我们让磁盘管理系统或操作系统处理磁盘镜像,不让数据库服务器对磁盘块进行磁盘镜像,因此该参数一般设置为0o空值镜像路径MIRRORPAT镜像设备偏移,单位为kbytesMIRROROFFSE0T物理日志所在的在初始化后,需要DBSoPHYSDBS rootdbs(初始值)修改为phydbSo物理日志大小,单位为在初始化物理日志参数kbytes后,按照预先的规划使用命令行方式进行修改修改后,系统自动更新该配置项内PHYSFILE180000容逻辑日志个数在初始化后,按照预先的规划使用命令行方式进行修改修改后,LOGFILES3系统自动更新该配置项内容逻辑日志参数逻辑日志大小,单位为kbytesLOGSIZE30000MSGPATH/opt/informix/sms_o Informix日志文件所在路径诊断参数nline.log控制台路径CONSOLE/dev/consolegfd303458445130gfd401636300gfd5014400gfd6034130gfd7016201841333868460gfd8013496471250高效率的日志缓冲区
5.
3.18物理日志和逻辑日志的缓冲区空间并不是越大越好,我们的目标是在页刷新进程将共享内存的数据写入磁盘时,75%的物理日志已被使用使用“onstat-1”命令时应该观察以下两个输出bufsize:物理或逻辑日志缓冲区的大小pages/io:每次10操作写入磁盘的平均页数若pages/io的值等于或大于bufsize的百分之七十五,则每次写磁盘操作平均要延迟到缓冲区几乎满才执行,可以尝试增大缓冲区大小,使每次缓冲区在写操作之前能接收更多的数据,减少物理10次数,来达到提高缓冲区效率的目的若pages/io的值小于bufsize的百分之七十五,则写磁盘操作平均发生在缓冲区未充分利用的情况下,可以尝试减少缓冲区,使其接近pages/IO的近似值,来提高缓冲区的利用效率,而且,还可以为其它应用释放多余的共享内存空间
5.
3.19正是因为使用了缓冲区机制,提供了性能,同时也带来了隐患
1.
1.20Informix如果数据库在模式下,就算数据库被体面地使用buffered loggingSERVER”命令终止,但缓冲区的数据有可能没有刷新到硬盘上,再次起来时,“onmode-yk最后提交的部分数据也会丢失同样的道理,除非使用了和也是不会在主、备数据库DDR unbufferedlogging,HDR进行实时的数据同步,因此在切换时,可能会造成数据丢失数据库表空间的分布是否合理
1.
1.21经过一段时间的运行,各表中的数据增长是不均匀的,且有可能产生不同表空
5.4间相互交错在一起的现象(暂称为“碎片”),这样会降低系统的性能使用uoncheck或指定的表名”命令可以对数据库的各表的分布情况,再结-pe uonstat-pt EXTENT合,看在哪个上的读、写比较频繁,以决定对哪些表进行空“onstat-g iof”DBSPACE间的分离,尽量将数据量大且访问频繁的表分开在不同的充分利用磁DBSPACES,盘阵列的多磁盘控制器特性,减少相互之间的影响在建立数据库表时,如果能预见到表的数据量和访问的频率,这时就应该将此
5.5表建立在不同的了DBSPACE内存性能
5.6驻留内存部分的参数
5.
6.1驻留内存部分又可以细分为共享内存头、缓冲区,逻辑日志缓冲区、物理日志缓冲区、锁共享内存头在共享内存中包含所有其他结构的描述,还包含到这些结构位置的指针共享内存头是在初始化Informix IDS时创建的,并且不能进行调优缓冲区存储Informix IDS从dbspace所读取的数据,是数据库对象数据,如表的数据或索引数据缓冲区占用了驻留内存中最大的部分所有的缓冲区被组织到一个较长的最近最少使用least-recently-used,LRU缓冲区队列中,并通过最近最少使用LRU机制进行管理定义缓冲区的参数是BUFFERS称作指定共享内存缓冲区的最大数目,该参数对数据库I/O和事务处理吞吐量有明显的影响但是,如果分配过多的缓冲区会影响到操作系统的内存并导致过多的交换内存页面的活动一般建议设置为物理内存的20%到25%逻辑日志缓冲区是用来存储最后一次备份开始的逻辑日志记录的逻辑日志记录保存了SQL语句对数据库数据进行的修改在初始化Informix IDS时,它创建三个逻辑日志缓冲区,以循环方式运作,来确保将获得的每一条逻辑日志记录都被刷新到磁盘中LOGBUFF定义了逻辑日志缓冲区的数量,缓冲区的大小决定了它被添满的频率,从而决定了它必须被刷新到硬盘上的逻辑文件中的频率一般情况下,Informix IDS建议设置为16KB或32KB
5.
6.2物理日志缓冲区在Informix IDS修改或着删除记录之前,将该记录的原始值存入到物理日志缓冲区中,在事务失败时,用于恢复数据,以保持数据的一致性在Informix IDS初始化时,创建了两个物理日志缓冲区,也以循环的方式运作与物理日志缓冲区对应的参数是PHYSBUFFo
5.
6.3锁包含可用锁的数量,每个用户对数据库的连接并执行数据库的操作,都需要一定数量的锁在Informix IDS
9.2以后的版本中,当用户的锁不够时,可以动态的分配锁的数量在以前的版本中,该数值是固定不变的与锁对应的参数是LOCKS-般情况下设置为2000到8000000个共享内存虚拟存储区的参数
5.
6.4共享内存虚拟存储区存储各种各样的不同数据,可以分为内部表、较大的缓冲区、会话数据、线程数据(堆栈和堆)、数据分布缓存器、字典缓存器、SPL例程缓存器、SQL语句缓存器、排序池、全局池影响虚拟存储区的参数是SHMADD.SHMVIRTSIZE、STACKSIZEOSHMVIRTSIZE定义了分配给Informix IDS共享内存的虚拟存储区的大小Informix IDS在处理大型查询或高峰负荷的需要增加共享内存给虚拟存储区,但是共享内存的分配需要增加事务处理的时间,故在设置SHMVIRTSIZE值时,一般考虑能满足一个日常操作的需要STACKSIZE指示了数据库服务器为每个活动线程指派的初始堆栈的大小如果将该参数配置得过小,那么线程将无法拥有执行其程序的足够内存空间,而且它将干扰其他线程SHMADD定义了Informix IDS自动加到虚拟存储区的共享内存增量的大小在增加共享内存时,要占用CPU周期;每次的增加量越大,增加次数就越少,留给其它的进程的内存也越少所以•般采用大的增加量但是在内存负荷很重时,少量增加使其他程序更好的共享内存资源所以,如果实际内存小于等于256MB,则建议SHMADD使用缺省值8192KB;如果在256MB到512MB之间,则设置为16384KB;如果大于512MB,则设置为32768KB可以用命令onstat-g seg来显示IDS当前共享内存虚拟区中的段的数目在初始化时,如果定义的虚拟内存区尺寸太小,会自动向虚拟
5.
6.5Informix IDS区附加其他操作系统段,虚拟内存中的段过多从而引起数据库的整体性能下降所以在初始化时,将虚拟内存区的尺寸配置得足够大,以避免进行动态的分配共享内存段在该列的输出中,列为是驻留内存段,是虚拟内存段,是消class RV M息内存段如果显示的虚拟内存段多于三个,那么就需要提高配置文件中参数的值SHMVERSIZE命令是监控内存的另一个命令其输出结果中的两个%显示了
5.
6.6onstat-p cache读写高速缓存比例的百分比,一般在到之间,如果低于要调节80%90%80%,BUFFERS参数值字段表明在使用了最大数量的锁之后尝试过再使用锁的次数,ovlock IDS如果该数字非零,可能需要提高配置文件中参数的值字段表明LOCKS ovbufIDS在使用了最大数量的缓冲区之后尝试过再使用缓冲区的次数如果该数字很大,比如说超过就需要提高参数,以便用户在需要从磁盘访问数据时100000,BUFFERS不必等待缓冲区在监控内存的使用情况时还可以采用系统命令Unix vmstato共享虚拟内存
5.
6.7可以用命令onstat-g seg来显示IDS当前共享内存虚拟区中的段的数目Informix IDS在初始化时,如果定义的虚拟内存区尺寸太小,会自动向虚拟区附加其他操作系统段,虚拟内存中的段过多从而引起数据库的整体性能下降所以在初始化时,将虚拟内存区的尺寸配置得足够大,以避免进行动态的分配共享内存段在该列的输出中,class列为R是驻留内存段,V是虚拟内存段,M是消息内存段如果显示的虚拟内存段多于三个,那么就需要提高配置文件中SHMVERSIZE参数的值如果有连续的虚拟内存段的可用BLOCK超过200,此时,可以据此公式来减少SHMADD或SHMVIRTSIZE共享内存虚拟段主要用做内存池以支持会话和线程内存池的分配和释放是动态进行的内存池的大小为8k如果已有虚拟段耗尽,动态服务器可以根据0NC0NFIG文件中的相关参数再次动态申请虚拟内存段的初始大小由参数SHMVIRTSIZE决定,其增量由参数SHMADD决定,但整个共享内存段的大小不能超过SHMTOTALo于此,在性能优化方面,Informix有如下建议
1、在Informix运行过程中,如果有另外的虚拟内存段被分配,此时应该增大ONCONFIG文件中的SHMVIRTSIZE值,可以使用以下公式计算出新的SHMVIRTSIZESHMVIRTSIZE=SHMVIRTSIZE+(SHMADD*新增的虚拟内存段个数)
2.如果有连续的虚拟内存段的可用BLOCK超过200,此时,可以据此公式来减少SHMADD或SHMVIRTSIZE:SHMADD=SHMADD-可用的BLOCK数-200*8参考命令onstat-g seg和onstat-g ses定义了自动加到虚拟存储区的共享内存增量的大小
5.
6.8SHMADD Informix IDS在增加共享内存时,要占用周期;每次的增加量越大,增加次数就越少,留CPU给其它的进程的内存也越少所以一般采用大的增加量但是在内存负荷很重时,少量增加使其他程序更好的共享内存资源所以,如果实际内存小于等于256MB,则建议使用缺省值;如果在到之间,则设置为SHMADD8192KB256MB512MB如果大于则设置为16384KB;512MB,32768KB检测数据库是否无法分配内存
5.
6.9如果内存充足数据库日志中打印如下日志10:39:21shmat:[EMFILE]
[24]:out ofshared memorysegments,check systemSHMSEG则说明数据库申请的内存达到了操作系统的某种限制可以使用进行监控㊀nstat-g sgSUNWS1%onstat-g seg一一一一InformixDynamicServer Version
7.
31.UD2R1On-Line Up27days14:13:51--28768KbytesSegment Summary:id keyaddr sizeovhd classblkused blkfree01381386241aOOOOOO1225523220912R1488811381386242abbOOOO8192000732V1000021381386243b380000622592616M68831381386244b4180008388608732V190834Total:—-29458432——2746850*segment lockedin memory1分析无法分配内存是否存在如下原因2在HP下,32位的数据库使用的内存总数不能超过
1.75G3IBM下,分配的V段内存是否超过11个SUN下好像限制是96个4分配的V段个数是否超过内核参数SHMMNI限制5数据共享内存参数SHMVIRTSIZE/SHMADD是否超过内核参数SHMMAX限制6数据库申请的共享内存总量是否超过数据库参数SHMTOTAL配置,一般改参数设置为0,表示不限制7实际的物理内存是否足够性能
5.7CPU如果上述的任何方面的性能存在问题,都有可能导致数据库的性能较
5.
7.1CPU差,进程的占用率较高性能的各个方面是互相影响的,以下简oninit CPU单的描述影响性能的另外几个方面CPU虚拟处理器的参数
5.
7.2CPU CPUVPNUMCPUVPS:定义了Informix IDS开始启动的CPU VP的数量一般情况下不能超过系统CPU的个数,对于单或双CPU的计算机系统,建议设置NUMCPUVPS是1或者2,即使用一个或两个CPU VP;对于有4个以上CPU,建议设置NUMCPUVPS的值等于处理器总数减1SINGLE_CPU_VP:定义了多CPU VP0和单CPU VP1设置MULTIPROCESSOR:定义了多个CPU VP1还是单个CPU VP0AFF_NPROCS:定义了可以绑定到CPU VP的CPU的数目AFF_SPROC:定义了把连续的儿个CPU AFF_NRPOCS参数定义的值中第一个CPU的序号连接到CPU VP上例如,某个系统所在的硬件平台有个设置
5.
7.3Informix IDS4CPU,AFF_NPROCS为即可用于绑定的有个,设置为3CPUVP CPU3NUMCPUVPS3,AFF_SPROC设置为则个需要绑定到上,是从第个开始,绑定到1,3CPUVP CPU2CPU第
二、
三、四个上设置为CPU SINGLE_CPU_VP0对于磁盘虚拟处理器的配置
5.
7.4I/O AIOVPNUMAI0VP指定系统上AIO/KAIO虚拟处理器的数目,如果Informix IDS采用裸设备存储,可以设置成2在以后的版本中将、、、
5.
7.5Informix IDS
9.2NUMCPUVPS NOAGEAFF_NPROCS、用参数代替当处于的状态AFF_SPROC NUMA10VP VPCLASSInformixIDSonline下,可以使用+/-#来增加或者减少虚拟处理器#代表增加或者减少nmode-p虚拟处理器的个数各类线程的个数是否足够
5.
7.6如前所述,VP有CPU、SHM和SOC等类型,使用“onstat-g rea”命令可以观察在READY状态的线程数目,如果某一类的线程数目一直在增长,则说明分配给此类线程的数目偏小,应该增加此类线程的数目了此命令的的类似输出如下Ready threads:tid tcbrstcb prtystatus vp-class name65a63a84064464ready lepusqlexec33672a20409cb4ready3cpu sqlexec如果在一段时间内,CPU类的线程数目继续增长,可以考虑调大CPU类线程的数目,如在ONCONFIG中设置
5.
7.7NETTYPE onipcshm,130,CPU9参数配置对的影响
5.
7.8CPU1一般的,如果应用按照配置要求配置,从参数配置优化CPU的占用率,可能效果不是很明显此处简单介绍几个比较重要的参数配置2如果使用多CPU,对于MULTIPROCESSOR要求为1,但是旧M下建议使用03NUMCPUVPS表示CPU VP的个数,一般建议配置成cpu的个数-1或2,也就是真正处理应用提交的数据库操作的线程数当oninit进程占用的CPU比较高如95%以上,而其他未用于数据库操作的CPU比较清闲,可以调整此参数增加CPUVP的个数4SINGLE_CPU_VP一般配置为0表示优化器选择应用程序适当的访问方法,为(目前有线
5.
7.9OPTCOMPIND0推荐使用)表示即使在表扫描可能更快的情况下,优化器也不考虑成本选择索引扫描(嵌套循环连接)策略;为(目前无线推荐使用)表示优化器根据成本(主要2是)选择访问方式,即使表扫描锁住整个表表扫描的连接方式虽然会导致可重10复读临时的锁住连接涉及到的所有记录,会增加冲突的可能性,但是相对嵌套循环连接策略性能更高配置每个连接类型的轮询线程,改参数的配置对整的占用率
5.
7.10NETTYPE CPU影响很少,但是在某个已经被完全耗尽时,适当的配置可以平衡的负荷CPU CPU轮询线程可以在和两类上配置,为了获取最佳性能,建议只为NET CPU VP CPU VP分配一个轮询线程,其他的轮询线程都分配给每个轮询线程的连接数一般NET VPo建议不超过350o数据库的绑定技术
5.
7.11CPU在专用的数据库服务器上,一般除保留一个外,将数据库的分配到所有剩下的上会获CPU CPU VP CPU得最大的利用率可以通过配置绑定到固定的物理上,如在中如此配CPU VPC1ASS CPU VP CPUonconfig置,将分配至号CPU VPIJ4-7CPU:VPCLASS cpu,num=4,aff=4-7如果指定的多余指定的的个数,则数据库服务器从起始开始再次分配如CPUVPCPU CPU CPUVP,数据库将会如下分配VPCLASS cpu,num=8,aff=4-7,-----CPUVP0CPU4-----CPUVP1CPU5-----CPUVP2CPU6-----CPUVP3CPU7-----CPUVP4CPU4-----CPUVP5CPU5-----CPUVP6CPU6-----CPUVP7CPU7磁盘读写对的影响
5.
7.12CPU如果onconfig中没有配置,则默认值为50如果数据库的某个数据空间的读写存在问题或则处于不在线状态,进程的可能会异常偏高,可以使用oninit CPU命令检查数据空间的状态:onstat-dInformix DynamicServerVersion
7.
31.UC7A——On-Line--Up3days23:33:21--11381641iin-wOl[scpxxb]:/opt/informix/etconstat-dKbytesDbspacesaddress numberflags fchunknchunks flagsowner namedf7c31581111N Informixrootdbsdf7c38982121N Informixphydbsdf7c39583131N Informixlogdbsdf7c3al84200141N TInformix tempdbsdf7c3ad85152N Informixworkdbsaddress chk/dbs offsetsize freebpages flagspathnamedf7c32181105000047721PO-/dev/vg01/rrootdbsdf7c3398220550004897PO-/dev/vg01/rphydbsdf7c349833201550004947PO-/dev/vg01/rlogdbsdf7c35984420256000255947PO-/dev/vg01/rtempdbsdf7c369855201000000376078PO-/dev/vg01/rworkdbsldf7c37986501000000995229PO-/dev/vg01/rworkdbs25active,2047maximumChunks正常情况下,如果flags段出现D或L,则表示数据空间存在问题另外还需要检查数据库空间是否使用的是字符裸设备,而不是块设备或文件系统这个一般也会严重影响数据库的10性能如上数据空间使用的是带前缀的如接着查看的属r chunk,/dev/vgOl/rworkdbsl,rwof kdbslchunk性:43iin-wOl[scpxxb]:/opt/informix/etcls-al/dev/vgOl/rworkdbsl6active,2047maximum-------crw-rw1Informix Informix640x010005Jul312002/dev/vgO1/rworkdbs1发现该设备的属性为表示字符裸设备,如果为・6c brw rw—则表示块裸设备,如果为・…则表示为文件系统・・rwrw命令的几个重要选项7Onstat
7.1Onstat-DDbspacesad5cl00111N Informixrootdbsad5dc28221N Informixdbs7ad5dc98331N informixdbs8dress numberflags fchunknchunks flagsowner name3active,2047maximumChunks addresschk/dbs offsetpage Rdpage Wrpathnamead5cl7011501259289/dev/pal1ad5c63822501111/dev/pal2ad5c7103350/dev/pal33active,2047maximum说明根据该命令的输出参数(页读)和
7.2”page Rd”“Page Wr”(页写)的数目,可以检查每个访问的均衡情况若读写不均衡说chunk明该数据块使用不当;
7.3onstat-IInformix DynamicServer2000Version
9.
21.FC1—On-Line—Up18:07:45-4046800Kbyteshysical LoggingBufferbufused bufsizenumpages numwritsges/ioP-...
45....
200...
36478...
28....
1266.62Phybegin physizephypos phyused%used
1021595000003211664800.10Logical LoggingBufferbufused ufsizenumrecs numpagesnumwrits recs/pages pages/ioL-
2310001105206915302241221.4Subsystem numrecsLog SpaceusedOLDRSAM
110520691038267280213.6参数类型参数参数值参数说明ALARMPROGRA/opt/informix/etc/log告警程序路径M_full.shSYSALARMPRO/opt/informix/etc/evi系统告警程序路径GRAM dence.sh磁带设备路径TAPEDEV/dev/null磁带块大小,单位为kbytesTAPEBLK64系统备份磁带设备参数磁带大小,单位为需kbyteso TAPESIZE要根据具体的磁带容量进行修改参考值TAPESIZE8192000如错误!未找到引用源所示逻辑日志备份磁带路径LTAPEDEV/dev/null磁带块大小,单位为kbytesLTAPEBLK64日志备份磁带设备参数可放逻辑日志的最大数据量,单位为kbytes oLTAPESIZE8192000可选参数,存储等待传输到光盘上的Optical参数STAGEBLOB空值BLOB的BLOBSPACE名一般为空实例的唯一标识,应与其他数据库服IDS务器中该参数的设置不同SERVERNUM0DBSERVERNAM Esms_online数据库SERVER名称系统参数DBSERVERALIA数据库别名sms_online_net SERVERSES分布式环境中锁定模式等待的最大时间DEADLOCK_TIM死锁超时时间,单位为秒60EOUT说明监视物理日志缓冲区的使用情况,观察输出第一行中和
7.4bufsize pages/io列,如除以大约为则可以判定缓冲区的使用效率较高pages/io bufsize75%,如果小于则物理日志缓冲区可能太大如果该比率大于则物理缓75%,90%冲区太小采取同样的方法,监视逻辑日志缓冲区的使用情况(但如果使用无缓冲区日志,则缓冲区刷新要看事务的大小,而不是缓冲区的使用情况)
7.5onstat-m监视消息文件,查找可能发生的特殊事件;监视检查点发生频率及
7.6其运行时间
7.7onstat-PInformix DynamicServer2000Version
9.
21.FC1—On-Line--Up18:10:41Profiledskreads pagreadsbufreads%cached dskwritspagwrits bufwrits%cached
260596443144011937078372392.
97148814022302741293075988.49Imtot openstart readwrite rewritedelete commitrollbk1482319405204271778439595437285925906180816250117716082821gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs0000000ovlock ovuserthreadovbuff usercpusyscpu numckptsflushes
00023394.
7814060.69173442bufwaits lokwaitslockreqs deadlks dltouts ckpwaitscompress seqscans331530290319982775200025454700529618ixda-RA idx-RA da-RA RA-pgsused Ichwaits33421515700171864787220544716204519说明信息中有许多可以监测的内容对系统来说,缓存读取Profile OLTP命中率十分重要读取命中率应大于等于但实际系统中,bufreads%cached95%往往不能达到增加更多的缓冲区通常可以增加缓存读取命中率,改进系统的性能;写入命中率应该大于缓冲区增加,它也会增bufwrits%cached85%加但由于应用不同,在某些情况下该比率可能无法达到根据和两列,可以分析锁冲突如果等于或者大于
7.8locwaits locreqslockwaits的可能会有锁冲突改变应用程序使用隔离级别和锁的方式将改Ickreqs1%,善锁冲突的发生几率用中出现死锁可以重和列中检查出,是
7.9deadlksdltoutsdeadlks检测并放弃的死锁数,是超出死锁时间的查询的数目只有分Online dltouts布式查询才会出现死锁,如发生死锁,则应该改变应用程序
7.10Onstat-g ioqAIOI/O queues:q name/id lenmaxlen totalopsdskread dskwritedskcopyadt0000000msc00127777000aioOO193209532743195810pio00129702970lio
00125560255607.11说明从输出中观察参数”请求队列长度len”及其“最大长度maxlen55大于或者总大于说明请求没有得到及时的服务,通常情况下可以修maxlen25len10改虚拟处理器数目,改善处理性能VP
7.12onstat-R显不LRU状态Least-Recent Used如下:8buffer LRUqueue pairs#f/m length%of\airtotalOf
2496.0%251m
14.0%2f
25100.0%253m
00.0%4f
26100.0%265m
00.0%6f
25100.0%257m
00.0%8f
25100.0%259m
00.0%10F
24100.0%2411m
00.0%12f
2496.0%2513m
14.0%14f
25100.0%2515m
00.0%2dirty,200queued,200total,256hash buckets,2048buffer sizestartclean at60%of pairtotal dirty,or15buffs dirty,stop at50%附f:表示FLRUFree/unmodified Least-Recent Usedm:表示MLRUModified LRU的数目对应中的参数示例中为8LRU ONCONFIGLRUS8,当过大时,可调整中参MLRU ONCONFIGCLEANER数,用强迫检测点发生命令刷新onmode-c MLRU.附注9日志空间和数目的估算
9.1一般地日志空间估算前要考虑应用数据库大小、根数据库空间的大小,其总大小的1/4作为日志空间的大小这里说的日志空间的大小是指物理日志空间和逻辑日志空间之和逻辑日志空间与物理日志之间一般按下面公式进行推算rootdbs+workdbs=4*Logsize*Lognums+PhysizeLogsize*Lognums=3*PhysizePhysize=2*Logsize其中rootdbs是指根数据空间的大小workdbs是指除根数据空间和日志空间以外的其他所有数据空间Logsize是指单个逻辑日志的大小Lognums是指逻辑日志的数目是指物理日志的大小,一般物理日志数目固定为一
9.2Physize机型下的参数
9.3SUN V880个数CPU MUTIPROCESSORNUMCPUVPS SINGLE_CPU_VP101121103-71nrOfCPUs-1071nrOfCPUs*
0.70411-2如果NUMCPUVPS=1,则该参数配置为1;如果则该参数配置为NUMCPUVPS=2,06120812〜30参数类型参数参数值参数说明强制驻留内存标志(代表是,代表否)10在配置该参数时,首先查看目录下的信息$INFORMIXDIR/release/文件,查看该在本地硬件平台上InformixRESIDENT0是否支持如果支持则填ForceResidento1(表示强制驻留内存),否则填0多处理器标志(代表单处理器,代表多01MULTIPROCES处理器)1SOR初始分配的的个数,在单处理CPU VPs器的主机中此值建议用;在多处理器的1主机中,此值不应大于物理的个数,CPU建议使用比物理处理器少此值可以通1o过命令动态增力口onmode-p CPU VPs的个数将决定在一个查询中扫描线索NUMCPUVPS1()的个数Scan Threadsonstat-g ath命令监控每个的扫描线索数,CPUVP系统参数命令监控某个具体会话onstat-g ses单个对应的数量当值CPUVPCPUVPs等于时,此值也设置为否则为当11,0oSINGLE_CPU_V此值为时,必须设置为1NUMCPUVPS0P否则会报错1,ONLINE进程优先级是否随时间推移而降低(代0表是,代表否),缺省为NOAGE111在多处理中,该值设置绑定进CPUCPU程从哪一个开始绑定AFF_SPROC0CPU在多处理中,该值设置绑定到物理CPU的进程个数AFF_NPROCS0CPU锁个数每个占字节内存LOCKS200000LOCK44缓冲区大小单位为页,页为12kbytes当用户数大于万时,建议增大10数值,以确保系统性能万BUFFERS10共享内存参数用户或万以下用户时配置10BUFFERSBUFFERS100000页,万用户时配置页2000080100000参数类型参数参数值参数说明异步虚处理器个数具体数值通过以IO下步骤确定查看$INFORMIXDIR/release/en__us/0333/l文件,确认此是DS_
7.3Informix Server否支持例如,如果支持则在该KIO KIO,文件中有这样的信息Kernel()Asynchronous l/O KAIOis supportedonthisplatform.,,如果支持则不填(采KIO,NUMAIOVPS空值NUMAIOVPS用缺省值)如果不支持则配置为KIO,NUMAIOVPS(的所用到的实2+2X Informixdbspace际物理磁盘数目)如果不支持则配置KIO,NUMAIOVPS为(的所用到:2+2X Informixdbspace的实际物理磁盘数目)如果不支持则配置为KIO,NUMAIOVPS(的所用到的实2+2X Informixdbspace际物理磁盘数目)物理日志缓冲区大小(单位为)PHYSBUFF64kbytes逻辑日志缓冲区大小(单位为)LOGBUFF64kbytes逻辑日志文件个数LOGSMAX20页面清理程序个数页面清理程序的个数与数据库磁盘写性能有一定的关Informix根据实际数据量可在系太小,时间CLEANERS checkpointCLEANERS6〜16间调整,比如很长;太大又降低系统性能CLEANERS8默认值共享内存基地址SHMBASEOxOAOOOOOOL共享内存虚拟段中用于存放用户线程信息和其他对话信息的初始大小,单位SHMVIRTSIZE8000为KB共享内存参数如果不够,则系统增加虚SHMVIRTSIZE拟内存大小,该值即设置每次增加的大小,SHMADD8192单位为KBo总的共享内存大小(为无限制)SHMTOTAL00间隔时间(单位为秒)TCHECKPOINTCKPTINTVL3600股为小时以上1队列个数,取值在[]之间,LRU32,64期间的值为LRUS32BUFFERS/1000oLRU_MAX_DIRT开始清除的比例上限(按百分比)1LRUY参数类型参数参数值参数说明LRU_MIN_DIRT开始清除的比例下限(按百分比)0LRUY£事务使用了多少逻辑日志时开始回滚LTXHWM50(方式)percent£事务使用了多少逻辑日志时开始回滚LTXEHWM60(方式)exclusive事务超时(单位为秒)TXTIMEOUT300栈大小(单位为)STACKSIZE32kbytesOFF_RECVRY_在恢复状态时进行前滚操作的线程数20THREADS恢复参数在对进行“热”恢复时执行前滚ON_RECVRY_T dbspace30HREADS操作的线程数指定二级数据库在数据复制失败时的工作模式,两个服务器应具有相同的设置缺省为取值范围如下0复制失败时,禁止自动切换,二级数据0:库仍为模式Readonly复制失败时,将二级数据库切换为标1准数据库,恢复后乂还原为二级数据库模式DRAUTO0复制失败时,将二级数据库切换为标2准数据库,恢复后为主数据库模式,原来的主数据库切换到次级模式这个值应谨慎使用,因为有时二级数据库会把网络响应延迟理解为数据复制失败这个值应谨慎使用,因为有时二级数据库参数DR会把网络响应延迟理解为数据复制失败采用时数据缓冲区刷新的时间间HADR隔如为表示同步刷新或一个正数,-1,,0表示异步刷新建议使用异步刷新,范围DRINTERVAL1秒秒此值越大,数据库性能上升,1〜30安全性降低服务器等待复制缓冲区传送证实消息的时DRTIMEOUT60间秒数当采用时有效,该参数是一个带HADR路径文件其中记录着在主服务器已经提/opt/informix/etc/dr.lDRLOSTFOUND交但从服务器没有提交的事务ostfoundCDR_LOGBUFF2048ERSCDR_EVALTHR参数参数的取值CDR1,2CDREADSCDR_DSLOCKW5AIT参数类型参数参数值参数说明CDR_QUEUEME4096MCDR_LOGDELT30ACDR_NUMCON16NE^CDR_NIFRETRY300CDR_NIFCOMP0RESSBAR_ACT_LOG/tmp/bar_act.sms.lo gBAR_MAX_BAC0KUP在缺省的配置文件中,BAR_RETRY1参数是没有的,需BAR_BSALIB_PATH备份/恢复参数要事工添加;否则无法利用工具进BARBAR_NB_XPOR10行数据备份T_COUNTBAR_XFER_BU31F_SIZEBAR_BSALIB_P/opt/informix/lib/libbATH sa.soISM_DATA_POO取值ISMDiskData ISM_DATA_POOLL存储管理参数取值ISM_LOG_POOL ISMDiskLogsISM_LOG_POOL该参数设置在顺序扫描期间缓存到缓存区RA_PAGES10的数据和索引页面的个数预读参数该参数表明在还乘小多少页RA_PAGESRA_THRESHOL D5时进行下一次预读数据空间在数据库初始化完成并TEMP成功建立(注rootdbs,logdbs,tempdbs意其属性为临时数据空间)以后,修改此参数为DBSPACETEMP tempdbs数据空间TEMP DBSPACETEMPtempdbs配置多个时,以逗号隔开,并重tempdbs新启动数据库服务器配置多个时,以逗号隔开,并tempdbs重新启动数据库服务器共享内存和文件的输出目录应该core保证这个目录足够大建议为大于的1GBDUMPDIR/opt/informix/temp空间用户应具有该目录读写权informix限卸出参数设置是否在发生异常时,将共享Informix内存输出到指定目录为输出“1”DUMPSHMEM1参数类型参数参数值参数说明创建个文件表示创建,示gcore“0”“1”不创建在不支持实用程序的操作gcoreDUMPGCORE0系统中应将此值设置为1设置是否在运行发生异常时产生Informix文件为产生,为不产生core“1”“0”DUMPCORE0允许输出共享内存时,向指定目录输出共享内存的份数一般为“1”DUMPCNT1建立索引的填充因子FILLFACTOR90动态服务器获取当前时间的使用模式0使用本地时间,速度较快;从操作系1时间参数USEOSTIME0统获取时间,速度较慢可以用于一个单个并行数据查询的资源占MAX_PDQPRIO100数据库所有资源的百分比取值范围为0RITY〜100的整数同时可运行的并行数据查询的总数初始DS_MAX_QUER空值IES值为空并行数据库查询参数处理并行数据查询时可使用的共享内存的DS_TOTAL_ME空值MORY总数量初始值为空DS_MAX_SCAN S1048576支持检索的最大数目数据空间跳转的开关DATASKIP Off该参数帮助优化器为应用选择一个最适合的存取方式如果该值为优化器首先选0,择已存在的索引,使顺序扫描速度更快当该值为并且隔离级别设置为重复读模0,式,优化器适用嵌套循环连接的方式当OPTCOMPIND0该值为(缺省),优化器选择基于消耗2评估的连接方法,即使表扫描引起整个表被临时锁住用户可以通过设置环境变量改变该值优化参数及其他ONDBSPACEDO2WNLBU_PRESERV0EOPCACHEMAX0HETERO_COM0MITOPT_GOAL-1DIRECTIVES1参数类型参数参数值参数说明RESTARTABLE_OFFRESTORE配置参数说明4ONCONFIGONCONFIG文件中对性能有影响的参数主要有:CLEANERS:Page Cleaner线程的数目RESIDENT:驻留段是否常驻物理内存MULTTPROSESSOR:指示单/多处理器AFF_NPROCS/AFF_SPROC将CPU VPC与物理处理器进行绑定:CPU VPS的个数NUMCPUVPS:CPU VPS是否一个SINGLE_CPU_VP:提高CPU VPS的运行机会NOAGE:LRU队列的个数LRUS:LRU_MAX_DIRTY/LRU_MIN_DIRTY:启动和终止Page Cleaner线程的脏页面的比例CKPTINTVL执行检查点操作的时间间隔:前读页数目与时机PA_PAGES/PA.THRESHOLD:注释对应于每一个都有一个配置文件与之对应.配置
4.1SERVER,ONCONFIG ONCONFIG文件记录了的一个实例的所有配置参数,其中有一些参数的配置是Informix否得当与性能关系密切.
4.2CLEANERS制定系统中Page Cleaner线程的数目.。