注册
DM DSC 共享存储集群优化
专栏/龙山溪笔谈/ 文章详情 /

DM DSC 共享存储集群优化

myth8860 2021/01/29 2293 1 0
摘要 DM DSC 共享存储集群优化

达梦共享存储集群 DMDSC 适用于密集交易型场景的共享存储集群,采用单库多实例架构,基于共享存储上的多个节点对外提供服务,实现高吞吐量;自动接管故障节点,保证系统高可用性;对标 ORACLE RAC 架构,是适合金融、央企核心生产系统的解决方案。

目前达梦共享存储集群以在国家电网核心系统调控云、财政预算核算一体化等核心生产系统中获得广泛应用。

给大家分享一个 DM DSC 上的一个优化案例:某财务核心生产系统采用 3 节点 DM DSC 集群,基于全国产平台鲲鹏 920+ 中标麒麟。

某天 DM DSC 集群各节点发现了大量的 insert 语句阻塞现象。

查询 v$dsc_trxwait 视图找到阻塞的源头事务的 id:228476991。

select (select sql_text from v$sessions where trx_id = a.id), (select sql_text from v$sessions where trx_id = a.wait_for_id) from v$dsc_trxwait a

然后在 SQL 日志中找到这个事务 id 完整的 SQL 语句,分析这个事务发现这个业务需要并发往同一张表里面插入数据,用完后又要删除掉,这样就造成了阻塞。

依据 DM DSC 共享存储集群应用优化原则:

  • 像单实例一样进行应用优化,如 SQL 优化、实例参数优化
  • 减少 DSC 节点间的数据交互

本例中存在大量的节点之间数据交互,并且即使在单实例这种业务的并发也会造成阻塞。

通过分析业务发现,这种对同一张表的并发插入,用完后删除数据是可以通过临时表来完美解决的。

优化措施:

  • 将这张并发插入的表改造成事务级的临时表。
  • 事务结束,临时表数据自动删除,不需要写 delete 语句。

优化效果:

  • 并发插入同一张临时表不会造成阻塞。
  • 临时表在 DSC 集群各节点的内存内各自处理,不存在节点间的交换。
  • 阻塞消失,应用性能大幅提升。

最后分享一下 DM DSC 集群优化的一些基本原则

  • DSC 和单实例数据库,在对性能分析和调优的原理上是一致。
  • 在 DSC 集群的性能分析和调优之前,必须对单个实例的性能进行分析和调优。
  • 如果应用在 SMP 环境下无法线性扩展,则也无法在 DSC 下线性扩展,甚至性能更差。
  • 单实例上运用的性能分析和调优技术均适合于 DSC 环境。
  • 减少 DSC 节点间的数据交互:按照不同应用或不同应用模块部署(应用支持多数据源配置),使用分区表按照应用特征如地市进行数据分区。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服