Informix系统性能的优化资料_第1页
Informix系统性能的优化资料_第2页
Informix系统性能的优化资料_第3页
Informix系统性能的优化资料_第4页
Informix系统性能的优化资料_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Informix系统性能的优化接下来,讲述与系统性能关系比较紧密的几点1 Solaris 系统参数的设置因为在不同 informix版本下,Solaris内核参数的设置可能不同, 建议从当前安装版本的informix目录下类似于release/en_us/0333/IDS_7.3的文件中获取相关信息。在主备机上分别用root身份登录后,编辑/etc/system文件调整系统参数,确保system文件中存在以下内容:参数名称值说明shmsys:shminfo_shmmax2048000000共享内存段的最大值,一般为系统内存的一半semsys:seminfo_semmni4096系统范围内设置信号量集的最大数目semsys:seminfo_semmns4096系统中semaphores(信号量)的最大个数semsys:seminfo_semmnu4096undo数据结构数量semsys:seminfo_semume64semsys:seminfo_semmsl100系统范围内信号量集中信号量的数目shmsys:shminfo_shmmin100共享内存的最小值shmsys:shminfo_shmmni100系统中共享内存段的最大个数shmsys:shminfo_shmseg100每个用户进程可使用的最大共享内存段数目2 Informix参数类型ROOTDBS配置参数磁盘镜像参数物理日志参数逻辑日志参数诊断参数系统备份磁带设备参数日志备份磁带设备参数

数据库参数的设置参数 参数值ROOTNAME rootdbs/dev/vx/rdsk/sms_dROOTPATHg/lv_rootdbsROOTOFFSET 0ROOTSIZE 256000MIRROR 0MIRRORPAT 空值MIRROROFFSE0TPHYSDBS rootdbs(初始值)PHYSFILE 180000LOGFILES 3LOGSIZE30000MSGPATH/opt/informix/sms_online.logCONSOLE/dev/consoleALARMPROGRA/opt/informix/etc/logM_full.shSYSALARMPRO/opt/informix/etc/eviGRAMdence.shTAPEDEV/dev/nullTAPEBLK64TAPESIZE 8192000LTAPEDEV /dev/null

参数说明ROOT数据空间名称。ROOT数据空间所在路径,根据实际情况填写。ROOT数据空间偏移量,单位为kbytes。ROOT数据空间大小,单位为 kbytes。镜像标志:1表示有镜像,0表示没有镜像。说明:我们让磁盘管理系统或操作系统处理磁盘镜像,不让数据库服务器对磁盘块进行磁盘镜像,因此该参数一般设置为0。镜像路径。镜像设备偏移,单位为 kbytes。物理日志所在的DBS。在初始化后,需要修改为phydbs。物理日志大小,单位为kbytes。在初始化后,按照预先的规划使用命令行方式进行修改。修改后,系统自动更新该配置项内容。逻辑日志个数。在初始化后,按照预先的规划使用命令行方式进行修改。修改后,系统自动更新该配置项内容。逻辑日志大小,单位为 rmix日志文件所在路径。控制台路径。告警程序路径。系统告警程序路径。磁带设备路径。磁带块大小,单位为 kbytes。磁带大小,单位为kbytes。TAPESIZE需要根据具体的磁带容量进行修改。参考值如错误!未找到引用源。所示。逻辑日志备份磁带路径。参数类型 参数 参数值LTAPEBLK 64LTAPESIZE 8192000Optical参数 STAGEBLOB 空值SERVERNUM 0DBSERVERNAMsms_onlineE系统参数DBSERVERALIAsms_online_netSESDEADLOCK_TIM60EOUTRESIDENT 0MULTIPROCES1SORNUMCPUVPS 1系统参数SINGLE_CPU_V0PNOAGE 1AFF_SPROC 0AFF_NPROCS 0共享内存参数 LOCKS 200000

