21.6.15.44 Таблица ndbinfo transporters
Данная таблица содержит информацию о транспортерах NDB.
Таблица transporters содержит следующие столбцы:
-
node_idУникальный идентификатор узла этого узла данных в кластере
-
remote_node_idИдентификатор узла удаленного узла данных
-
statusСостояние подключения
-
remote_addressИмя или IP-адрес удаленного узла
-
bytes_sentКоличество байтов, отправленных через это подключение
-
bytes_receivedКоличество байтов, полученных через это подключение
-
connect_countКоличество раз, когда подключение было установлено на этом транспортере
-
overloaded1, если этот транспортер в настоящее время перегружен, в противном случае 0
-
overload_countКоличество раз, когда этот транспортер переходил в состояние перегрузки с момента подключения
-
slowdown1, если этот транспортер в состоянии замедления, в противном случае 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.