Informix系统性能的优化资料Word文件下载.docx
《Informix系统性能的优化资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《Informix系统性能的优化资料Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。
/dev/vx/rdsk/sms_dg/lv_rootdbs
ROOT数据空间所在路径,根据实际情况填写。
ROOTOFFSET
ROOT数据空间偏移量,单位为kbytes。
ROOTSIZE
256000
ROOT数据空间大小,单位为kbytes。
磁盘镜像参数
MIRROR
镜像标志:
1表示有镜像,0表示没有镜像。
说明:
我们让磁盘管理系统或操作系统处理磁盘镜像,不让数据库服务器对磁盘块进行磁盘镜像,因此该参数一般设置为0。
MIRRORPAT
空值
镜像路径。
MIRROROFFSET
镜像设备偏移,单位为kbytes。
物理日志参数
PHYSDBS
rootdbs(初始值)
物理日志所在的DBS。
在初始化后,需要修改为phydbs。
PHYSFILE
180000
物理日志大小,单位为kbytes。
在初始化后,按照预先的规划使用命令行方式进行修改。
修改后,系统自动更新该配置项内容。
逻辑日志参数
LOGFILES
3
逻辑日志个数。
LOGSIZE
30000
逻辑日志大小,单位为kbytes。
诊断参数
MSGPATH
/opt/informix/sms_online.log
informix日志文件所在路径。
CONSOLE
/dev/console
控制台路径。
ALARMPROGRAM
/opt/informix/etc/log_full.sh
告警程序路径。
SYSALARMPROGRAM
/opt/informix/etc/evidence.sh
系统告警程序路径。
系统备份磁带设备参数
TAPEDEV
/dev/null
磁带设备路径。
TAPEBLK
磁带块大小,单位为kbytes。
TAPESIZE
8192000
磁带大小,单位为kbytes。
TAPESIZE需要根据具体的磁带容量进行修改。
参考值如错误!
未找到引用源。
所示。
日志备份磁带设备参数
LTAPEDEV
逻辑日志备份磁带路径。
LTAPEBLK
LTAPESIZE
可放逻辑日志的最大数据量,单位为kbytes。
Optical参数
STAGEBLOB
可选参数,存储等待传输到光盘上的BLOB的BLOBSPACE名。
一般为空。
系统参数
SERVERNUM
IDS实例的唯一标识,应与其他数据库服务器中该参数的设置不同。
DBSERVERNAME
sms_online
数据库SERVER名称。
DBSERVERALIASES
sms_online_net
数据库SERVER别名。
DEADLOCK_TIMEOUT
60
分布式环境中锁定模式等待的最大时间。
死锁超时时间,单位为秒
RESIDENT
强制驻留内存标志(1代表是,0代表否)。
在配置该参数时,首先查看$INFORMIXDIR/release/目录下的信息文件,查看该Informix在本地硬件平台上是否支持ForceResident。
如果支持则填1(表示强制驻留内存〕,否则填0。
MULTIPROCESSOR
1
多处理器标志(0代表单处理器,1代表多处理器)。
NUMCPUVPS
初始分配的CPUVPs的个数,在单处理器的主机中此值建议用1;
在多处理器的主机中,此值不应大于物理CPU的个数,建议使用比物理处理器少1。
此值可以通过onmode-p命令动态增加。
CPUVPs的个数将决定在一个查询中扫描线索(ScanThreads)的个数。
onstat-gath命令监控每个CPUVP的扫描线索数,onstat-gses命令监控某个具体会话。
SINGLE_CPU_VP
单个CPU对应的VP数量。
当CPUVPs值等于1时,此值也设置为1,否则为0。
当此值为1时,NUMCPUVPS必须设置为1,否则ONLINE会报错。
NOAGE
进程优先级是否随时间推移而降低(0代表是,1代表否),缺省为1。
AFF_SPROC
在多CPU处理中,该值设置绑定CPU进程从哪一个CPU开始绑定。
AFF_NPROCS
在多CPU处理中,该值设置绑定到物理CPU的进程个数。
共享内存参数
LOCKS
200000
锁个数。
每个LOCK占44字节内存
BUFFERS
100000
缓冲区大小。
单位为页,1页为2kbytes。
当用户数大于10万时,建议增大BUFFERS数值,以确保系统性能。
10万用户或10万以下用户时BUFFERS配置20000页,80万用户时配置100000页。
NUMAIOVPS
异步IO虚处理器个数。
具体数值通过以下步骤确定:
查看$INFORMIXDIR/release/en_us/0333/IDS_7.3文件,确认此informixServer是否支持KIO。
例如,如果支持KIO,则在该文件中有这样的信息:
“KernelAsynchronousI/O(KAIO)issupportedonthisplatform.”。
如果支持KIO,则NUMAIOVPS不填(采用缺省值)。
如果不支持KIO,则NUMAIOVPS配置为:
2+2×
(Informix的dbspace所用到的实际物理磁盘数目)。
PHYSBUFF
物理日志缓冲区大小(单位为kbytes)。
LOGBUFF
逻辑日志缓冲区大小(单位为kbytes)。
LOGSMAX
20
逻辑日志文件个数。
CLEANERS
根据实际数据量可在6~16间调整,比如8
页面清理程序个数。
页面清理程序的个数与Informix数据库磁盘写性能有一定的关系:
CLEANERS太小,checkpoint时间很长;
CLEANERS太大又降低系统性能。
SHMBASE
默认值:
0x0A000000L
共享内存基地址。
SHMVIRTSIZE
8000
共享内存虚拟段中用于存放用户线程信息和其他对话信息的初始大小,单位为KB。
SHMADD
8192
如果SHMVIRTSIZE不够,则系统增加虚拟内存大小,该值即设置每次增加的大小,单位为KB。
SHMTOTAL
总的共享内存大小(0为无限制)。
CKPTINTVL
3600
CHECKPOINT间隔时间(单位为秒)。
一般为1小时以上
LRUS
32
LRU队列个数,取值在[32,64]之间,期间的值为BUFFERS/1000。
LRU_MAX_DIRTY
开始清除的LRU比例上限(按百分比)。
LRU_MIN_DIRTY
开始清除的LRU比例下限(按百分比)。
LTXHWM
50
长事务使用了多少逻辑日志时开始回滚(percent方式)。
LTXEHWM
长事务使用了多少逻辑日志时开始回滚(exclusive方式)。
TXTIMEOUT
300
事务超时(单位为秒)。
STACKSIZE
栈大小(单位为kbytes)。
恢复参数
OFF_RECVRY_THREADS
在恢复状态时进行前滚操作的线程数。
ON_RECVRY_THREADS
30
在对dbspace进行“热”恢复时执行前滚操作的线程数。
DR参数
DRAUTO
指定二级数据库在数据复制失败时的工作模式,两个服务器应具有相同的设置。
缺省为0。
取值范围如下:
0:
复制失败时,禁止自动切换,二级数据库仍为ReadOnly模式。
1:
复制失败时,将二级数据库切换为标准数据库,恢复后又还原为二级数据库模式。
2:
复制失败时,将二级数据库切换为标准数据库,恢复后为主数据库模式,原来的主数据库切换到次级模式。
这个值应谨慎使用,因为有时二级数据库会把网络响应延迟理解为数据复制失败。
DRINTERVAL
采用HADR时数据缓冲区刷新的时间间隔。
如为-1,表示同步刷新,0或一个正数,表示异步刷新。
建议使用异步刷新,范围1秒~30秒。
此值越大,数据库性能上升,安全性降低
DRTIMEOUT
服务器等待复制缓冲区传送证实消息的时间秒数。
DRLOSTFOUND
/opt/informix/etc/dr.lostfound
当采用HADR时有效,该参数是一个带路径文件。
其中记录着在主服务器已经提交但从服务器没有提交的事务。
CDR参数
CDR_LOGBUFFERS
2048
CDR参数的取值。
CDR_EVALTHREADS
1,2
CDR_DSLOCKWAIT
5
CDR_QUEUEMEM
CDR_LOGDELTA
CDR_NUMCONNECT
16
CDR_NIFRETRY
CDR_NIFCOMPRESS
备份/恢复参数
BAR_ACT_LOG
/tmp/bar_act.sms.log
在缺省的配置文件中,BAR_BSALIB_PATH参数是没有的,需要手工添加;
否则无法利用BAR工具进行数据备份。
BAR_MAX_BACKUP
BAR_RETRY
BAR_NB_XPORT_COUNT
10
BAR_XFER_BUF_SIZE
31
BAR_BSALIB_PATH
/opt/informix/lib/libbsa.so
存储管理参数
ISM_DATA_POOL
ISMDiskData
ISM_DATA_POOL取值。
ISM_LOG_POOL
ISMDiskLogs
ISM_LOG_POOL取值。
预读参数
RA_PAGES
该参数设置在顺序扫描期间缓存到缓存区的数据和索引页面的个数。
RA_THRESHOLD
该参数表明在RA_PAGES还剩多少页时进行下一次预读。
TEMP数据空间
DBSPACETEMP
tempdbs
TEMP数据空间。
在数据库初始化完成并成功建立rootdbs,logdbs,tempdbs(注意其属性为临时数据空间)以后,修改此参数为:
DBSPACETEMPtempdbs
配置多个tempdbs时,以逗号隔开,并重新启动数据库服务器。
卸出参数
DUMPDIR
/opt/informix/temp
共享内存和core文件的输出目录。
应该保证这个目录足够大。
建议为大于1GB的空间。
informix用户应具有该目录读写权限
DUMPSHMEM
设置是否在Informix发生异常时,将共享内存输出到指定目录。
“1”为输出。
DUMPGCORE
创建一个gcore文件。
“0”表示创建,“1”示不创建。
在不支持gcore实用程序的操作系统中应将此值设置为1。
DUMPCORE
设置是否在Informix运行发生异常时产生core文件。
“1”为产生,“0”为不产生。
DUMPCNT
允许输出共享内存时,向指定目录输出共享内存的份数。
一般为“1”。
FILLFACTOR
90
建立索引的填充因子。
时间参数
USEOSTIME
动态服务器获取当前时间的使用模式。
使用本地时间,速度较快;
从操作系统获取时间,速度较慢。
并行数据库查询参数
MAX_PDQPRIORITY
可以用于一个单个并行数据查询的资源占数据库所有资源的百分比。
取值范围为0~100的整数。
DS_MAX_QUERIES
同时可运行的并行数据查询的总数。
初始值为空。
DS_TOTAL_MEMORY
处理并行数据查询时可使用的共享内存的总数量。
DS_MAX_SCANS
1048576
支持检索的最大数目。
DATASKIP
Off
数据空间跳转的开关。
优化参数及其他
OPTCOMPIND
该参数帮助优化器为应用选择一个最适合的存取方式。
如果该值为0,优化器首先选择已存在的索引,使顺序扫描速度更快。
当该值为0,并且隔离级别设置为重复读模式,优化器适用嵌套循环连接的方式。
当该值为2(缺省),优化器选择基于消耗评估的连接方法,即使表扫描引起整个表被临时锁住。
用户可以通过设置环境变量改变该值。
ONDBSPACEDOWN
2
LBU_PRESERVE
OPCACHEMAX
HETERO_COMMIT
OPT_GOAL
-1
DIRECTIVES
RESTARTABLE_RESTORE
OFF
3ONCONFIG配置参数说明
ONCONFIG文件中对性能有影响的参数主要有:
CLEANERS:
PageCleaner线程的数目
RESIDENT:
驻留段是否常驻物理内存
MULTIPROSESSOR:
指示单/多处理器
AFF_NPROCS/AFF_SPROC:
将CPUVPC与物理处理器进行绑定
NUMCPUVPS:
CPUVPS的个数
SINGLE_CPU_VP:
CPUVPS是否一个
NOAGE:
提高CPUVPS的运行机会
LRUS:
LRU队列的个数
LRU_MAX_DIRTY/LRU_MIN_DIRTY:
启动和终止PageCleaner线程的脏页面的比例
CKPTINTVL:
执行检查点操作的时间间隔
PA_PAGES/PA_THRESHOLD:
前读页数目与时机
注释:
对应于每一个SERVER,都有一个ONCONFIG配置文件与之对应.ONCONFIG配置文件记录了Informix的一个实例的所有配置参数,其中有一些参数的配置是否得当与性能关系密切.
3.1CLEANERS
制定系统中PageCleaner线程的数目.
PageCleaner是系统线程的和种,他的任务就是将系统缓冲区池(BufferPool)中被修改过的页面刷新到磁盘上,以使内存中的数据和磁盘上的数据保持一致.该参数的值最好是等同于有DBSpace在其上存储的活跃的磁盘数目:
换言之,该参数决定于独立的I/O通道.
3.2RESIDENT
该参数用于指定是否要求共享内存中的可驻留部分(ResidentPortion)必须驻留在物理内存中.
如果该值设置为Y,则要求其必须驻留在物理内存中;
如果设置其值为N,则ResidentPortion的页面可以被虚存管理系统换出到磁盘上.
将ResidentPortion强制驻留在物理内存中的优点是可以提高对该部分内存区域访问的速度(访问命中率为100%),由于该部分是共享内存中最主要的一部分,所以这样做有利于系统性能的提高;
3.3MULTIPROSESSOR
指明服务器是单处理器还是多处理器.单处理器设置为0,多处理器设置为1.
3.4AFF_NPROCS/AFF_SPROC
当参数MULTIPROSESSOR设置为1,即InformixDynamicServer系统运行 在一个多处理器服务器上,我们可以利用操作系统支持的处理器和(Affinity)特性将CPUVPC(注:
CPUVPS:
最重要的一类虚拟处理器类,包含所有用户线程及部分系统线程,在该虚拟处理器类中不允许有阻塞性系统调用出现.)同某些处理器进行绑定.与CPUVPC绑定的处理器越多,CPUVPC中的线程所能获得的运行机会也就越多,该VPC的重要性也就越突出.
AFF_NPROCS用于指定服务器上将有几个处理器被用于CPUVPC进行绑定.该参数不能超过实际处理器的个数.如果该参数的值为0,则意味着CPUVPC被绑定在一个特写的处理器上.后一个参数AFF_SPROC用于指定服务器上从哪一个编号开始的那几个处理器将同CPUVPC进行绑定.处理器的编号从0开始.譬如,服务器上有四个处理器,它们分别编号0,1,2,3,如果AFF_NPROC的值为3而参数AFF_SPROC的值为0,则意味着编号0,1,2的三个处理将与CPUVPC进行绑定.
注意:
进行正理绑定以后,CPUVPC中的所有线程就能在绑定的几个处理器这间自由迁移,而所有其它VPC中的所有线程都只能在剩余的处理器上运行.因此,在设置这两个参数时,至少要给其它VPC保留一个处理器以供其中的线程运行.
3.5NUMCPUVPS
指定系统中CPUVPC的个数.
如果服务器是一个单处理器或双处理器的机器,将该参数的值设为1,如果服务器的物理处理数较多,则可以多设几个CPUVPC,最好是物理处理器个娄减一.
CPUVPC的数据不能多于系统中物理处理器的数目.
3.6SINGLE_CPU_VP
指示系统中的CPUVPC是否是一个,如果只有一个该参数设为1,否则设为0.
3.7NOAGE
在操作系统对进程进行调度时,如果某个进程在过去一段时间经常占用CPU,则操作系统会降低它的优先级.将该参数设为1可屏蔽掉这一机制,使得操作系统在调度CPUVPC中的线程时不考虑其以前对CPU占用情况,从而使CPUVPC中的线程获得更多的运行机会.
3.8LRUS
该参数用于指定系统中LRU队列的个数.LRU是LeastRecentlyUsed(最近最少使用)的缩写.当系统中所有的缓冲区都分配完毕以后,如果又由新的页面被读入内存,就必须进行替换,将某个不太重要的缓冲区中的页面覆盖掉.InformixDynamicServer系统采用的替换策略就是LRU,即认为”最近最少使用(被访问)”的页面是最不重要的,这样的页面将被覆盖掉.系统中采用LRU队列来实现这一策略,所有缓冲区被安置在某一个LRU队列中,队列中越靠近”头”上的缓冲区最近越少访问,一量某个缓冲区被访问后,就将其在队列中的位置向队列”尾”移动.系统中维护多条LRU队列,使得每条队列的长度缩短了;
也有多个”头”可供选取进行替换,提高了系统的整体性能.
建议:
一般的应用系统,对于多处理器的服务器来说,最好将LRU队列的数目设置为CPUVPC的数目;
而对于单处理器或双处理器的服务器来说,可将LRU队列的数目设为3或4.特定的应用系统根据自己的应用特点设置该参数.
3.9LRU_MAX_DIRTY/LRU_MIN_DIRTY
缓冲区的页面被修改后,为避免过于频繁地启动I/O,并不立即刷新回磁盘.系统每隔一段固定的时间后,会执行一个检查点(CheckPoint)操作,将所有被修改而末刷新的页面全部刷新到磁盘上.在两次检查点操作之间,可能会有许多页面被修改但不被刷新,我们称之为脏页面(Dirty),这样的脏页面多了以后,可供用于替换的干净页面就少了,系统进行替换时的效率就可能下降.因此,当系统中的脏页面达到一定比例时,系统就会启动PageCleaner线程,刷新一些页面,保证系统中有一定比例的干净页面.
LRU_MAX_DIRTY和LRU_MIN_DIRTY都是百分比,代表系统中脏页面在所有缓冲区中所占的比例.当系统中的脏页面的比例上升直至超过了参数LRU_MAX_DIRTY的值的时候,系统就会唤醒PageCleaner线程,刷新脏页面;
由于PageCleaner线程的刷新工作,系统中的脏页面的比例又会回落,当系统中的脏页面的比例回落到参数LRU_MIN_DIRTY的值以下时,PageCleaner线程又开始睡眠,直到下一次被唤醒或检查点操作.
但如果一次检查点过程很长,在此期间即使LRU的上下限都很低也不一定影响性能。
3.10CHPTINTVL
该参数用于指定系统中两次检查点操作之间的时间间隔.单位为秒.检查点是一个时间点,在这个时间点上,系统将把内存缓冲区所有的”脏”数据页刷新到磁盘上.
Checkpoint的频率和持续时间会影响IDS的性能.因为在Checkpoint期间IDS禁止所有的数据库服务器进程进入临界区(Criticalsection,是指IDS的一段代码区,它包含一系列的磁盘操作,这些操作必须被当作一个单元来执行,它是为了保证物理上的一致性),这样用户进程可能会被中断,所以频繁出现Checkpoint会影响IDS的性能.然而,较少的Checkpoint的代价有二:
操作系统失败后可能需要较长的快速恢复时间,它是由于物理日志较大及各Checkpoint之间的逻辑日志项数增加造成的;
较大的物理日志需要较多的磁盘空间.调优的方法:
首先利用Onstat–l检查自上次Checkpoint以来所使用的物理日志的页数Numpage字段值,如果新检查点开始时Numpage字段值就接近物理日志大小的75%,则Checkpoint很可能是由物理日志的活动引起的.此时可通过增加物理日志的大小和增加CKPTINTVL(在ONCONFIG文件中)值来减少Checkpoint出现的次数.反之,如果想增加Checkpoint的次数可通过进行上述相反的操作可根据应用的情况设置该值.
3.11PA_PAGES/PA_THRESHOLD
在很多情况下,我们将要处理的数据是连续存放在磁盘上的.那么,在CPU处理完当前的页面转而处理下一个页面时,如果发现该页面不在缓冲区中,CPU就必须等待磁盘I/O将页面读入,这个等待的过程对于速度比磁盘I/O快上千倍的CPU来说是一种极大的浪费.假如我们在CPU正在处理缓冲区页面时,利用空闲的I/O预先将后续的页面读入到内存中来,就有可能避免这种浪费现象的发生.而”向前读”多少个页面\在什么时机开始这种数据的”向前读”也是值得考虑的.
PA_PAGES的值指示出在系统自动进行”向前读”时读取的页面数目.而参数PA_THRESHOLD的值指示出在还有多少个页面可供CPU处理时进行”向前读”,也就是协调CPU和磁盘I/O的速度,使之并