Rechercher dans le manuel MySQL
22.3.3.14 Configuring NDB Cluster Send Buffer Parameters
The NDB
kernel employs a unified send buffer
whose memory is allocated dynamically from a pool shared by all
transporters. This means that the size of the send buffer can be
adjusted as necessary. Configuration of the unified send buffer
can accomplished by setting the following parameters:
TotalSendBufferMemory. This parameter can be set for all types of NDB Cluster nodes—that is, it can be set in the
[ndbd]
,[mgm]
, and[api]
(or[mysql]
) sections of theconfig.ini
file. It represents the total amount of memory (in bytes) to be allocated by each node for which it is set for use among all configured transporters. If set, its minimum is 256KB; the maximum is 4294967039.To be backward-compatible with existing configurations, this parameter takes as its default value the sum of the maximum send buffer sizes of all configured transporters, plus an additional 32KB (one page) per transporter. The maximum depends on the type of transporter, as shown in the following table:
Table 22.333 Transporter types with maximum send buffer sizes
Transporter Maximum Send Buffer Size (bytes) TCP SendBufferMemory
(default = 2M)SCI SendLimit
(default = 8K) plus 16KSHM 20K This enables existing configurations to function in close to the same way as they did with NDB Cluster 6.3 and earlier, with the same amount of memory and send buffer space available to each transporter. However, memory that is unused by one transporter is not available to other transporters.
OverloadLimit. This parameter is used in the
config.ini
file[tcp]
section, and denotes the amount of unsent data (in bytes) that must be present in the send buffer before the connection is considered overloaded. When such an overload condition occurs, transactions that affect the overloaded connection fail with NDB API Error 1218 (Send Buffers overloaded in NDB kernel) until the overload status passes. The default value is 0, in which case the effective overload limit is calculated asSendBufferMemory * 0.8
for a given connection. The maximum value for this parameter is 4G.SendBufferMemory. This value denotes a hard limit for the amount of memory that may be used by a single transporter out of the entire pool specified by
TotalSendBufferMemory
. However, the sum ofSendBufferMemory
for all configured transporters may be greater than theTotalSendBufferMemory
that is set for a given node. This is a way to save memory when many nodes are in use, as long as the maximum amount of memory is never required by all transporters at the same time.
You can use the
ndbinfo.transporters
table to
monitor send buffer memory usage, and to detect slowdown and
overload conditions that can adversely affect performance.
Document created the 26/06/2006, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/mysql-rf-mysql-cluster-config-send-buffers.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.