本文主要是介绍Informix性能调优之onconfig文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.逻辑日志配置
LOGFILES 6 #逻辑日志文件数目(范围3-60)
LOGSIZE 5000 #逻辑日志文件大小(Kbytes)
逻辑日志总空间=LOGFILES*LOGSIZE
大的日志文件,少的个数有利于管理,但不知道日志文件要多大才算合适,过大可能会影响性能
2.物理日志配置
PHYSDBS rootdbs #物理日志所在数据库空间名
PHYSFILE 10000 #物理日志文件大小(Kbytes)
物理日志的大小与逻辑日志的大小比例一般为1:3,即为全部dbspace的5% (逻辑日志所占空间大小为全部dbspace的15%)
物理日志在数据库初始化后一般会移到其它空间上,而不是在rootdbs上
3.共享内存参数
SHMBASE 0x0 #共享内存基本地址,共享内存段的地址起始于 SHMBASE 值并增长直到达到上限,这与平台相关。
SHMVIRTSIZE 16000 #虚拟共享内存段的初始大小,如果online的消息日志中提示用户应增加虚拟内存的大小,则应在本参数上加上所建议的值。若内存足够,将该其设置成超过日常操作所需要的值。虚拟内存可以动态添加内存段,但是如果其大小不是日常操作需要的大小,进程在等待添加内存段时可能需要更长时间。使用更大的内存(8000 KB)或 Informix sqlhosts 文件中指定的所有网络连接类型数乘以350。
SHMADD 8192 # 指定将动态添加至 Informix 通用服务器共享内存的虚拟部分的内存段的大小。推荐设置:若物理内存<256M,SHMADD=8192;若256M<物理内存<512M,SHMADD=16384;若物理内存>512M,SHMADD=32768。
SHMTOTAL 0 # 指定 Informix 数据库服务器的最大共享内存大小。零值(0)使共享内存在需要时从系统持续获取内存段。除非因为其它应用程序运行在相同计算机上,因而需要限制事件数据库服务器访问所有的内存,否则应当将值设置为 0。
RESIDENT 0 #强迫驻留标志(Yes=1,NO=0),为保持较好性能,应将共享内存缓冲区强制驻留在物理内存中(设为1), 但若物理内存太小,将会使系统进程和用户进程没有足够内存
CLEANERS 4 #页清洁器进程数,一般为4*CPU VP数量
BUFFERPOOL size=2k,buffers=50000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
BUFFERS 200 # 最大共享内存缓存数,这个值是页数,若一页为2k(onstat -b可以查看), 它会在oninit里就分配内存,BUFFERPOOL=BUFFERS*2 K ,共享内存一般占物理内存的20%至25%,如果这个值过大,就会出现内存不足的情况
LRUS 4 #共享内存缓冲区中LRU队列对的数目,单处理器设为4,一般和CLEANERES数量一致,4*CPU。取值范围依赖于操作系统的位大小:32位系统8 - 128,64位系统8 - 512。指定 LRU 队列越多,就有越多页清除程序并行工作。然而,设置 lrus 域的值过高,可能导致过度的页清除程序活动,lrus 域的值与 lru_min_dirty 和 lru_max_dirty 域组合在一起,控制共享内存缓冲区清空到磁盘的频率。
LRU_MIN_DIRTY 50 # min_percentage 值是一个 0 - 100.00 的十进制数,设置在 LRU 队列中当被修改的页达到多少百分比时不再强制清除页。
LRU_MAX_DIRTY 60 # max_percentage 是一个 0 - 100.00 的十进制数,设置在 LRU 队列中当被修改页达到多少百分比时清除队列。
USERTHREADS 20 #最大并发用户进程数,用户数应至少满足将online联机要求,即应包含以下用户数:
可能的数据库服务进程(用户进程)+online共享内存(7个进程),如某农信可能有进程数100,加上共享内存进程数7个,应设为107
TRANSACTIONS 20 #最大并发事务数,不可少于USERS数
LOCKS 20000 #最大锁数,用户进程在运行过程中可使用的锁的最大数目,一个记录锁占用共享内存中64个字节,若将值改为200000,online共享内存8兆多被占用,故锁数量对共享内存影响不大
PHYSBUFF 32 #物理日志缓存大小(Kbytes),以kb为单位指定共享内存中的每个物理日志缓冲区的大小,此参数决定了物理日志缓冲区刷新到物理日志文件的频率.此值介于一页大小和物理日志文件大小之间,若想设成16个页面,则该值大小为16*2(页面大小)
LOGSBUFF 32 #逻辑日志缓存大小(Kbytes),最大不能超过LOGSIZE,逻辑日志的活动相当频繁,分配较大的LOGBUFF并使用带缓冲日志的数据库将提高糸统的性能,缓冲中的日志达到这个值时才向逻辑日志文件中写
LOGSMAX 6 #最大逻辑曰志文件数,不能少于LOGFILES的值
CKPTINTVL 300 #检查点时间间隔(in seconds) ,检查点频繁会影响性能,所以加大这个值在某种程序上会提高性能
RA-PAGES 50 #指定在顺序扫描数据或索引记录时预先读入页的数目。预读可以加快数据库处理速度,因为I/O的操作是比较慢的。RA_PAGES参数与RA_THRESHOLD参数结合使用。RA_PAGES取值介于RA_THRESHOLD和BUFFERS之间。若MULTIPROCESSOR=0, 缺省值为4, 原值为空, 现值50
RA_THRESHOLD 40 #与RA_PAGES参数一起用于顺序扫描数据或索引记录操作中。取值介于0到RA_PAGES-1,在设置RA_PAGES与RA_THRESHOLD时,不要将它们的值设置的太大,否则将导致过多的缓冲活动,从而浪费内存和CPU资源
4.多处理器参数
MULTIPROCESSOR 0 #是否为多处理器机,0 不是多处理器,1 多处理器
SINGLE-CPU-VP 0 #是否只运行一个CPU虚拟处理器(1=是,0=否)。若此值非0,则NUMCPUVPS必须设为1,在只使用一个CPU vp的情况下,最好将该参数设为1,系统性能大约能提高10%。
NUMCPUVPS 1 #要运行的CPU类vp的个数,在单处理机上,设为1,多处理机上不超过机器上CPU的数目
NUMAIOVPS 2 # 要运行的AIO类vp的个数,若MULTIPROCESSOR=0 或为单处理器,此值为2;若为多处理器,缺省值为(2*CHUNKS)和6中较大的一个
NETTYPE # 与连接文件一起使用,对dbservername项中定义的协议提供补充规定。Dbservername在配置参数DBSERVERNAME或DBSERVERALIASES中定义,NETTYPE有四个字段
Protocol 协议或连接类型,同sqlhosts文件中nettype字段除去数据库服务器前缀on或ol 后一样。如ipcshm、scotcp、tlitcp
Poll_threads 用于管理连接的轮讯线索的数目。缺省为1,每个轮讯线索可以处理200到250个用户连接,不足时可以增加。
Users 期望的最大客户应用连接数。缺省值为USERTHREADS的值(也是该字段的最大值)。此字段定义了使用指定协议可以同时建立的用户连接的最大值。
Vpclass 指定运行轮讯线索的虚拟处理器类型,只能为CPU或NET,该字段的缺省值与protocol在sqlhosts文件中对应的dbservername有关,若dbservername是由DBSERVERNAME参数定义的,该字段缺省为CPU;否则(由DBSERVERALIASES定义),为NET。此类型在online初始化后,可用onstat –g ath命令查看到。
四个字段之间用逗号分隔,NETTYPE可在配置文件中多次出现,以分别定义多种协议项。以下配置是有效的:
NETTYPE ipcshm,1,50,CPU
NETTYPE soctcp,1,20,NET
即同时使用两种连接:共享内存和网络连接(TCP/IP的套接字)
原文:https://blog.csdn.net/vinep/article/details/1367520
这篇关于Informix性能调优之onconfig文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!