暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

GBase 8s数据库内存管理及数据库网络连接管理

原创 一直在路上 2022-02-18
1074

数据库内存管理

GBase 8s共享内存按类型分为3类:常驻内存段(Resident Segment)、虚拟内存段(Virtual Segment)和消息段(Message Segment)。
内存的管理通过ONCONFIG参数来设置。通过onstat命令查看内存使用情况。

一、数据库常驻内存段

简单介绍常驻内存中几个重要部分的参数设置。

PHYSBUFF 128,单位为K,物理日志缓存,最大值为:(32767*pagesize/1024),pagesize为系统默认的pagesize,Linux为2K,AIX 4K。一般设置为128~1024即可,负责项目中的一个实际环境设置的是2048。现在正式环境下一般直接用16K,数据空间也用16K。

LOGBUFF 64,单位为K,逻辑日志换成,最大值为:(32767*pagesize/1024),pagesize为系统默认的pagesize,Linux为2K,AIX 4K。一般设置128以上,负责项目中的一个实际环境设置的是1024,从性能角度建议比较大的值。如果采用了Buffer的日志模式,那么从数据丢失的安全角度考虑,LOGBUFF值应设置得尽量低。

BUFFERPOOL修改:
BUFFERPOOL default,buffers=10000,lrus=8,lru_min_dirty=50.00,lru_max_dirty=60.50
BUFFERPOOL size=2k,buffers=435000,lrus=32,lru_min_dirty=50,lru_max_dirty=60
BUFFERPOOL size=16k,buffers=425000,lrus=64,lru_min_dirty=50,lru_max_dirty=60

二、数据库虚拟内存段:

RESIDENT 0:是否将内存段、包括常驻内存驻留,即启动时将内存从系统分配给GBase 8s,如果内存较大,则启动过程较长。

SHMBASE 0x4000000L:一般为默认值即可,特别是在单服务器安装多个实例的情况下。

SHMVRTSIZE 1024000:虚拟内存段大小,按性能考虑,一般配置在4GB以上。

SHMADD 1024000:虚拟内存段每次自动扩展的大小。

SHMTOTAL 0:GBase 8s使用内存总量设置(包括常驻内存、虚拟内存段、消息内存段)、0表示不限制大小,直至系统使用完。建议:在生产系统中为保障系统安全、防止系统存在内存溢出、导致系统内存耗尽的情况下,可以设置一个合理的上限值。

三、数据库消息段

当应用程序和服务器部署在同一台物理服务器上时,采用共享内存通信的机制,GBase 8s将使用一块独立的内存来进行应用程序和服务器间的通信,可以提高通信的效率。

数据库网络连接管理

一、数据库网络配置

数据库服务器可以通过共享内存、流通道和TCP/IP协议方式连接。在默认情况下服务器会生成一个poll线程(poll thread),该线程允许至多50个用户访问数据库。如果使用DBSERVERNANE命令设置数据库服务器的名称,那么CPU VP就会启动一个poll thread;如果通过DBSERVERALIAS命令设置数据库服务器的名称,那么会先启动一个网络VP(SHM、STR、TLI或SOC),然后该VP会启动一个针对网络协议的poll thread。

GBase 8s数据库服务器支持多种连接协议和方式,因此可以设置多个NETTYPE。配置NETTYPE时可以采用如下格式:

NETTYPE protocol,#poll_threads,max_connections,vp_class

NETTYPE中字段说明如下表:

Protocol				在sqlhost文件中记录的该servername对应的网络协议
#poll_threads				poll thread的个数
max_connections				可以连接到每个poll thread的最大用户个数
vp_class				取值为CPU或NET:当取值为CPU时,poll thread将由VPCLASS设置的CPU VP启动;当取值为NET时,当服务器启动时,将由相应的SHM、STR、TLI或SOC VP启动

以下例子为配置一个拥有两个poll thread,允许最多100个用户同时连接的socket连接:

NETTYPE soctcp,2,100,CPU

二、数据库网络监控

可以通过onstat -g命令查看数据库实例的网络状态,命令选项如表

ntu					显示网络用户的线程读写信息
ntt					显示网络用户的线程访问时间
ntm					显示网络消息信息
ntd					显示网络分派信息
nss sessionid				显示sessionid指定的会话的网络共享内存状态
nsc clientid				显示clientid指定的用户网络共享内存状态
nsd					显示网络共享内存状态

最后修改时间:2022-02-18 11:25:49
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论