参数说明磁带块大小,单位为 kbytes。可放逻辑日志的最大数据量,单位为kbytes。可选参数,存储等待传输到光盘上的BLOB的BLOBSPACE名。一般为空。IDS实例的唯一标识,应与其他数据库服务器中该参数的设置不同。数据库SERVER名称。数据库SERVER别名。分布式环境中锁定模式等待的最大时间。死锁超时时间,单位为秒强制驻留内存标志(1代表是,0代表否)。在配置该参数时,首先查看$INFORMIXDIR/release/目录下的信息文件,查看该Informix在本地硬件平台上是否支持ForceResident。如果支持则填1(表示强制驻留内存〕,否则填0。多处理器标志(0代表单处理器,1代表多处理器)。初始分配的CPUVPs的个数,在单处理器的主机中此值建议用1;在多处理器的主机中,此值不应大于物理 CPU的个数,建议使用比物理处理器少1。此值可以通过onmode-p命令动态增加。CPUVPs的个数将决定在一个查询中扫描线索(ScanThreads)的个数。onstat-gath命令监控每个CPUVP的扫描线索数,onstat-gses命令监控某个具体会话。单个CPU对应的VP数量。当CPUVPs值等于1时,此值也设置为1,否则为0。当此值为1时,NUMCPUVPS必须设置为1,否则ONLINE会报错。进程优先级是否随时间推移而降低(0代表是,1代表否),缺省为1。在多CPU处理中,该值设置绑定CPU进程从哪一个CPU开始绑定。在多CPU处理中,该值设置绑定到物理CPU的进程个数。锁个数。每个 LOCK占44字节内存参数类型

参数参数值参数说明缓冲区大小。单位为页,1页为2kbytes。当用户数大于10万时,建议增大BUFFERS100000BUFFERS数值,以确保系统性能。10万用户或10万以下用户时BUFFERS配置20000页,80万用户时配置100000页。异步IO虚处理器个数。具体数值通过以下步骤确定:查看$INFORMIXDIR/release/en_us/0333/IDS_7.3文件,确认此informixServer是否支持KIO。例如,如果支持KIO,NUMAIOVPS空值则在该文件中有这样的信息:“KernelAsynchronousI/O(KAIO)issupportedonthisplatform.”。如果支持KIO,则NUMAIOVPS不填(采用缺省值)。如果不支持KIO,则NUMAIOVPS配置为:2+2×(Informix的dbspace所用到的实际物理磁盘数目)。共享内存参数

PHYSBUFF64LOGBUFF64LOGSMAX20根据实际数据量可CLEANERS在6~16间调整,比如8SHMBASE默认值:0x0A000000LSHMVIRTSIZE8000SHMADD8192SHMTOTAL0CKPTINTVL3600LRUS32LRU_MAX_DIRTY 1LRU_MIN_DIRT0Y

物理日志缓冲区大小(单位为 kbytes)。逻辑日志缓冲区大小(单位为 kbytes)。逻辑日志文件个数。页面清理程序个数。页面清理程序的个数与Informix数据库磁盘写性能有一定的关系:CLEANERS太小,checkpoint时间很长;CLEANERS太大又降低系统性能。共享内存基地址。共享内存虚拟段中用于存放用户线程信息和其他对话信息的初始大小, 单位为KB。如果SHMVIRTSIZE不够,则系统增加虚拟内存大小,该值即设置每次增加的大小,单位为KB。总的共享内存大小( 0为无限制)。CHECKPOINT 间隔时间(单位为秒)。一般为1小时以上LRU队列个数,取值在[32,64]之间,期间的值为BUFFERS/1000。开始清除的LRU比例上限(按百分比)。开始清除的LRU比例下限(按百分比)。参数类型参数参数值LTXHWM50LTXEHWM60TXTIMEOUT300STACKSIZE32OFF_RECVRY_20THREADS恢复参数ON_RECVRY_T30HREADSDRAUTO 0DR参数DRINTERVAL 1DRTIMEOUT 60/opt/informix/etc/dr.lDRLOSTFOUNDostfoundCDR_LOGBUFF2048ERSCDR_EVALTHR 1,2EADSCDR_DSLOCKW5AITCDR参数CDR_QUEUEME4096MCDR_LOGDELTA 30CDR_NUMCON16NECT

参数说明长事务使用了多少逻辑日志时开始回滚(percent方式)。长事务使用了多少逻辑日志时开始回滚(exclusive方式)。事务超时(单位为秒)。栈大小(单位为 kbytes)。在恢复状态时进行前滚操作的线程数。在对dbspace进行“热”恢复时执行前滚操作的线程数。指定二级数据库在数据复制失败时的工作模式,两个服务器应具有相同的设置。缺省为0。取值范围如下:0:复制失败时,禁止自动切换,二级数据库仍为ReadOnly模式。1:复制失败时,将二级数据库切换为标准数据库,恢复后又还原为二级数据库模式。2:复制失败时,将二级数据库切换为标准数据库,恢复后为主数据库模式,原来的主数据库切换到次级模式。这个值应谨慎使用,因为有时二级数据库会把网络响应延迟理解为数据复制失败。采用HADR时数据缓冲区刷新的时间间隔。如为-1,表示同步刷新,0或一个正数,表示异步刷新。建议使用异步刷新,范围1秒~30秒。此值越大,数据库性能上升,安全性降低服务器等待复制缓冲区传送证实消息的时间秒数。当采用HADR时有效,该参数是一个带路径文件。其中记录着在主服务器已经提交但从服务器没有提交的事务。CDR参数的取值。参数类型备份/恢复参数存储管理参数预读参数

参数CDR_NIFRETRYCDR_NIFCOMPRESSBAR_ACT_LOGBAR_MAX_BACKUPBAR_RETRYBAR_NB_XPORT_COUNTBAR_XFER_BUF_SIZEBAR_BSALIB_PATHISM_DATA_POOLISM_LOG_POOLRA_PAGESRA_THRESHOLD

参数值3000011031/opt/informix/lib/libbsa.soISMDiskDataISMDiskLogs105

参数说明在 缺 省 的 配 置 文 件 中 ,BAR_BSALIB_PATH参数是没有的,需要手工添加;否则无法利用BAR工具进行数据备份。ISM_DATA_POOL 取值。ISM_LOG_POOL 取值。该参数设置在顺序扫描期间缓存到缓存区的数据和索引页面的个数。该参数表明在RA_PAGES还剩多少页时进行下一次预读。TEMP数据空间。在数据库初始化完成并成功建立rootdbs,logdbs,tempdbsTEMP数据空间卸出参数

DBSPACETEMP tempdbsDUMPDIR /opt/informix/tempDUMPSHMEM 1DUMPGCORE 0DUMPCORE 0DUMPCNT 1FILLFACTOR 90

(注意其属性为临时数据空间)以后,修改此参数为:DBSPACETEMP tempdbs配置多个tempdbs时,以逗号隔开,并重新启动数据库服务器。共享内存和core文件的输出目录。应该保证这个目录足够大。建议为大于1GB的空间。informix用户应具有该目录读写权限设置是否在Informix发生异常时,将共享内存输出到指定目录。“1”为输出。创建一个 gcore文件。“0”表示创建,“1”示不创建。在不支持gcore实用程序的操作系统中应将此值设置为1。设置是否在Informix运行发生异常时产生core文件。“1”为产生,“0”为不产生。允许输出共享内存时,向指定目录输出共享内存的份数。一般为“1”。建立索引的填充因子。参数类型 参数

参数值

参数说明动态服务器获取当前时间的使用模式。时间参数并行数据库查询参数优化参数及其他

USEOSTIMEMAX_PDQPRIORITYDS_MAX_QUERIESDS_TOTAL_MEMORYDS_MAX_SCANSDATASKIPOPTCOMPINDONDBSPACEDOWNLBU_PRESERVEOPCACHEMAXHETERO_COMMITOPT_GOALDIRECTIVESRESTARTABLE_RESTORE

0100空值空值1048576Off02000-11OFF

0:使用本地时间,速度较快;1:从操作系统获取时间,速度较慢。可以用于一个单个并行数据查询的资源占数据库所有资源的百分比。取值范围为0~100的整数。同时可运行的并行数据查询的总数。初始值为空。处理并行数据查询时可使用的共享内存的总数量。初始值为空。支持检索的最大数目。数据空间跳转的开关。该参数帮助优化器为应用选择一个最适合的存取方式。如果该值为 0,优化器首先选择已存在的索引, 使顺序扫描速度更快。当该值为 0,并且隔离级别设置为重复读模式, 优化器适用嵌套循环连接的方式。当该值为 2(缺省),优化器选择基于消耗评估的连接方法,即使表扫描引起整个表被临时锁住。 用户可以通过设置环境变量改变该值。3 ONCONFIG 配置参数说明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.1 CLEANERS制定系统中

PageCleaner线程的数目.PageCleaner是系统线程的和种,他的任务就是将系统缓冲区池(BufferPool)中被修改过的页面刷新到磁盘上,以使内存中的数据和磁盘上的数据保持一致.该参数的值最好是等同于有DBSpace在其上存储的活跃的磁盘数目:换言之,该参数决定于独立的I/O通道.3.2 RESIDENT该参数用于指定是否要求共享内存中的可驻留部分( ResidentPortion)必须驻留在物理内存中.如果该值设置为Y,则要求其必须驻留在物理内存中;如果设置其值为N,则 ResidentPortion的页面可以被虚存管理系统换出到磁盘上.将ResidentPortion强制驻留在物理内存中的优点是可以提高对该部分内存区域访问的速度(访问命中率为100%),由于该部分是共享内存中最主要的一部分,所以这样做有利于系统性能的提高;3.3 MULTIPROSESSOR指明服务器是单处理器还是多处理器.单处理器设置为0,多处理器设置为1.3.4 AFF_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.5 NUMCPUVPS指定系统中 CPUVPC的个数.如果服务器是一个单处理器或双处理器的机器 ,将该参数的值设为 1,如果服务器的物理处理数较多,则可以多设几个 CPUVPC,最好是物理处理器个娄减一 .注意:CPUVPC的数据不能多于系统中物理处理器的数目 .3.6 SINGLE_CPU_VP指示系统中的 CPUVPC是否是一个,如果只有一个该参数设为 1,否则设为0.3.7 NOAGE在操作系统对进程进行调度时 ,如果某个进程在过去一段时间经常占用 CPU,则操作系统会降低它的优先级 .将该参数设为 1可屏蔽掉这一机制 ,使得操作系统在调度 CPUVPC中的线程时不考虑其以前对 CPU占用情况,从而使CPUVPC中的线程获得更多的运行机会 .3.8 LRUS该参数用于指定系统中 LRU队列的个数.LRU是LeastRecentlyUsed(最近最少使用 )的缩写.当系统中所有的缓冲区都分配完毕以后 ,如果又由新的页面被读入内存 ,就必须进行替换,将某个不太重要的缓冲区中的页面覆盖掉.InformixDynamicServer系统采用的替换策略就是LRU,即认为”最近最少使用(被访问)”的页面是最不重要的,这样的页面将被覆盖掉.系统中采用LRU队列来实现这一策略,所有缓冲区被安置在某一个LRU队列中,队列中越靠近”头”上的缓冲区最近越少访问,一量某个缓冲区被访问后,就将其在队列中的位置向队列”尾”移动.系统中维护多条LRU队列,使得每条队列的长度缩短了;也有多个”头”可供选取进行替换,提高了系统的整体性能.建议:一般的应用系统 ,对于多处理器的服务器来说 ,最好将LRU队列的数目设置为 CPUVPC的数目;而对于单处理器或双处理器的服务器来说 ,可将LRU队列的数目设为 3或4.特定的应用系统根据自己的应用特点设置该参数 .3.9 LRU_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禁止所有的数据库服务器进程进入临界区 (Critical section,是指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的速度,使之并行效率更高.如果不希望采取 ”向前读”策略,可以将参数 PA_PAGES的值设置为 0.4 Informix 系统性能调优要求管理人员应使用户尽可能遵守下面四条原则:在一个合理的时间间隔内,不要让一个事务一值被打开而不提交或回滚一般不要使用作业控制机制来中止一个进程,除非用户确实想中止自己的作业不要在经常备访问的表中进行大规模的更新在为一个应用规定特定的隔离级别之前,应先考虑它可能带来的存取问题现网上的数据库已经运行多时, 性能肯定比没有初试运行时有所下降。 那么什么时候应该进行系统的性能调优或者设备扩容呢?数据库系统性能通常与 CPU、共享内存、数据的存储和网络设置等四个方面有直接的关系。下面着重介绍通过配置 Informix IDS参数和监控 Informix IDS运行效率,来提高数据库的性能。4.1IO性能 缓冲区读、写CACHE命中率缓冲区读、写CACHE 命中率表示已完成的读、 写内存次数与读、写磁盘次数之比。IDS对于每一个客户端的数据请求,都会现先在共享内存中查看结果数据是否存在,然后再从硬盘中将数据读取出来;操作完毕,也不是立即将数据写回硬盘,而是等到页刷新线程被激活时,“脏”数据才被写回硬盘。而且, IDS也有数据预读功能,可以将当前数据所在的数据页及随后的一些数据页的数据一次性地读出来。所以,如果大部分的数据都在共享内存中,将大大减少了操作数据,从而获得高性能。使用“onstat–p”命令可以查看共享内存缓冲区的读、写命中率:dskreadspagreadsbufreads

%cacheddskwritspagwrits

bufwrits

%cached16925

17053

326312922

99.99

649209

1325752

12115118

94.641.如果读的命中率小于

95%1)通过修改

BUFFERS

值,增大共享内存来获得更高的命中率。在

OLTP

(联机事务处理系统),Informix

建议

BUFFERS

一般为实际的物理内存的

20%至

25%,以获得较高的性能。2)高速缓冲区百分比低于 95%,用户应减低 LRU_MAX_DIRTY,LRU_MIN_DIRTY值,缩小MLRU队列长度,来提高读性能。2.如果写的命中率小于 85%,应增大以下参数值来提高写命中率:1)LRUS

