Spec-Zone.ru › MySQL 9.2

25.4.3.14 Настройка параметров буфера отправки кластера NDB

Ядро NDB использует унифицированный буфер отправки, память для которого выделяется динамически из пула, разделяемого всеми транспортёрами. Это означает, что размер буфера отправки можно корректировать по мере необходимости. Настройка унифицированного буфера отправки выполняется путём задания следующих параметров:

  • TotalSendBufferMemory. Этот параметр может быть задан для всех типов узлов кластера NDB — то есть, он может быть задан в разделах [ndbd], [mgm] и [api] (или [mysql]) файла config.ini. Он представляет собой общее количество памяти (в байтах), которое должен выделять каждый узел, для которого он задан, для использования среди всех настроенных транспортёров. Если задан, его минимальное значение составляет 256 КБ; максимальное — 4294967039.

    Для обратной совместимости с существующими конфигурациями, по умолчанию этот параметр принимает значение, равное сумме максимальных размеров буферов отправки всех настроенных транспортёров плюс дополнительные 32 КБ (одна страница) на транспортёр. Максимальное значение зависит от типа транспортёра, как показано в следующей таблице:

    Таблица 25.22 Типы транспортёров с максимальными размерами буфера отправки

    Таблица 25.22 Типы транспортёров с максимальными размерами буфера отправки
    Транспортёр Максимальный размер буфера отправки (байты)
    TCP SendBufferMemory (по умолчанию = 2 МБ)
    SHM 20 КБ

    Это позволяет существующим конфигурациям работать практически так же, как и с кластером NDB 6.3 и более ранними версиями, с тем же количеством памяти и места в буфере отправки, доступном для каждого транспортёра. Однако память, не используемая одним транспортёром, недоступна для других транспортёров.

  • OverloadLimit. Этот параметр используется в файле config.ini в разделе [tcp] и обозначает количество неотправленных данных (в байтах), которые должны присутствовать в буфере отправки, прежде чем соединение считается перегруженным. При возникновении такой перегрузки транзакции, затрагивающие перегруженное соединение, завершаются с ошибкой NDB API 1218 (Буферы отправки перегружены в ядре NDB) до тех пор, пока состояние перегрузки не исчезнет. Значение по умолчанию равно 0, в этом случае эффективный предел перегрузки рассчитывается как SendBufferMemory * 0.8 для данного соединения. Максимальное значение для этого параметра равно 4 ГБ.

  • SendBufferMemory. Это значение обозначает жёсткий лимит на количество памяти, которое может использовать один транспортёр из всего пула, указанного в TotalSendBufferMemory. Однако сумма SendBufferMemory для всех настроенных транспортёров может быть больше, чем TotalSendBufferMemory, установленное для данного узла. Это способ экономии памяти при использовании многих узлов, если максимальное количество памяти никогда не требуется всем транспортёрам одновременно.

Вы можете использовать таблицу ndbinfo.transporters для мониторинга использования памяти буфера отправки и выявления замедления и перегрузки, которые могут негативно повлиять на производительность.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-config-send-buffers.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API