ndbinfo传输器表
下表包含有关NDB传输器的信息。
下表提供有关表中各列的信息transporters
。该表为每一列显示名称,数据类型和简要说明。可以在表格后面的注释中找到其他信息。
运输者表的列
栏名 | 类型 | 描述 |
---|---|---|
node_id | 整数 | 该数据节点在集群中的唯一节点ID |
remote_node_id | 整数 | 远程数据节点的节点ID |
status | string | 连接状态 |
remote_address | string | 远程主机的名称或IP地址 |
bytes_sent | 整数 | 使用此连接发送的字节数 |
bytes_received | 整数 | 使用此连接接收的字节数 |
connect_count | 整数 | 在此传输器上建立连接的次数 |
overloaded | 布尔值(0或1) | 如果此运输工具当前超载,则为1,否则为0 |
overload_count | 整数 | 自连接以来,此运输工具已进入过载状态的次数 |
slowdown | 布尔值(0或1) | 如果此传输器处于减速状态,则为1,否则为0 |
slowdown_count | 整数 | 自连接以来,此运输工具已进入减速状态的次数 |
对于集群中每个正在运行的数据节点,该transporters
表显示一行,该行显示该节点与集群中所有节点(包括自身)的连接状态。该信息被显示在表中的状态列,它可以有以下值中的任何一个:CONNECTING
,CONNECTED
,DISCONNECTING
,或DISCONNECTED
。
状态为,显示已配置但尚未连接到集群的API和管理节点的连接DISCONNECTED
。node_id
该表未显示其中当前未连接的数据节点的行所在的行。(这类似于ndbinfo.nodes
表中未连接节点的省略。
的remote_address
是用于其ID显示在该节点的主机名或地址remote_node_id
栏。在bytes_sent
从这个节点和bytes_received
由该节点是数字,分别由使用此连接,因为它建立了节点发送和接收的字节。对于状态为CONNECTING
或的节点DISCONNECTED
,这些列始终显示0
。
假定您有一个由2个数据节点,2个SQL节点和1个管理节点组成的5节点群集,如ndb_mgm客户端中SHOW
命令的输出所示:
ndb_mgm>SHOW Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=1 @10.100.10.1 (8.0.20-ndb-8.0.20, Nodegroup: 0, *) id=2 @10.100.10.2 (8.0.20-ndb-8.0.20, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=10 @10.100.10.10 (8.0.20-ndb-8.0.20) [mysqld(API)] 2 node(s) id=20 @10.100.10.20 (8.0.20-ndb-8.0.20) id=21 @10.100.10.21 (8.0.20-ndb-8.0.20)
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行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)
的connect_count
,overloaded
,overload_count
,slowdown
,和slowdown_count
计数器上连接复位,并且所述远程节点断开连接之后仍保持它们的值。在bytes_sent
和bytes_received
柜台也被重置连接,因此保留下断开(直到下一次连接重置它们)它们的值。
当此传输器的发送缓冲区包含多个字节(默认值为80的,即0.8 * 2097152 = 1677721字节)时,将发生由和列所指的过载状态。当给定的传输器处于过载状态时,任何尝试使用此传输器的新事务都将失败,并显示错误1218(NDB内核中的发送缓冲区已过载)。这会影响扫描和主键操作。overloaded
overload_count
OVerloadLimit
SendBufferMemory
当传输器的发送缓冲区包含60%的过载限制(默认情况下等于0.6 * 2097152 = 1258291字节)时,将出现此表的和列引用的减速状态。在这种状态下,使用此运输工具进行的任何新扫描都会减小其批处理大小,以最大程度地减少运输工具上的负载。slowdown
slowdown_count
发送缓冲区变慢或过载的常见原因包括:
- 数据大小,尤其是存储在一个
TEXT
或多个BLOB
列(或两种类型的列)中的数据量 - 与用于二进制日志记录的SQL节点在同一主机上具有数据节点(ndbd或ndbmtd)
- 每个事务或事务批处理中有大量行
- 配置不足等问题
SendBufferMemory
- 硬件问题,例如RAM不足或网络连接不良
另请参见“配置NDB群集发送缓冲区参数”。