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

相关文章

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策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6