:内存池由

LRUS(LeastRecentlyUsedQueues)分开管理,如果

LRU

个数增大,则每个

LRU

的长度减少。

Informix

建议

LRUS

CPUVP

个数的

4

倍。2)LRU_MAX_DIRTY

和LRU_MIN_DIRTY

:LRU

队列中已修改的缓冲区的临界百分比。一旦达到 LRU_MAX_DIRTY ,页刷新线程就被激活,将内存中的“脏”数据写回硬盘,此操作一直到 LRU_MIN_DIRTY ,刷新线程才被挂起。3)CKPTINTVL

:增大此值以减少

CHECKPOINT

的频率。4)PHYSLOG

:同样的道理,增大物理日志,减少了

CHECKPOINT

的几率。但是,调整上述参数可能导致 CHECK POINT 的持续时间的增大,反而影响了应用系统,此时需要权衡利弊,再作出决定。如果读命中率高而写命中率很低,但

CHECK POINT 的持续时间又比较长,此时的瓶颈一般在磁盘的

IO

能力上,这种情况就要考虑设备扩容了。 ovbuffovbuff 是用户进程试图获得共享内存区,但已无可用共享内存缓冲区的次数。如果在使用“onstat–p”命令时,输出结果中的ovbuff应为0或一个较小的正数(注:上述参数只有用户进程在使用IDS时查看才有效),如果在24小时之内ovbuff的值超过50或60,则需要重新开始监控该字段在一个固定时间内的值(可用onstat–z先使其复零)。由于ovbuff值表示已无可用缓冲区时IDS试图获得缓冲区的次数,如果ovbuff值在一定时间内上升较快则说明要进行调优了。用户可通过增加ONCONFIG文件中的增大BUFFERS以分配更多的共享内存。 ovlock和lockwaitsovlock 是用户进程在操作数据时,试图获得锁,但未能获得的失败次数; lockwaits 是等待锁的会话的次数。 若观察“onstat-p”的结果中这两个值之一大于 0,则说明ONCONFIG文件中预先定义的 LOCKS 已被使用完,此时应该考虑增大 LOCKS 值,或者修改表的锁模式为表级锁以减少使用中所需的锁个数,但这会降低并发操作。在TELLIN 中,为了提高并发处理能力,对卡号信息表和经常操作的表,一般都采用行锁(row)。如果 LOCKS 的数量已经远比达到预测中的呼叫能力所需要的 LOCK 大,但还是出现了 ovlock 大于 0的情况,这时可能是某个异常应用占用了大量的锁资源,或者是它对某些表采取了表级的排它锁 (EXCLUSIVELOCK ),导致其它 SESSION在访问此表时只能等待,这样,其它进程就被阻塞了,虽然 CPUIDLE 很高,但性能却严重下降。以下内容描述使用“ onstat-u”和“onstat-k”命令,查找出哪些进程在等待锁的方法:图1如何查找等待锁与占有锁的进程1、根据“onstat-u”的输出,会话号(sessid)为84的SESSION在等待锁资源(300b78d8)2、根据“onstat-k”的输出,300b78d8的持有者是 400741403、在回到“onstat-u”的输出界面, 40074140所对应的会话号是 814、这时,使用“ onstat-gses81”可以知道此会话所对应的进程在干什么。如果确认为异常进程,要么使用 kill 命令将其终止,要么使用“ onmode-z81”将此SESSION终止。另外,观察“ onstat-p”的输出中的 dltouts可以知道当前是否发现有死锁的情况。在这里需要澄清一点, ONCONFIG 文件中的DEADLOAK_TIMEOUT 参数的意义是:当执行一个分布式的查询时, 等待远端数据库响应的时间, 并非在本地数据库或者网络数据库中执行一条 SQL语句可能等待锁的最大时间。 overuserthread该值应为0,否则表示用户试图连接的个数超过了配置的允许连接的个数。 最大连接个数配置由 NETTYPE参数配置,其第二个和第三个参数的乘积决定了某种方式下最大连接数如:NETTYPEipcshm,2,100,NETNETTYPEsoctcp,2,100,CPU表示共享内存连接方式允许最大连接数为200个表示网络连接方式允许最大连接数为200个说明:(NotesHeading)如果onconfig中没有配置,则默认值为50 Checkpoint的频率Checkpoint的频率和持续时间会影响 IDS的性能。因为在 Checkpoint期间IDS禁止所有的数据库服务器进程进入临界区 (criticalsection,是指IDS的一段代码区,它包含一系列的磁盘操作,这些操作必须被当作一个单元来执行,它是为了保证物理上的一致性) ,这样用户进程可能会被中断,所以频繁出现 Checkpoint 会影响 IDS 的性能。然而,较少的Checkpoint的代价有两:操作系统失败后可能需要较长的快速恢复时间, 它是由于物理日志较大及各 Checkpoint之间的逻辑日志项数增加造成的;较大的物理日志需要较多的磁盘空间。调优的方法:。所以,在物理设备(内存、CPU和硬盘等)已确定的情况下,至少可以通过减少 CHECKPOINT 的间隔和持续时间这两种方法,来减少 CHECKPOINT 对系统的影响:1、分析onstat的输出,减少 CHECKPOINT 的次数使用“onstat-l”命令,输出结果中的 numpages值表示自上一检查点以来所使用的物理日志的页数。如果新检查点开始时 numpages接近物理日志大小的 75%,则检查点很可能是由于物理日志的活动而启动的, 写磁盘动作发生在缓冲区没有充分被利用的情况下。 此时可以增加物理日志的大小或增加 CKPTINTVL 来减少检查点的次数。反之,如果想增加Checkpoint的次数可通过进行上述相反的操作。2、减少

