该表包含有关 NDB 传输器的信息。有关各个传输器的类似信息,请参见 transporter_details
表。
The transporters
表包含以下列
node_id
该数据节点在集群中的唯一节点 ID
remote_node_id
远程数据节点的节点 ID
status
连接状态
remote_address
远程主机的名称或 IP 地址
bytes_sent
使用此连接发送的字节数
bytes_received
使用此连接接收的字节数
connect_count
在此传输器上建立连接的次数
overloaded
如果此传输器当前过载,则为 1,否则为 0
overload_count
此传输器自连接以来进入过载状态的次数
slowdown
如果此传输器处于减速状态,则为 1,否则为 0
slowdown_count
此传输器自连接以来进入减速状态的次数
encrypted
如果此传输器使用 TLS 连接,则此列为
1
,否则为0
。
注意
对于集群中每个正在运行的数据节点,transporters
表显示一行,显示该节点与集群中所有节点(包括自身)连接的状态。该信息显示在表的 status 列中,该列可以具有以下任何一个值:CONNECTING
、CONNECTED
、DISCONNECTING
或 DISCONNECTED
。
配置但未当前连接到集群的 API 和管理节点的连接显示为状态 DISCONNECTED
。如果 node_id
是当前未连接的数据节点的节点 ID,则该表中不会显示该行。(这类似于 ndbinfo.nodes
表中省略断开连接的节点。)
The remote_address
是节点的主机名或地址,其 ID 显示在 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 (using cleartext)
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @10.100.10.1 (9.0.0-ndb-9.0.0, Nodegroup: 0, *)
id=2 @10.100.10.2 (9.0.0-ndb-9.0.0, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=10 @10.100.10.10 (9.0.0-ndb-9.0.0)
[mysqld(API)] 2 node(s)
id=20 @10.100.10.20 (9.0.0-ndb-9.0.0)
id=21 @10.100.10.21 (9.0.0-ndb-9.0.0)
The transporters
表中有 10 行——第一个数据节点有 5 行,第二个数据节点有 5 行——假设所有数据节点都在运行,如下所示
+---------+----------------+------------+----------------+------------+----------------+---------------+------------+----------------+----------+----------------+-----------+
| node_id | remote_node_id | status | remote_address | bytes_sent | bytes_received | connect_count | overloaded | overload_count | slowdown | slowdown_count | encrypted |
+---------+----------------+------------+----------------+------------+----------------+---------------+------------+----------------+----------+----------------+-----------+
| 5 | 6 | CONNECTED | 127.0.0.1 | 15509748 | 15558204 | 1 | 0 | 0 | 0 | 0 | 0 |
| 5 | 50 | CONNECTED | 127.0.0.1 | 1058220 | 284316 | 1 | 0 | 0 | 0 | 0 | 0 |
| 5 | 100 | CONNECTED | 127.0.0.1 | 574796 | 402208 | 1 | 0 | 0 | 0 | 0 | 0 |
| 5 | 101 | CONNECTING | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 6 | 5 | CONNECTED | 127.0.0.1 | 15558204 | 15509748 | 1 | 0 | 0 | 0 | 0 | 0 |
| 6 | 50 | CONNECTED | 127.0.0.1 | 1054548 | 283812 | 1 | 0 | 0 | 0 | 0 | 0 |
| 6 | 100 | CONNECTED | 127.0.0.1 | 529948 | 397444 | 1 | 0 | 0 | 0 | 0 | 0 |
| 6 | 101 | CONNECTING | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+----------------+------------+----------------+------------+----------------+---------------+------------+----------------+----------+----------------+-----------+
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)
如果您使用 ndb_mgm 客户端中的命令 2 STOP
关闭此集群中的一个数据节点,然后重复之前的查询(再次使用 mysql 客户端),该表现在只显示 5 行——从剩余的管理节点到另一个节点的每个连接 1 行,包括自身和当前脱机的数据节点——并显示当前脱机的数据节点的每个剩余连接的状态为 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)
The connect_count
、overloaded
、overload_count
、slowdown
和 slowdown_count
计数器在连接时重置,并在远程节点断开连接后保留其值。The bytes_sent
和 bytes_received
计数器也在连接时重置,因此在断开连接后保留其值(直到下次连接重置它们)。
The overloaded
和 overload_count
列所指的 过载 状态发生在此传输器的发送缓冲区包含超过 OVerloadLimit
字节时(默认值为 SendBufferMemory
的 80%,即 0.8 * 2097152 = 1677721 字节)。当给定传输器处于过载状态时,尝试使用此传输器的任何新事务都将失败,并出现错误 1218 (NDB 内核中的发送缓冲区过载)。这会影响扫描和主键操作。
The slowdown
和 slowdown_count
列所引用的 减速 状态发生在此传输器的发送缓冲区包含超过过载限制的 60% 时(默认情况下等于 0.6 * 2097152 = 1258291 字节)。在这种状态下,使用此传输器的任何新的扫描都将将其批处理大小减少以最大程度地减少传输器上的负载。
发送缓冲区减速或过载的常见原因包括以下内容
在与参与二进制日志记录的 SQL 节点相同的主机上拥有数据节点(ndbd 或 ndbmtd)
每个事务或事务批处理的行数过多
配置问题,例如
SendBufferMemory
不足硬件问题,例如内存不足或网络连接不良
另请参见 第 25.4.3.14 节,“配置 NDB Cluster 发送缓冲区参数”。
如果连接使用 TLS,则 encrypted
列为 1
,如下所示
mysql> SELECT node_id, remote_node_id, status, encrypted
-> FROM ndbinfo.transporters;
+---------+----------------+------------+-----------+
| node_id | remote_node_id | status | encrypted |
+---------+----------------+------------+-----------+
| 5 | 6 | CONNECTED | 1 |
| 5 | 50 | CONNECTED | 1 |
| 5 | 100 | CONNECTED | 1 |
| 5 | 101 | CONNECTING | 0 |
| 6 | 5 | CONNECTED | 1 |
| 6 | 50 | CONNECTED | 1 |
| 6 | 100 | CONNECTED | 1 |
| 6 | 101 | CONNECTING | 0 |
+---------+----------------+------------+-----------+
8 rows in set (0.04 sec)
否则,此列的值为 0
。
The certificates
表可用于获取有关使用链接加密连接的每个节点的证书信息。
有关更多信息,请参见 第 25.6.15 节,“NDB Cluster 的 TLS 链接加密”。