Documentation Home
MySQL 8.0 参考手册  / 第十八章 组复制  / 18.7 组复制性能和故障排除  /  18.7.9 使用性能模式内存检测监控组复制内存使用情况

18.7.9 使用性能模式内存检测监控组复制内存使用情况

从 MySQL 8.0.30 开始,Performance Schema提供了用于对 Group Replication 内存使用情况进行性能监控的工具。要查看可用的组复制工具,请发出以下查询:

Press CTRL+C to copy
mysql> SELECT NAME,ENABLED FROM performance_schema.setup_instruments WHERE NAME LIKE 'memory/group_rpl/%'; +-------------------------------------------------------------------+---------+ | NAME | ENABLED | +-------------------------------------------------------------------+---------+ | memory/group_rpl/write_set_encoded | YES | | memory/group_rpl/certification_data | YES | | memory/group_rpl/certification_data_gc | YES | | memory/group_rpl/certification_info | YES | | memory/group_rpl/transaction_data | YES | | memory/group_rpl/sql_service_command_data | YES | | memory/group_rpl/mysql_thread_queued_task | YES | | memory/group_rpl/message_service_queue | YES | | memory/group_rpl/message_service_received_message | YES | | memory/group_rpl/group_member_info | YES | | memory/group_rpl/consistent_members_that_must_prepare_transaction | YES | | memory/group_rpl/consistent_transactions | YES | | memory/group_rpl/consistent_transactions_prepared | YES | | memory/group_rpl/consistent_transactions_waiting | YES | | memory/group_rpl/consistent_transactions_delayed_view_change | YES | | memory/group_rpl/GCS_XCom::xcom_cache | YES | | memory/group_rpl/Gcs_message_data::m_buffer | YES | +-------------------------------------------------------------------+---------+

有关 Performance Schema 的内存检测和事件的更多信息,请参阅 第 27.12.20.10 节,“内存摘要表”

Performance Schema Group Replication 为 Group Replication 分配内存。

memory/group_rpl/性能模式检测在 8.0.30 中进行了更新,以扩展对组复制内存使用情况的监视 。memory/group_rpl/包含以下仪器:

  • write_set_encoded:分配给写入集的内存在广播给组成员之前对其进行编码。

  • Gcs_message_data::m_buffer:为发送到网络的交易数据有效载荷分配的内存。

  • certification_data:分配用于验证传入交易的内存。

  • certification_data_gc: 为每个成员发送的用于垃圾收集的 GTID_EXECUTED 分配的内存。

  • certification_info:分配用于存储认证信息的内存分配用于解决并发事务之间的冲突。

  • transaction_data:为排队等待插件管道的传入事务分配的内存。

  • message_service_received_message: 分配给从组复制传递消息服务接收消息的内存。

  • sql_service_command_data: 为处理内部 SQL 服务命令队列分配的内存。

  • mysql_thread_queued_task: 当一个 MySQL 线程相关的任务被添加到处理队列时分配的内存。

  • message_service_queue: 为组复制传递消息服务的排队消息分配的内存。

  • GCS_XCom::xcom_cache:分配给 XCOM 缓存的内存,用于作为共识协议的一部分在组成员之间交换消息和元数据。

  • consistent_members_that_must_prepare_transaction:分配的内存用于保存为组复制事务一致性保证准备事务的成员列表。

  • consistent_transactions:分配的内存用于保存事务和必须为组复制事务一致性保证准备该事务的成员列表。

  • consistent_transactions_prepared:分配的内存用于保存为组复制事务一致性保证准备的事务信息列表。

  • consistent_transactions_waiting: 分配内存以保存事务列表的信息,同时处理之前准备好的事务的一致性 AFTERBEFORE_AND_AFTER被处理。

  • consistent_transactions_delayed_view_change: 分配的内存用于保存视图更改事件列表 ( view_change_log_event),这些事件因等待准备确认的准备一致事务而延迟。

  • group_member_info:分配的内存用于保存组成员属性。主机名、端口、成员权重和角色等属性。

分组中的以下工具memory/sql/ 也用于监视 Group Replication 内存:

  • Log_event:分配给写集生成过程的内存。

  • write_set_extraction:在提交之前分配给事务生成的写集的内存。

  • Gtid_set::to_string: 分配给存储 GTID 集的字符串表示的内存。

  • Gtid_set::Interval_chunk: 分配给存储 GTID 对象的内存。