ITPub博客

首页 > 数据库 > 国内数据库 > 南大通用GBase8s数据库存储监控及调整方法

南大通用GBase8s数据库存储监控及调整方法

原创 国内数据库 作者:DMD_202007 时间:2020-11-11 10:06:52 0 删除 编辑

南大通用GBase8s 数据库存储监控及调整 方法

通过监控后台I/O ,分析数据的分别是否合理,消除I/O 瓶颈。主要监控检查点、缓冲写、数据库空间、日志记录和页面清除。主要监控命令如下:

1)         Checkpoint 监控

onstat -g ckp 监控数据库实例的checkpoint 情况

2)         缓冲写监控

onstat -F 监控数据库实例三种写类型情况:前台写、lru 写、chunk

onstat -R 监控LRU 队列,从而调整lrus ,lru_max_dirty,lru_min_dirty ,避免频繁的LRU 写引起checkpoint 而影响性能

3)         数据库空间监控

onstat -D 监控chunk 的读取和写入的页数,如果太高,说明此chunk 有太多I/O ,若此chunk 存储的多个表,分离数据存储;若此chunk 存储的是单个表,考虑分片.

onstat -g iof 监控数据库实例的IO 活动及分布,包括AIO 和KAIO

onstat -P 监控bufferpool 中data pages 和index pages 占得比例,从而调整表结构和索引结构。

4)         日志监控

onstat -l 监控逻辑日志和物理日志的使用情况,判断其是否足够,避免其引起checkpoint 而影响性能。

1.1 Checkpoint 监控

命令

输出字段

描述

 

 

 

 

 

onstat -g ckp

AUTO_CKPTS

On ,设置为自动控制 checkpoint

RTO_SERVER_RESTART

On/off

性能测试中应置为 off ,否则严重影响性能

Trigger :

CKPTINTVL

LLog/PLog

LRU

RTO

......

触发事件:

尽量使用 CKPTINTVL 触发 checkpoint

配置合理的 plog , llog

调整 LRU 的数量和脏数据的比例

RTO_SERVER_RESTART 引起 ckpt ,应置为 0

CLEANERS

Total time

Flush time

Block time

Checkpoint 执行时间

刷新缓冲池所需的时间

ckpt 期间阻塞的时间

图 4-11 通过 onstat -g ckp 监控 checkpoint 信息

1.2 缓冲写监控

命令

输出字段

描述

 

onstat -F

Fg Writes

Foreground writes 用户线程请求而发生的页面刷新,如果不为 0 ,表明缓冲池中没有空白可用的缓冲区或是缓冲区太脏

此时需要调整 BUFFERPOOL 和 CKPTINTVL 参数

LRU Writes

发生的条件是缓冲池超过了 BUFFERPOOL 参数的 lru_max_dirty 值。应尽量避免 LRU 写,应为 0

Chunks Writes

因检查点的执行而发生的写

图 4-12 通过 onstat -F 监控缓冲写

 

命令

输出字段

描述

 

onstat -R

Buffer pool page size

Onconfig 文件中配置了几个 bufferpool ,这里就会显示几个。如图显示 page 为 2k 和 8k 的 bufferpool

f/m

Free LRU 队列,尚未被使用的页

MRU 队列,已被修改的页

其中修改页面的百分比应始终低于 lru_max_dirty ,如图最下面的 60.000% ,否则会有 LRU 写而引起 checkpoint ,影响性能。

 

 

图 4-13 通过 onstat -R 监控 LRU 队列情况

1.3 数据库空间监控

通过监控数据库空间的使用情况,观察是否有热点chunk ,然后调整表和索引的分配以均衡I/O 。

命令详解如下:

命令

输出字段

描述

onstat -D

page Rd 、 Wr

读取 / 写入的页数

 

图 4-14 通过 onstat -D 监控是否有热点 chunk

 

命令

输出字段

描述

 

onstat -g iof

reads/writes

未使用 KAIO 的读写情况

kaio_reads/writes

使用 KAIO 的读写情况

io/s

每秒 I/O 操作数

 

图 4-15 通过 onstat -g iof 监控是否有热点 chunk

 

命令

输出字段

描述

 

onstat -P

Data

bufferpool 中 data pages 占得比例

Btree

bufferpool 中 index pages 占得比例

Other

bufferpool 中其他 pages 占得比例

 

 

 

图 4-16 通过 onstat -P 监控数据和索引的分布

1.4 日志监控

GBase 8s 包含逻辑日志、物理日志。建议逻辑日志、物理日志不要建在rootdbs 上,分离存储。

命令

输出字段

描述

onstat -l

bufsize

对应 onconfig 中 LOGBUFF 、 PHYBUFF

physize

物理日志的页数,物理日志大小 =physize*pagesize

size

此逻辑日志的页数,逻辑日志大小 =physize*pagesize

pages/io

numpages/numwrits ,写 buffer 的效率

如果 (pages/io)/bufsize 得到的值为 75% 左右,那么说明 logical log buffer 被有效的使用;如果该值小于 65% ,那么说明 logical log buffer 太大;如果该值大于 90% ,那么说明 logical log buffer 太小;物理日志同上。

图 4-17 通过 onstat -l 监控日志信息

官网:

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69980677/viewspace-2733425/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-07-31

  • 博文量
    36
  • 访问量
    31943