ndbinfo diskpagebuffer表
该diskpagebuffer
表提供了有关NDB群集磁盘数据表使用的磁盘页面缓冲区使用情况的统计信息。
下表提供有关表中各列的信息diskpagebuffer
。该表为每一列显示名称,数据类型和简要说明。可以在表格后面的注释中找到其他信息。
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_ratioFROM 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
指内核块的实例。连同块名一起,该数字可用于在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.threadblocksUSING (node_id, block_instance) >INNER JOIN ndbinfo.threadsUSING (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)