Documentation Home

18.6.15.12 ndbinfo diskpagebuffer 表

diskpagebuffer表提供有关 NDB Cluster 磁盘数据表的磁盘页面缓冲区使用情况的统计信息。

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 Cluster 磁盘数据表一起使用,以确定是否 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% 的值表示只有非常少量的读取是从磁盘而不是缓冲区进行的,这意味着磁盘数据读取性能接近最佳水平。如果这些值中的任何一个小于 95%,则强烈表明 DiskPageBufferMemory 需要在config.ini 文件中增加 的设置。

笔记

更改 DiskPageBufferMemory 需要滚动重启所有集群的数据节点才能生效。

block_instance列提供 NDB 内核块实例编号。您可以使用它从表中获取有关特定线程的信息 threadblocks