Spec-Zone.ru › MySQL 8.4

25.6.19 NDB Кластер и схема производительности

NDB предоставляет информацию в схеме производительности MySQL о потоках плагина ndbcluster и инструментировании для пакетной памяти транзакций. Эти функции более подробно описаны в последующих разделах.

Потоки плагина ndbcluster

Потоки плагина ndbcluster отображаются в таблице схемы производительности threads, как показано в следующем запросе:

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.

Имена потоков отображаются в столбце name таблиц threads и setup_threads с использованием формата prefix/plugin_name/thread_name. prefix, тип объекта, определяемый движком performance_schema, равен thread для потоков плагина (см. Элементы инструментария потоков). plugin_name равен ndbcluster. thread_name — это автономное имя потока (ndb_binlog, ndb_index_stat или ndb_metadata).

Используя идентификатор потока или идентификатор потока ОС для данного потока в таблицах threads или setup_threads, можно получить значительную информацию из схемы производительности о выполнении плагина и использовании ресурсов. Данный пример демонстрирует, как получить объем памяти, выделенный потоками, созданными плагином ndbcluster из арены mem_root, объединяя таблицы threads и memory_summary_by_thread_by_event_name:

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, аналогично тому, что показано здесь:

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, как показано здесь:

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)

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-ps-tables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API