21.4.3.13 Настройка параметров буфера отправки NDB Cluster
Ядро NDB использует объединенный буфер отправки, память которого динамически выделяется из пула, используемого всеми транспортерами. Это означает, что размер буфера отправки можно изменять по мере необходимости. Настройка объединенного буфера отправки выполняется путем установки следующих параметров:
-
TotalSendBufferMemory. Этот параметр можно установить для всех типов узлов NDB Cluster — то есть, его можно установить в разделах
[ndbd],[mgm]и[api](или[mysql]) файлаconfig.ini. Он представляет собой общее количество памяти (в байтах), которое должен выделить каждый узел, для которого он задан, для использования среди всех настроенных транспортеров. Если установлен, его минимальное значение составляет 256 КБ, а максимальное — 4294967039.Для обеспечения обратной совместимости с существующими конфигурациями, по умолчанию этот параметр принимает сумму максимальных размеров буферов отправки всех настроенных транспортеров плюс дополнительные 32 КБ (одна страница) на каждый транспортер. Максимальное значение зависит от типа транспортера, как показано в следующей таблице:
Таблица 21.21 Типы транспортеров с максимальными размерами буфера отправки
Таблица 21.21 Типы транспортеров с максимальными размерами буфера отправки Транспортер Максимальный размер буфера отправки (байты) TCP SendBufferMemory(по умолчанию = 2 МБ)SHM 20 КБ Это позволяет существующим конфигурациям работать почти так же, как и с NDB Cluster 6.3 и более ранними версиями, с тем же объемом памяти и пространства буфера отправки, доступного для каждого транспортера. Однако память, которая не используется одним транспортером, недоступна другим транспортерам.
OverloadLimit. Этот параметр используется в файле
config.iniв разделе[tcp]и обозначает объем неопубликованных данных (в байтах), которые должны быть в буфере отправки, прежде чем соединение будет считаться перегруженным. При возникновении такой ситуации перегрузки транзакции, влияющие на перегруженное соединение, завершаются с ошибкой NDB API 1218 (Буферы отправки перегружены в ядре NDB) до тех пор, пока состояние перегрузки не будет устранено. Значение по умолчанию равно 0, в этом случае эффективный предел перегрузки вычисляется какSendBufferMemory * 0.8для данного соединения. Максимальное значение для этого параметра составляет 4 ГБ.SendBufferMemory. Это значение обозначает жесткий предел объема памяти, который может использоваться одним транспортером из всего пула, указанного в
TotalSendBufferMemory. Однако суммаSendBufferMemoryдля всех настроенных транспортеров может быть больше, чемTotalSendBufferMemory, который установлен для данного узла. Это способ экономии памяти при использовании многих узлов, пока максимальное количество памяти не потребуется всем транспортерам одновременно.-
ReservedSendBufferMemory. Удалено до NDB 7.5 GA.
Версия (или более поздняя) NDB 7.5.0 Тип или единицы измерения байты Значение по умолчанию 256 КБ Диапазон 0 — 4294967039 (0xFFFFFEFF) Удалено NDB 7.5.2 Тип перезагрузки Перезагрузка узла: Требует постепенной перезагрузки кластера. (NDB 7.5.0)
Ранее этот параметр конфигурации узла был присутствовал, но фактически не использовался (Ошибка #77404, Ошибка #21280428).
Вы можете использовать таблицу ndbinfo.transporters для мониторинга использования памяти буфера отправки и для обнаружения замедления и перегрузки, которые могут негативно повлиять на производительность.
© 2025 Oracle
Licensed under the GPLv2 License.