文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  NDB 集群与性能架构

25.6.19 NDB 集群与性能架构

NDB 在 MySQL 性能架构中提供有关 ndbcluster 插件线程和交易批次内存的检测信息。这些功能将在以下部分中详细介绍。

ndbcluster 插件线程

ndbcluster 插件线程在性能架构的 threads 表中可见,如下面的查询所示

Press CTRL+C to copy
mysql> SELECT name, type, thread_id, thread_os_id -> FROM performance_schema.threads -> WHERE name LIKE '%ndbcluster%'\G +----------------------------------+------------+-----------+--------------+ | name | type | thread_id | thread_os_id | +----------------------------------+------------+-----------+--------------+ | thread/ndbcluster/ndb_binlog | BACKGROUND | 30 | 11980 | | thread/ndbcluster/ndb_index_stat | BACKGROUND | 31 | 11981 | | thread/ndbcluster/ndb_metadata | BACKGROUND | 32 | 11982 | +----------------------------------+------------+-----------+--------------+

threads 表显示了这里列出的所有三个线程

  • ndb_binlog: 二进制日志线程

  • ndb_index_stat: 索引统计线程

  • ndb_metadata: 元数据线程

这些线程也在 setup_threads 表中按名称显示。

线程名称在 threadssetup_threads 表的 name 列中使用格式 prefix/plugin_name/thread_name 显示。 prefix,由 performance_schema 引擎确定的对象类型,对于插件线程为 thread(请参阅 线程检测元素)。plugin_namendbclusterthread_name 是线程的独立名称(ndb_binlogndb_index_statndb_metadata)。

使用 threadssetup_threads 表中给定线程的线程 ID 或操作系统线程 ID,可以从性能架构中获取有关插件执行和资源使用情况的大量信息。本示例展示了如何通过联接 threads 表和 memory_summary_by_thread_by_event_name 表来获取由 ndbcluster 插件创建的线程从 mem_root 区域分配的内存量

Press CTRL+C to copy
mysql> SELECT -> t.name, -> m.sum_number_of_bytes_alloc, -> IF(m.sum_number_of_bytes_alloc > 0, "true", "false") AS 'Has allocated memory' -> FROM performance_schema.memory_summary_by_thread_by_event_name m -> JOIN performance_schema.threads t -> ON m.thread_id = t.thread_id -> WHERE t.name LIKE '%ndbcluster%' -> AND event_name LIKE '%THD::main_mem_root%'; +----------------------------------+---------------------------+----------------------+ | name | sum_number_of_bytes_alloc | Has allocated memory | +----------------------------------+---------------------------+----------------------+ | thread/ndbcluster/ndb_binlog | 20576 | true | | thread/ndbcluster/ndb_index_stat | 0 | false | | thread/ndbcluster/ndb_metadata | 8240 | true | +----------------------------------+---------------------------+----------------------+

交易内存使用情况

您可以通过查询性能架构的 memory_summary_by_thread_by_event_name 表来查看用于交易批处理的内存量,类似于这里所示

Press CTRL+C to copy
mysql> SELECT EVENT_NAME -> FROM performance_schema.memory_summary_by_thread_by_event_name -> WHERE THREAD_ID = PS_CURRENT_THREAD_ID() -> AND EVENT_NAME LIKE 'memory/ndbcluster/%'; +-------------------------------------------+ | EVENT_NAME | +-------------------------------------------+ | memory/ndbcluster/Thd_ndb::batch_mem_root | +-------------------------------------------+ 1 row in set (0.01 sec)

ndbcluster 交易内存检测器在性能架构的 setup_instruments 表中也可见,如下所示

Press CTRL+C to copy
mysql> SELECT * from performance_schema.setup_instruments -> WHERE NAME LIKE '%ndb%'\G *************************** 1. row *************************** NAME: memory/ndbcluster/Thd_ndb::batch_mem_root ENABLED: YES TIMED: NULL PROPERTIES: VOLATILITY: 0 DOCUMENTATION: Memory used for transaction batching 1 row in set (0.01 sec)