CHECKPOINT

的持续时间减少

BUFFER

,修改

LRU_MAX_DIRTY

LRU_MIN_DIRTY

值可以减少

CHECKPOINT

的持续时间。假设

BUFFERS

设置为

30000,LRU_MAX_DIRTY

为 60,LRU_MIN_DIRTY

为50

,那么,一次

CHECKPOINT

则有可能将

18000

页的数据写到硬盘中;如果将

LRU_MAX_DIRTY

LRU_MIN_DIRTY

减低为

1和0,则依次

CHECKPOINT最多只有

300页的数据被写到硬盘中。但并不是

BUFFERS

LRU_MAX_DIRTY

、LRU_MIN_DIRTY

越小越好,它直接影响了数据的读、写

CACHE

命中率。 CLEANER线程个数在以下情况下应该考虑修改 CLEANERS的配置:1、增大BUFFERS 很有可能没有读、写提高命中率,或者提高极少,这种情况下增大BUFFERS并没有好处。2、硬盘个数增多,对磁盘阵列容量进行了扩容对此,Informix 有如下建议:1)、若磁盘数小于

20,每一个存储有数据的磁盘都应有一个

CLEANERS2)、若磁盘数在

20和

100

之间,每一个

CLEANERS

对应于

2个磁盘3)、100个以上的磁盘,则一个

