logo
GBase 8s
性能调优
文章
精选

GBase 8s数据库参数配置最佳实践

GBase社区管理员
发表于2024-04-30 11:47:28911次浏览0个评论

前言

​很多时候,GBase用户经常会问如何调优GBase 8s的参数,参数变更往往会产生意想不到的结果,包括性能下降或者系统不稳定等。在对任何数据库配置参数做出变更之前,请首先思考以下最佳实践:

​ 1、哪一些参数不能修改,那一些参数可以修改;

​ 2、这些提供修改的参数是不是已经是最佳设置,如何才能利用好这些参数;

哪些参数可以改

​ 在8s产品实例初始化时,与实例信息、数据文件存放路径以及root dbspace相关的参数例如,DBSERVERNAME、DATADIR、ROOTNAME、ROOTPATH等建议不要随意更改,有可能引起实例无法正常使用等问题。

​ 除上述的这些参数外,绝大部分的参数都已经由DBA团队和源码团队优化过,用户不需要过多调整配置参数就可以把数据库比较好的运行起来。但这些参数只是适合大多数的应用场景,个别特殊的场景还是需要个别对待。

配置参数最佳实践

​ 下面把能够修改的一些比较重要的参数进行重点介绍,这些参数如果设置不当则可能会出现性能问题或应用报错。

序号

参数

作用

建议值

说明

1

PHYSFILE

 

物理日志文件大小(Kbytes)

 

PHYSFILE 20480000

 

  • 物理日志的大小与逻辑日志的大小比例为1:3,即为全部dbspace的5% (逻辑日志所占空间大小为全部dbspace的15%);
  • 也有说法为logdbs 为datadbs的 1/3, phydbs为logdbs1/2,tmpdbs=phydbs 这里要按实际情况进行计算,一般可以按上面的比例进行。
  • 物理日志在数据库初始化后一般会移到其它空间上,而不是在rootdbs上,为了最小化 root dbspace 的磁盘争用,以提高整个系统的性能。
2LOGFILES逻辑日志文件数目

LOGFILES 200

 

  • 逻辑日志文件夹的个数,依业务的逻辑日志量调整
  • 逻辑日志总空间=LOGFILES*LOGSIZE
3LOGSIZE逻辑日志文件大小(Kbytes)

LOGSIZE 512000

 

  • 总的逻辑曰志空间分配为全部dbspace空间大小的15%
  • 总体原则是大的日志文件+少的文件个数更有利于管理。逻辑日志总空间规划要至少满足一周业务使用,建议500MB/个。
  • 不要手动修改,请通过onparams来调整日志大小和所在空间
4SHMVIRTSIZE指定虚拟共享内存段的初始大小

SHMVIRTSIZE 10240000

 

  • 数据库总内存计算方法: SHMVIRTSIZE (KB)+LOCKS144 (Byte)+BUFFERPOOL(sizebuffers) (KB) 如系统内存不足或系统内存充足,可适当调整BUFFERPOOL参数的buffers大小用于数据缓存,以充分利用系统资源,建议数据库总内存不超过系统内存的50%。
  • SHMVIRTSIZE建议为物理内存的5%。这个值单位是K,根据你的并发会话数据量来设置这个内存。
5LOCKS用户进程在运行过程中可使用的锁的最大数目

LOCKS 100000000

 

  • 按实际物理内存大小分配,内存大此值可以使用最多5亿。一个记录锁占用共享内存中64个字节,若将值改为200000,online共享内存8兆多被占用,故锁数量对共享内存影响不大。
  • 对于32位服务器,取值范围:2000~~8,000,000
  • 对于64位服务器,取值范围:2000~~500,000,000
BUFFERPOOL共享内存缓存池

BUFFERPOOL  size=2k,buffers=1000000,lrus=128,lru_min_dirty=50,lru_max_dirty=60

BUFFERPOOL  size=16k,buffers=5000000,lrus=128,lru_min_dirty=50,lru_max_dirty=60

 

  • 物理内存的20%至25%。这个值是页数,根据你的dbspaces的页大小,请分片对应的缓冲区,以缓冲相应dbspaces上的数据页。
7PHYSBUFF以kb为单位指定共享内存中的每个物理日志缓冲区的大小

PHYSBUFF 1024

 

  • 此参数决定了物理日志缓冲区刷新到物理日志文件的频率.此值介于一页大小和物理日志文件大小之间,若想设成16个页面则该值大小为16*2(页面大小)。
8LOGBUFF逻辑日志缓存大小(Kbytes)

LOGBUFF 1024

 

  • 最大不能超过LOGSIZE,逻辑日志的活动相当频繁,分配较大的LOGBUFF并使用带缓冲日志的数据库将提高糸统的性能,缓冲中的日志达到这个值时才向逻辑日志文件中写入。
9RESIDENT强迫驻留标志

