Informix性能调优之onconfig文件

2024-05-13 02:18

本文主要是介绍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文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984400

相关文章

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

Java的"伪泛型"变"真泛型"后对性能的影响

《Java的伪泛型变真泛型后对性能的影响》泛型擦除本质上就是擦除与泛型相关的一切信息,例如参数化类型、类型变量等,Javac还将在需要时进行类型检查及强制类型转换,甚至在必要时会合成桥方法,这篇文章主... 目录1、真假泛型2、性能影响泛型存在于Java源代码中,在编译为字节码文件之前都会进行泛型擦除(ty

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

jvm调优常用命令行工具详解

《jvm调优常用命令行工具详解》:本文主要介绍jvm调优常用命令行工具的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一 jinfo命令查看参数1.1 查看jvm参数二 jstack命令2.1 查看现场堆栈信息三 jstat 实时查看堆内存,gc情况3.1

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常