CLEANERS

对应于

4个磁盘 AIO线程个数是否足够有时系统磁盘Informix通过AIO理器不必等待一个

IO并不是瓶颈,但是数据库的 IO性能上不去导致数据库整体性能太低。异步的对用户的 I/O请求进行服务来加速 I/O处理的处理,这样一个虚处I/O结束就可以开始处理另一个 I/O请求。如果AIO的个数配置太少, 则可能出现上述现象。可以使用

onstat

-R

监控内存中

LRU

的脏页情况,以确定是否

AIO

线程太少:<40iin-w01[scpxxb]:/home/scpxxb>onstat-RInformix

Dynamic

Server

Version

--

On-Line

-- Up3days

03:12:39--113816Kbytes8bufferLRUqueuepairs

prioritylevels#f/mpairtotal%oflengthLOWMED_LOWMED_HIGHHIGH0f5000100.0%5000302019404001m0.0%00000⋯⋯⋯⋯⋯⋯12f5000100.0%50003042191840013m0.0%0000014f5000100.0%50003065189243015m0.0%000000dirty,40000queued,40000total,65536hashbuckets,2048buffersizestartcleanat2%(ofpairtotal)dirty,or100buffsdirty,stopat1%一般的该命令显示的结果红色部分应该总小于 BUFFERS*LRU_MAX_DIRTY% ,否则执行写请求的 pagecleaner不够,或是AIOVP线程数不够,也可能是执行物理写入的 KAIO线程数不够,或者磁盘控制器存在问题或系统磁盘 IO本身达到瓶颈。确定是否是由于 AIO数目太少引起磁盘 I/O太忙,可通过命令 onstat–gioq来探测从磁盘读写的长队列,如果对应 AIO的队列长度 len值太大(一般大于 25)并且不断增加则说明AIO较忙,需要修改onconfig配置文件中NUMAIOVPS参数增加AIO的数量。<42iin-w01[scpxxb]:/home/scpxxb>onstat-gioqInformix Dynamic Server Version -- On-Line -- Up3days 03:18:24--113816KbytesAIOI/Oqueues:qname/idlenmaxlentotalopsdskreaddskwritedskcopyadt0000000msc001126000aio00134820pio0017070lio00150105010gfd303458445130gfd401636300gfd5014400gfd6034130gfd7016201841333868460gfd8013496471250 高效率的日志缓冲区物理日志和逻辑日志的缓冲区空间并不是越大越好, 我们的目标是在页刷新进程将共享内存的数据写入磁盘时, 75%的物理日志已被使用。使用“ onstat-l”命令时应该观察以下两个输出:bufsize:物理或逻辑日志缓冲区的大小pages/io:每次IO操作写入磁盘的平均页数若pages/io的值等于或大于bufsize的百分之七十五,则每次写磁盘操作平均要延迟到缓冲区几乎满才执行,可以尝试增大缓冲区大小,使每次缓冲区在写操作之前能接收更多的数据,减少物理IO次数,来达到提高缓冲区效率的目的。若pages/io的值小于bufsize的百分之七十五,则写磁盘操作平均发生在缓冲区未充分利用的情况下,可以尝试减少缓冲区,使其接近 pages/IO的近似值,来提高缓冲区的利用效率,而且,还可以为其它应用释放多余的共享内存空间。注意:正是因为 Informix 使用了缓冲区机制,提供了性能,同时也带来了隐患:如果数据库在bufferedlogging 模式下,就算数据库 SERVER被体面地使用“onmode-yk ”命令终止,但缓冲区的数据有可能没有刷新到硬盘上,再次起来时,最后提交的部分数据也会丢失。同样的道理,除非使用了 DDR 和unbufferedlogging ,HDR 也是不会在主、备数据库进行实时的数据同步,因此在切换时,可能会造成数据丢失。 数据库表空间的分布是否合理经过一段时间的运行, 各表中的数据增长是不均匀的, 且有可能产生不同表空间相互交错在一起的现象(暂称为“碎片”),这样会降低系统的性能。 使用“oncheck-pe”或“onstat-pt 指定的表名”命令可以对数据库的各表的 EXTENT 分布情况,再结合“ onstat-giof”,看在哪个 DBSPACE上的读、写比较频繁,以决定对哪些表进行空间的分离,尽量将数据量大且访问频繁的表分开在不同的 DBSPACES,充分利用磁盘阵列的多磁盘控制器特性,减少相互之间的影响。在建立数据库表时, 如果能预见到表的数据量和访问的频率,