RESIDENT 1

 

  • 为保持较好性能,应将共享内存缓冲区强制驻留在物理内存中(设为1); 但若物理内存太小,将会使系统进程和用户进程没有足够内存。
  • -1 - 99
  • 0 =关闭
  • 1 =只锁定常驻段
  • -1 =锁定所有常驻段和虚段
  • N =锁定常驻段和接下来的N -1个虚拟段。例如,如果指定99,则该驻留段将被锁定,之后的98个虚拟段将被锁定。
10NETTYPE网络连接池配置

NETTYPE soctcp,2,300,NET

 

  • 依据连接数来配置,基本保持SOCVP*每个VP管理的数据=总连接数即可。
11STACKSIZE配置参数指定数据库服务器用户线程的堆栈大小。STACKSIZE 2048 
12DS_TOTAL_MEMORY配置参数指定可用于PDQ查询的内存量

DS_TOTAL_MEMORY 256000

 

  • 这个量应该小于计算机物理内存,减去固定开销(如操作系统大小和缓冲池大小)。
  • 对于日常跑OLTP业务的数据库,这个内存应该设置的更小。256M基本上合适。
13DS_NONPDQ_QUERY_MEM配置参数来指定非PDQ数据库查询可用的内存量

DS_NONPDQ_QUERY_MEM 64000

 

  • 一般情况DS_TOTAL_MEMORY值的25%,64M基本上合适。
14DBSPACETEMP置参数指定数据库服务器用于全局管理临时表存储的dbspace列表

DBSPACETEMP tempdbs01,tempdbs02,tempdbs03,tempdbs04

 

  • 一般情况下配置2个或4个临时dbs存储空间。
15TEMPTAB_NOLOG配置参数禁用临时表上的日志记录

TEMPTAB_NOLOG 1

 

  • 配置为1后,那么临时空间上的表操作就不会产生日志记录。

 

16MULTIPROCESSOR以适合单处理器计算机还是多处理器计算机的方式执行锁定

MULTIPROCESSOR 1

 

  • 0 =无多处理器
  • 1 =多处理器可用

 

17VPCLASS配置VP的类型和数量

VPCLASS cpu,num=15,noage

 

  • 如果服务器上的cpu比较少,一般建议配置成逻辑cpu总数-1
  • 如果服务器上的cpu比较多,配置64或者128就差不多了。
18CLEANERS配置参数指定数据库服务器操作期间可用的页面清理线程数

CLEANERS 32

 

  • 默认情况下,数据库服务器总是运行一个页面清理器线程。一般原则是每个磁盘驱动器有一个页面清理器。
  • 一般情况下配置32个清理线程比较合适。
19DEF_TABLE_LOCKMODE配置参数为新表指定页或行级别的锁定模式

DEF_TABLE_LOCKMODE row

 

  • 配置为row,新表重建时默认为行锁模式。

 

20LTAPEDEVontape备份时逻辑日志备份路径

LTAPEDEV /data/backup

 

  • 生产环境不要将LTAPEDEV设置为空/dev/null。
  • 生产环境要及时并可靠的备份好逻辑日志,也保障数据安全。
21ALLOW_NEWLINE允许在带引号的字符串中使用换行符

ALLOW_NEWLINE 1

 

  • 配置为1后,将允许在带引号的字符串中使用换行符。
22DUMPSHMEM指示是否在断言失败时创建共享内存转储

DUMPSHMEM 0

 

  • 一般不要开共享内存转储
23SBSPACENAME智能大对象默认空间

SBSPACENAME sbspace01

 

  • 如果实例需要存储智能大对象,需要先创建智能大对象表空间,再指定默认空间。
24SYSSBSPACENAME智能大对象空间系统管理空间

SYSSBSPACENAME sbspace01

 

  • 如果实例需要存储智能大对象,需要先创建智能大对象表空间,再指定大对象系统管理空间。
25AUTO_TUNE启用或禁用所有自动调优配置参数

AUTO_TUNE 0

 

  • 自动调优配置参数有:
  • AUTO_AIOVPS
  • AUTO_CKPTS
  • AUTO_LRU_TUNING
  • AUTO_READAHEAD
  • AUTO_REPREPARE
  • AUTO_STAT_MODE
26SHMADD指定虚拟内存段扩展大小

SHMADD 5120000

 

  • 根据硬件调整,单位是k,一般设置为SHMVIRTSIZE的一半。
27SHMTOTAL指定数据库使用的最大内存量

SHMTOTAL 0

 

  • 设置为0表示不限制,可指定至操作系统内存的70-90%
28USELASTCOMMITTED指定使用最后提交读

USELASTCOMMITTED “NONE”

 

  • 推荐默认使用COMMITTED READ隔离级别,不推荐使用LASTCOMMITTED的隔离级别。

 

 

 

评论已关闭