25.6.17.31 Таблица ndbinfo diskpagebuffer
Таблица diskpagebuffer предоставляет статистику об использовании буфера страниц диска NDB Cluster для таблиц данных на диске.
Таблица diskpagebuffer содержит следующие столбцы:
-
node_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 Disk Data, чтобы определить, достаточно ли 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 относится к экземпляру ядра блока. Вместе с именем блока это число можно использовать для поиска заданного экземпляра в таблице 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)
© 2025 Oracle
Licensed under the GPLv2 License.