4.4.9autotune命令

autotune [--dryrun] [--sequential-restart] [--writeload=writeload] template cluster_name

writeload:
    {low|medium|high}

template:
    {web|realtime|test}

该命令根据参数的指定值 template和 [optional] writeload选项自动调整集群的一些参数,以优化集群的性能。

的有效值为template

  • web:最大化给定硬件的性能。

  • realtime:最大化性能,同时最大化对超时的敏感度,以最小化检测失败的集群进程所需的时间。

  • test:小规模测试的最小资源使用。不适用于生产环境。

的有效值为 --writeload

  • low:预期负载包括每秒少于 100 个写入事务。

  • medium:预期负载包括每秒 100 到 1000 个写入事务。--writeload这是未指定 时使用的默认值 。

  • high:预期负载包括每秒超过 1000 个写入事务。

集群必须处于createdfully operational 状态才能使此命令生效,否则将导致错误。该命令通过发出多个set 命令来调整不同的参数来调整集群,然后为集群执行滚动重启。对于 MySQL Cluster Manager 1.4.8 及更高版本,使用该 --sequential-restart 选项使滚动重启成为 顺序重启 。

使用该--dryrun选项时,该命令不会对集群进行任何实际更改,而是将其set 为调整而发出的命令写入文件 中。 /path-to-mcm-data-repository/clusters/clustername/tmp/autotune.message_id.mcm

mcm> autotune --dryrun --writeload=high realtime mycluster;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Command result                                                                                                                                                     |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Autotuning calculation complete. Please check /opt/mcm_data/clusters/mycluster/tmp/autotune.30fcce24_2184_0.mcm on host flundra for settings that will be applied. |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.62 sec)

$> cat /opt/mcm_data/clusters/mycluster/tmp/autotune.30fcce24_2184_0.mcm
# The following will be applied to the current cluster config:
set HeartbeatIntervalDbDb:ndbmtd=1500 mycluster;
set HeartbeatIntervalDbApi:ndbmtd=1500 mycluster;
set RedoBuffer:ndbmtd=64M mycluster;
set SharedGlobalMemory:ndbmtd=20M mycluster;
set DataMemory:ndbmtd=83886080 mycluster;
set IndexMemory:ndbmtd=18874368 mycluster;
set MaxNoOfExecutionThreads:ndbmtd=2 mycluster;
set FragmentLogFileSize:ndbmtd=256M mycluster;
set NoOfFragmentLogFiles:ndbmtd=3 mycluster;

检查 .mcm文件中的这些更改后,如果您不想将它们全部应用到您的集群,您可以 .mcm根据需要编辑该文件,然后在mcm客户端执行它(参见 第 3.5.2.3 节,“创建和配置目标集群”了解如何做到这一点)。如果您对文件中描述的所有更改感到满意,请在autotune 不带选项的情况下再次发出命令 --dryrun以执行调整:

mcm> autotune --writeload=high realtime mycluster;
+-----------------------------------------------------+
| Command result                                      |
+-----------------------------------------------------+
| Cluster successfully autotuned to template realtime |
+-----------------------------------------------------+
1 row in set (2 min 58.09 sec)

笔记

仅 MySQL NDB Cluster 7.4 及更高版本支持该命令。