这时就应该将此表建立在不同的

DBSPACE

了。4.2内存性能 驻留内存部分的参数驻留内存部分又可以细分为:共享内存头、缓冲区,逻辑日志缓冲区、物理日志缓冲区、锁。共享内存头在共享内存中包含所有其他结构的描述,还包含到这些结构位置的指针共享内存头是在初始化 InformixIDS 时创建的,并且不能进行调优。缓冲区存储 Informix IDS从dbspace 所读取的数据,是数据库对象数据,如表的数据或索引数据。缓冲区占用了驻留内存中最大的部分。 所有的缓冲区被组织到一个较长的最近最少使用(least-recently-used ,LRU)缓冲区队列中,并通过最近最少使用( LRU)机制进行管理。定义缓冲区的参数是 BUFFERS。称作指定共享内存缓冲区的最大数目,该参数对数据库 I/O和事务处理吞吐量有明显的影响。 但是,如果分配过多的缓冲区会影响到操作系统的内存并导致过多的交换内存页面的活动。一般建议设置为物理内存的 20%到25%。逻辑日志缓冲区是用来存储最后一次备份开始的逻辑日志记录的。逻辑日志记录保存了SQL语句对数据库数据进行的修改。在初始化 InformixIDS 时,它创建三个逻辑日志缓冲区,以循环方式运作,来确保将获得的每一条逻辑日志记录都被刷新到磁盘中。 LOGBUFF定义了逻辑日志缓冲区的数量, 缓冲区的大小决定了它被添满的频率, 从而决定了它必须被刷新到硬盘上的逻辑文件中的频率。一般情况下, InformixIDS 建议设置为 16KB或32KB物理日志缓冲区在 Informix IDS修改或着删除记录之前,将该记录的原始值存入到物理日志缓冲区中,在事务失败时,用于恢复数据,以保持数据的一致性。在InformixIDS初始化时,创建了两个物理日志缓冲区,也以循环的方式运作。与物理日志缓冲区对应的参数是PHYSBUFF。锁包含可用锁的数量,每个用户对数据库的连接并执行数据库的操作,都需要一定数量的锁。在InformixIDS9.2以后的版本中,当用户的锁不够时,可以动态的分配锁的数量。在以前的版本中,该数值是固定不变的。与锁对应的参数是LOCKS。一般情况下设置为2000到8000000个。 共享内存虚拟存储区的参数共享内存虚拟存储区存储各种各样的不同数据,可以分为:内部表、较大的缓冲区、会话数据、线程数据(堆栈和堆) 、数据分布缓存器、字典缓存器、 SPL例程缓存器、 SQL语句缓存器、排序池、全局池。影响虚拟存储区的参数是: SHMADD、SHMVIRTSIZE、STACKSIZE。SHMVIRTSIZE定义了分配给InformixIDS共享内存的虚拟存储区的大小。InformixIDS在处理大型查询或高峰负荷的需要增加共享内存给虚拟存储区,但是共享内存的分配需要增加事务处理的时间,故在设置SHMVIRTSIZE值时,一般考虑能满足一个日常操作的需要。STACKSIZE指示了数据库服务器为每个活动线程指派的初始堆栈的大小。 如果将该参数配置得过小,那么线程将无法拥有执行其程序的足够内存空间,而且它将干扰其他线程。SHMADD定义了Informix IDS自动加到虚拟存储区的共享内存增量的大小。在增加共享内存时,要占用 CPU周期;每次的增加量越大,增加次数就越少, 留给其它的进程的内存也越少。所以一般采用大的增加量。 但是在内存负荷很重时, 少量增加使其他程序更好的共享内存资源。所以,如果实际内存小于等于 256MB,则建议 SHMADD使用缺省值 8192KB;如果在256MB到512MB之间,则设置为16384KB;如果大于512MB,则设置为32768KB。可以用命令onstat-gseg来显示IDS当前共享内存虚拟区中的段的数目。InformixIDS 在初始化时,如果定义的虚拟内存区尺寸太小,会自动向虚拟区附加其他操作系统段,虚拟内存中的段过多从而引起数据库的整体性能下降。 所以在初始化时, 将虚拟内存区的尺寸配置得足够大,以避免进行动态的分配共享内存段。在该列的输出中,class 列为R是驻留内存段, V是虚拟内存段, M是消息内存段。如果显示的虚拟内存段多于三个,那么就需要提高配置文件中 SHMVERSIZE参数的值。命令onstat-p 是监控内存的另一个命令。其输出结果中的两个 %cache显示了读写高速缓存比例的百分比,一般在 80%到90%之间,如果低于 80%,要调节 BUFFERS参数值。ovlock 字段表明 IDS 在使用了最大数量的锁之后尝试过再使用锁的次数,如果该数字非零,可能需要提高配置文件中

LOCKS参数的值。ovbuf

字段表明

IDS

在使用了最大数量的缓冲区之后尝试过再使用缓冲区的次数。如果该数字很大,比如说超过

