Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


25.6.17.31 NDBinfo diskpagebuffer 表

diskpagebuffer 表提供了 NDB 集群磁盘数据表的磁盘页面缓存使用统计信息。

diskpagebuffer 表包含以下列:

  • node_id

    数据节点 ID

  • block_instance

    块实例

  • pages_written

    写入到磁盘的页面数量。

  • pages_written_lcp

    本地检查点写入的页面数量。

  • pages_read

    从磁盘读取的页面数量

  • log_waits

    写入日志到磁盘前的页面等待数量

  • page_requests_direct_return

    缓存中可用的页面请求数量

  • page_requests_wait_queue

    缓存不可用时需要等待的页面请求数量

  • page_requests_wait_io

    从磁盘读取不可用的页面请求数量(页面不可在缓存中)

您可以使用这个表与 NDB 集群磁盘数据表来确定 DiskPageBufferMemory 是否足够大,以便将数据从缓存中读取,而不是从磁盘读取;减少磁盘寻道可以帮助改进这些表的性能。

您可以使用以下查询来确定从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%表明只有非常少的读取操作来自磁盘,而不是缓冲区,这意味着Disk Data读性能正在接近最优水平。如果这些值中的任何一个小于95%,这是一种强烈的指示,需要在config.ini文件中增加DiskPageBufferMemory的设置。

Note

修改DiskPageBufferMemory需要对集群中的所有数据节点进行rolling restart,才能生效。

block_instance指的是内核块的实例号。与块名称一起,可以用于在threadblocks表中查找给定的实例。使用该信息,您可以获取关于单个线程的磁盘页面缓存指标的信息;以下是一个使用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)