Spec-Zone.ru › MySQL 5.7

21.6.15.44 Таблица ndbinfo transporters

Данная таблица содержит информацию о транспортерах NDB.

Таблица transporters содержит следующие столбцы:

  • node_id

    Уникальный идентификатор узла этого узла данных в кластере

  • remote_node_id

    Идентификатор узла удаленного узла данных

  • status

    Состояние подключения

  • remote_address

    Имя или IP-адрес удаленного узла

  • bytes_sent

    Количество байтов, отправленных через это подключение

  • bytes_received

    Количество байтов, полученных через это подключение

  • connect_count

    Количество раз, когда подключение было установлено на этом транспортере

  • overloaded

    1, если этот транспортер в настоящее время перегружен, в противном случае 0

  • overload_count

    Количество раз, когда этот транспортер переходил в состояние перегрузки с момента подключения

  • slowdown

    1, если этот транспортер в состоянии замедления, в противном случае 0

  • slowdown_count

    Количество раз, когда этот транспортер переходил в состояние замедления с момента подключения

Примечания

Для каждого работающего узла данных в кластере таблица transporters отображает строку, показывающую состояние каждого подключения этого узла ко всем узлам в кластере, включая сам себя. Эта информация отображается в столбце статус таблицы, который может принимать одно из следующих значений: CONNECTING, CONNECTED, DISCONNECTING или DISCONNECTED.

Подключения к API- и управляющим узлам, которые настроены, но в настоящее время не подключены к кластеру, отображаются со статусом DISCONNECTED. Строки, где node_id относится к узлу данных, который в данный момент не подключен, в этой таблице не отображаются. (Это аналогично пропусканию отключенных узлов в таблице ndbinfo.nodes).

remote_address — это имя хоста или адрес узла, идентификатор которого показан в столбце remote_node_id. Значения bytes_sent с этого узла и bytes_received этим узлом представляют собой количество байтов, отправленных и полученных узлом через это подключение с момента его установления. Для узлов, статус которых равен CONNECTING или DISCONNECTED, эти столбцы всегда отображают 0.

Предположим, у вас есть кластер из 5 узлов, состоящий из 2 узлов данных, 2 узлов SQL и 1 управляющего узла, как показано в выводе команды SHOW в клиенте ndb_mgm:

ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=1    @10.100.10.1  (5.7.44-ndb-7.6.34, Nodegroup: 0, *)
id=2    @10.100.10.2  (5.7.44-ndb-7.6.34, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=10   @10.100.10.10  (5.7.44-ndb-7.6.34)

[mysqld(API)]   2 node(s)
id=20   @10.100.10.20  (5.7.44-ndb-7.6.34)
id=21   @10.100.10.21  (5.7.44-ndb-7.6.34)

В таблице transporters содержится 10 строк — 5 для первого узла данных и 5 для второго — при условии, что все узлы данных работают, как показано здесь:

mysql> SELECT node_id, remote_node_id, status
    ->   FROM ndbinfo.transporters;
+---------+----------------+---------------+
| node_id | remote_node_id | status        |
+---------+----------------+---------------+
|       1 |              1 | DISCONNECTED  |
|       1 |              2 | CONNECTED     |
|       1 |             10 | CONNECTED     |
|       1 |             20 | CONNECTED     |
|       1 |             21 | CONNECTED     |
|       2 |              1 | CONNECTED     |
|       2 |              2 | DISCONNECTED  |
|       2 |             10 | CONNECTED     |
|       2 |             20 | CONNECTED     |
|       2 |             21 | CONNECTED     |
+---------+----------------+---------------+
10 rows in set (0.04 sec)

Если вы выключите один из узлов данных в этом кластере, используя команду 2 STOP в клиенте ndb_mgm, а затем повторите предыдущий запрос (снова используя клиент mysql), то в этой таблице теперь отображается только 5 строк — по одной строке для каждого подключения от оставшегося управляющего узла к другому узлу, включая сам себя и узел данных, который сейчас отключен — и отображается CONNECTING для статуса каждого оставшегося подключения к узлу данных, который сейчас отключен, как показано здесь:

mysql> SELECT node_id, remote_node_id, status
    ->   FROM ndbinfo.transporters;
+---------+----------------+---------------+
| node_id | remote_node_id | status        |
+---------+----------------+---------------+
|       1 |              1 | DISCONNECTED  |
|       1 |              2 | CONNECTING    |
|       1 |             10 | CONNECTED     |
|       1 |             20 | CONNECTED     |
|       1 |             21 | CONNECTED     |
+---------+----------------+---------------+
5 rows in set (0.02 sec)

Счетчики connect_count, overloaded, overload_count, slowdown и slowdown_count сбрасываются при подключении и сохраняют свои значения после отключения удаленного узла. Счетчики bytes_sent и bytes_received также сбрасываются при подключении и, таким образом, сохраняют свои значения после отключения (до тех пор, пока следующее подключение их не сбросит).

Состояние перегрузки, о котором упоминается в столбцах overloaded и overload_count, возникает, когда буфер отправки этого транспортера содержит более чем OVerloadLimit байтов (по умолчанию 80% от SendBufferMemory, то есть 0,8 * 2097152 = 1677721 байт). Когда данный транспортер находится в состоянии перегрузки, любая новая транзакция, которая пытается использовать этот транспортер, завершается с ошибкой 1218 (Буферы отправки переполнены в ядре NDB). Это влияет как на сканирования, так и на операции с первичными ключами.

Состояние замедления, на которое ссылаются столбцы slowdown и slowdown_count этой таблицы, возникает, когда буфер отправки транспортера содержит более чем 60% от ограничения перегрузки (по умолчанию 0,6 * 2097152 = 1258291 байт). В этом состоянии любой новый запрос, использующий этот транспортер, уменьшает размер своей группы для минимизации нагрузки на транспортер.

К распространённым причинам замедления или перегрузки буфера отправки относятся:

  • Размер данных, особенно количество данных, хранящихся в колонках типа TEXT или колонках типа BLOB (или обоих типов)

  • Наличие узла данных (ndbd или ndbmtd) на том же хосте, что и узел SQL, вовлеченный в двоичное протоколирование

  • Большое количество строк в одной транзакции или группе транзакций

  • Проблемы с конфигурацией, такие как недостаточный размер SendBufferMemory

  • Технические проблемы с оборудованием, такие как недостаток оперативной памяти или плохая сетевая конфигурация

См. также Раздел 21.4.3.13, «Настройка параметров буфера отправки NDB кластера».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/mysql-cluster-ndbinfo-transporters.html

Spec-Zone.ru

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