100000,就需要提高BUFFERS参数,以便用户在需要从磁盘访问数据时不必等待缓冲区。在监控内存的使用情况时还可以采用Unix系统命令vmstat。 共享虚拟内存可以用命令 onstat-gseg 来显示IDS 当前共享内存虚拟区中的段的数目。InformixIDS 在初始化时,如果定义的虚拟内存区尺寸太小,会自动向虚拟区附加其他操作系统段,虚拟内存中的段过多从而引起数据库的整体性能下降。 所以在初始化时, 将虚拟内存区的尺寸配置得足够大,以避免进行动态的分配共享内存段。在该列的输出中,class 列为R是驻留内存段, V是虚拟内存段, M是消息内存段。如果显示的虚拟内存段多于三个,那么就需要提高配置文件中 SHMVERSIZE参数的值。如果有连续的虚拟内存段的可用BLOCK超过200 ,此时,可以据此公式来减少 SHMADD或SHMVIRTSIZE。共享内存虚拟段主要用做内存池以支持会话和线程。内存池的分配和释放是动态进行的。内存池的大小为 8k。如果已有虚拟段耗尽, 动态服务器可以根据 ONCONFIG文件中的相关参数再次动态申请:虚拟内存段的初始大小由参数 SHMVIRTSIZE决定,其增量由参数SHMADD决定,但整个共享内存段的大小不能超过 SHMTOTAL。于此,在性能优化方面, Informix 有如下建议:1、在Informix 运行过程中,如果有另外的虚拟内存段被分配, 此时应该增大 ONCONFIG文件中的

SHMVIRTSIZE

值,可以使用以下公式计算出新的

SHMVIRTSIZE

:SHMVIRTSIZE=SHMVIRTSIZE+

(SHMADD*

新增的虚拟内存段个数)2、如果有连续的虚拟内存段的可用 BLOCK 超过200,此时,可以据此公式来减少SHMADD或SHMVIRTSIZE:SHMADD=SHMADD-((可用的BLOCK数-200)*8)参考命令:onstat–gseg和onstat–gsesSHMADD 定义了InformixIDS 自动加到虚拟存储区的共享内存增量的大小。在增加共享内存时,要占用 CPU周期;每次的增加量越大,增加次数就越少,留给其它的进程的内存也越少。所以一般采用大的增加量。 但是在内存负荷很重时, 少量增加使其他程序更好的共享内存资源。所以,如果实际内存小于等于

256MB,则建议

SHMADD

使用缺省值

8192KB;如果在

256MB

512MB

之间,则设置为

16384KB;如果大于

512MB,则设置为

32768KB。 检测数据库是否无法分配内存如果内存充足数据库日志中打印如下日志:10:39:21shmat: [EMFILE][24]: out of shared memory segments, check systemSHMSEG则说明数据库申请的内存达到了操作系统的某种限制。可以使用onstat–gseg进行监控:SUNWS1%onstat-gsegInformixDynamicServerVersion7.31.UD2R1--On-Line--Up27days14:13:51--28768KbytesSegmentSummary:idkeyaddrsizeovhdclassblkusedblkfree01381386241a0000001225523220912R1488811381386242abb00008192000732V1000021381386243b380000622592616M68831381386244b4180008388608732V190834Total:--29458432--2746850(*segmentlockedinmemory)分析无法分配内存是否存在如下原因:(1) 在HP下,32位的数据库使用的内存总数不能超过 1.75GIBM下,分配的V段内存是否超过11个(SUN下好像限制是96个)(3)分配的V段个数是否超过内核参数SHMMNI限制(4)数据共享内存参数SHMVIRTSIZE/SHMADD是否超过内核参数SHMMAX限制(5)数据库申请的共享内存总量是否超过数据库参数SHMTOTAL配置,一般改参数设置为0,表示不限制。实际的物理内存是否足够。4.3CPU性能如果上述的任何方面的性能存在问题,都有可能导致数据库

CPU

的性能较差,

oninit进程的

CPU

占用率较高。性能的各个方面是互相影响的,

以下简单的描述影响

CPU

性能的另外几个方面。 CPU虚拟处理器(CPUVP)的参数NUMCPUVPS:定义了

InformixIDS

开始启动的

CPUVP的数量。一般情况下不能超过系统CPU的个数,对于单或双个或两个CPUVP;对于有

CPU的计算机系统,建议设置 NUMCPUVPS是1或者2,即使用一4个以上CPU,建议设置 NUMCPUVPS的值等于处理器总数减 1。SINGLE_CPU_VP:定义了多CPUVP(0)和单CPUVP(1)设置。MULTIPROCESSOR:定义了多个 CPUVP(1)还是单个 CPUVP(0)。AFF_NPROCS:定义了可以绑定到 CPUVP的CPU的数目。AFF_SPROC:定义了把连续的几个 CPU(AFF_NRPOCS参数定义的值)中第一个 CPU的序号连接到CPUVP上。例如,某个InformixIDS系统所在的硬件平台有4个CPU,AFF_NPROCS设置为3(即可用于绑定CPUVP的CPU有3个),NUMCPUVPS设置为3,AFF_SPROC设置为1,则3个CPUVP需要绑定到CPU上,是从第2个CPU开始,绑定到第二、三、四个CPU上。SINGLE_CPU_VP设置为0。 对于磁盘I/O虚拟处理器(AIOVP)的配置NUMAIOVP指定系统上 AIO/KAIO 虚拟处理器的数目, 如果Informix IDS采用裸设备存储,可以设置成 2。在

InformixIDS9.2

以后的版本中将

NUMCPUVPS、NOAGE、AFF_NPROCS、AFF_SPROC、NUMAIOVP用

VPCLASS参数代替。当

Informix

IDS处于

online

的状态下,可以使用

