的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) FROM ndbinfo.diskpagebuffer;
该查询的结果应该类似于这里显示的,集群中的每个数据节点对应一行(在本例中,集群有4个数据节点):
+---------+-----------+ | node_id | hit_ratio | +---------+-----------+ | 5 | 97.6744 | | 6 | 97.6879 | | 7 | 98.1776 | | 8 | 98.1343 | +---------+-----------+ 4行集(0.00秒)
hit_ratio
接近100%的值表示只有非常少量的读取是从磁盘而不是从缓冲区进行的,这意味着磁盘数据读取性能正在接近最佳水平。如果这些值中的任何一个小于95%,则这是设置的强指示符DiskPageBufferMemory
需要增加config.ini
文件。
变化DiskPageBufferMemory
需要在生效之前滚动重新启动集群的所有数据节点。
block_instance
引用内核块的实例。与块名称一起,此数字可用于在threadblocks
表格使用这些信息,您可以获得与单个线程相关的磁盘页缓冲区指标的信息;示例查询使用限制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.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)