21.5.14.20 ndbinfo diskpagebuffertable

diskpagebuffertable 提供有关 NDB 群集磁盘数据 table 的磁盘页面缓冲区使用情况的统计信息。

diskpagebuffertable 包含以下列:

数据节点 ID

Block instance

写入磁盘的页面数。

本地检查点编写的页面数。

从磁盘读取的页数

await 日志写入磁盘的页面写入数

缓冲区中可用的页面请求数

必须 await 页面在缓冲区中可用的请求数

必须从磁盘上的页面读取的请求数(页面在缓冲区中不可用)

Notes

您可以将此 table 与 NDB 群集磁盘数据 table 一起使用,以确定DiskPageBufferMemory是否足够大以允许从缓冲区而不是从磁盘读取数据。最小化磁盘查找可以帮助提高此类 table 的性能。

您可以使用诸如此类的查询来确定从DiskPageBufferMemory读取的读数占读取总数的比例,该查询将以百分比的形式获得该比率:

SELECT
  node_id,
  100 * page_requests_direct_return /
    (page_requests_direct_return + page_requests_wait_io)
      AS hit_ratio
FROM ndbinfo.diskpagebuffer;

该查询的结果应类似于此处显示的结果,集群中的每个数据节点都有一行(在此示例中,集群有 4 个数据节点):

+---------+-----------+
| node_id | hit_ratio |
+---------+-----------+
|       5 |   97.6744 |
|       6 |   97.6879 |
|       7 |   98.1776 |
|       8 |   98.1343 |
+---------+-----------+
4 rows in set (0.00 sec)

hit_ratio值接近 100%table 示从磁盘而不是从缓冲区进行的读取非常少,这意味着磁盘数据读取性能已达到最佳水平。如果这些值中的任何一个小于 95%,则 table 明config.ini文件中的DiskPageBufferMemory的设置需要增加,这很有力。

Note

DiskPageBufferMemory中的更改要求滚动重新启动群集的所有数据节点,然后才能生效。

block_instance指内核块的实例。连同块名一起,该数字可用于在threadblockstable 中查找给定的实例。使用此信息,您可以获得有关与各个线程有关的磁盘页面缓冲区度量的信息。使用LIMIT 1将输出限制为单个线程的示例查询如下所示:

mysql> SELECT
     >   node_id, thr_no, block_name, thread_name, pages_written,
     >   pages_written_lcp, pages_read, log_waits,
     >   page_requests_direct_return, page_requests_wait_queue,
     >   page_requests_wait_io
     > FROM ndbinfo.diskpagebuffer
     >   INNER JOIN ndbinfo.threadblocks USING (node_id, block_instance)
     >   INNER JOIN ndbinfo.threads USING (node_id, thr_no)
     > WHERE block_name = 'PGMAN' LIMIT 1\G
*************************** 1. row ***************************
                    node_id: 1
                     thr_no: 1
                 block_name: PGMAN
                thread_name: rep
              pages_written: 0
          pages_written_lcp: 0
                 pages_read: 1
                  log_waits: 0
page_requests_direct_return: 4
   page_requests_wait_queue: 0
      page_requests_wait_io: 1
1 row in set (0.01 sec)
首页