onmode-p(+/-) #来增加或者减少虚拟处理器。#代表增加或者减少虚拟处理器的个数。 各类线程的个数是否足够如前所述,VP有CPU、SHM和SOC等类型,使用“ onstat-grea”命令可以观察在READY状态的线程数目,如果某一类的线程数目一直在增长,则说明分配给此类线程的数目偏小,应该增加此类线程的数目了。此命令的的类似输出如下:Readythreads:tidtcbrstcbprtystatusvp-classname65a63a84064464ready1cpusqlexec33672a20409cb4ready3cpusqlexec如果在一段时间内,CPU类的线程数目继续增长,可以考虑调大CPU类线程的数目,如在ONCONFIG 中设置:NETTYPE onipcshm,1,30,CPU 参数配置对CPU的影响一般的,如果应用按照配置要求配置,从参数配置优化 CPU的占用率,可能效果不是很明显。此处简单介绍几个比较重要的参数配置。(1)如果使用多CPU,对于MULTIPROCESSOR要求为1,但是IBM下建议使用0(2)NUMCPUVPS表示CPUVP的个数,一般建议配置成(cpu的个数-1或2),也就是真正处理应用提交的数据库操作的线程数。当oninit进程占用的CPU比较高(如95%以上),而其他未用于数据库操作的CPU比较清闲,可以调整此参数增加CPUVP的个数。SINGLE_CPU_VP一般配置为0。(4) OPTCOMPIND 表示优化器选择应用程序适当的访问方法,为 0(目前有线推荐使用)表示即使在表扫描可能更快的情况下,优化器也不考虑成本选择索引扫描(嵌套循环连接)策略;为 2(目前无线推荐使用)表示优化器根据成本(主要是IO)选择访问方式,即使表扫描锁住整个表。表扫描的连接方式虽然会导致可重复读临时的锁住连接涉及到的所有记录,会增加冲突的可能性,但是相对嵌套循环连接策略性能更高。NETTYPE配置每个连接类型的轮询线程,改参数的配置对整的CPU占用率影响很少,但是在某个CPU已经被完全耗尽时,适当的配置可以平衡CPU的负荷。轮询线程可以在NET和CPU两类VP上配置,为了获取最佳性能,建议只为CPUVP分配一个轮询线程, 其他的轮询线程都分配给 NETVP。每个轮询线程的连接数一般建议不超过 350。 数据库的CPU绑定技术在专用的数据库服务器上,一般除保留一个 CPU外,将数据库的 CPUVP分配到所有剩下的CPU上会获得最大的CPU利用率。可以通过VPClASS配置绑定CPUVP到固定的物理CPU上,如在onconfig中如此配置,将CPUVP分配到4-7号CPU:VPCLASScpu,num=4,aff=4-7如果指定的 CPUVP多余指定的 CPU的个数,则数据库服务器从起始 CPU开始再次分配CPUVP,如:VPCLASScpu,num=8,aff=4-7,数据库将会如下分配:CPUVP0 ――>CPU4CPUVP1 ――>CPU5CPUVP2 ――>CPU6CPUVP3 ――>CPU7CPUVP4 ――>CPU4CPUVP5 ――>CPU5CPUVP6 ――>CPU6CPUVP7 ――>CPU7 磁盘读写对CPU的影响如果

onconfig

中没有配置,则默认值为

50如果数据库的某个数据空间的读写存在问题或则处于不在线状态,

oninit

进程的

CPU

可能会异常偏高,可以使用

onstat–d命令检查数据空间的状态:<41iin-w01[scpxxb]:/opt/informix/etc>onstat-dInformixDbspacesaddressnumberflagsfchunknchunksflagsownernamedf7c31581111Ninformixrootdbsdf7c38982121Ninformixphydbsdf7c39583131Ninformixlogdbsdf7c3a184200141NTinformixtempdbsdf7c3ad85152Ninformixworkdbs5active,2047maximumChunksaddresschk/dbsoffsetsizefreebpagesflagspathnamedf7c32181105000047721PO-/dev/vg01/rrootdbsdf7c3398220550004897PO-/dev/vg01/rphydbsdf7c349833201550004947PO-/dev/vg01/rlogdbsdf7c35984420256000255947PO-/dev/vg01/rtempdbsdf7c369855201000000376078PO-/dev/vg01/rworkdbs1df7c37986501000000995229PO-/dev/vg01/rworkdbs26active,2047maximum正常情况下,如果flags段出现D或L,则表示数据空间存在问题。另外还需要检查数据库空间是否使用的是字符裸设备, 而不是块设备或文件系统。 这个一般也会严重影响数据库的 IO性能。如上数据空间使用的是带 r前缀的 chunk,如:/dev/vg01/rworkdbs1,接着查看 rwofkdbs1的chunk属性:<43iin-w01[scpxxb]:/opt/informix/etc>ls-al/dev/vg01/rworkdbs1crw-rw1informixinformix640x010005Jul312002/dev/vg01/rworkdbs1发现该设备的属性为 c表示字符裸设备,如果为 brw-rw则表示块裸设备,如果为-rw-rw则表示为文件系统。5 Onstat 命令的几个重要选项5.1 Onstat-DDbspacesdressnumberflagsfchunknchunksflagsownernamead5c1001111Ninformixrootdbsad5dc282121Ninformixdbs7ad5dc983131Ninformixdbs83active,2047maximumaddresschk/dbsoffsetpageRdpageWrpathnamead5c17011501259289/dev/pa11ad5c63822501111/dev/pa12ad5c710335030/dev/pa133active,2047maximum说明:根据该命令的输出参数“pageRd”(页读)和“PageWr”(页写)的数目,可以检查每个chunk访问的均衡情况。。若读写不均衡说明该数据块使用不当;5.2 onstat-l4046800KbyteshysicalLoggingBufferbufusedbufsizenumpagesnumwritsges/ioP-245220003647872881266.62Phybeginphysizephyposphyused%used1021595000003211664800.10LogicalLoggingBuffer bufused ufsize numrecs numpages numwrits recs/pagespages/ioL-23100011052069153

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论