• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ndbinfo传输器表

    下表包含有关NDB传输器的信息。

    下表提供有关表中各列的信息transporters。该表为每一列显示名称,数据类型和简要说明。可以在表格后面的注释中找到其他信息。

    运输者表的列

    栏名类型描述
    node_id整数该数据节点在集群中的唯一节点ID
    remote_node_id整数远程数据节点的节点ID
    statusstring连接状态
    remote_addressstring远程主机的名称或IP地址
    bytes_sent整数使用此连接发送的字节数
    bytes_received整数使用此连接接收的字节数
    connect_count整数在此传输器上建立连接的次数
    overloaded布尔值(0或1)如果此运输工具当前超载,则为1,否则为0
    overload_count整数自连接以来,此运输工具已进入过载状态的次数
    slowdown布尔值(0或1)如果此传输器处于减速状态,则为1,否则为0
    slowdown_count整数自连接以来,此运输工具已进入减速状态的次数

    对于集群中每个正在运行的数据节点,该transporters表显示一行,该行显示该节点与集群中所有节点(包括自身)的连接状态。该信息被显示在表中的状态列,它可以有以下值中的任何一个:CONNECTINGCONNECTEDDISCONNECTING,或DISCONNECTED

    状态为,显示已配置但尚未连接到集群的API和管理节点的连接DISCONNECTEDnode_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 STOPndb_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_countoverloadedoverload_countslowdown,和slowdown_count计数器上连接复位,并且所述远程节点断开连接之后仍保持它们的值。在bytes_sentbytes_received柜台也被重置连接,因此保留下断开(直到下一次连接重置它们)它们的值。

    当此传输器的发送缓冲区包含多个字节(默认值为80的,即0.8 * 2097152 = 1677721字节)时,将发生由和列所指的过载状态。当给定的传输器处于过载状态时,任何尝试使用此传输器的新事务都将失败,并显示错误1218(NDB内核中的发送缓冲区已过载)。这会影响扫描和主键操作。overloadedoverload_countOVerloadLimitSendBufferMemory

    当传输器的发送缓冲区包含60%的过载限制(默认情况下等于0.6 * 2097152 = 1258291字节)时,将出现此表的和列引用的减速状态。在这种状态下,使用此运输工具进行的任何新扫描都会减小其批处理大小,以最大程度地减少运输工具上的负载。slowdownslowdown_count

    发送缓冲区变慢或过载的常见原因包括:

    • 数据大小,尤其是存储在一个TEXT或多个BLOB列(或两种类型的列)中的数据量
    • 与用于二进制日志记录的SQL节点在同一主机上具有数据节点(ndbd或ndbmtd)
    • 每个事务或事务批处理中有大量行
    • 配置不足等问题SendBufferMemory
    • 硬件问题,例如RAM不足或网络连接不良

    另请参见“配置NDB群集发送缓冲区参数”。