在GBase 8a中有多种方式优化加载,本章节讲解的参数可以很好的优化加载性能。
提升加载性能参数
gcluster_loader_max_data_processors
gcluster_loader_max_data_processors 为单个数据加载任务中最大加载机的个数,默认取值为 16。通常建议 gcluster_loader_max_data_processors 取值为 4~8。在使用 sftp 加载时,需要特别关注 ssh 连接个数限制,可能因为加载需要连接 sftp的加载机个数太多造成超过 ssh 允许的最大连接数而导致加载失败问题。可以调整sshd 的配置文件,调整 maxstartup、maxsession 等参数。
加载任务负载均衡设置
gcluster_load_rebalance_seed
gcluster_load_rebalance_seed 参数表示不同 data 节点上的加载任务数最大差值大于等于参数值时会启动 node 加载任务负载均衡,默认值为 5。如果取得更好的均衡效果,可以将参数 gcluster_load_rebalance_seed 设置为 2 或者 1。集群每个加载任务会随机选取不超过 gcluster_loader_max_data_processors 个data 节点作为加载机。在 gcluster_load_rebalance_seed 取默认值 5 的情况下,如果并发了 5 加载任务,都随机选取第 10 个节点作为加载机。此时第 10 个 data节点上 load 任务数为 5,同时也存在部分节点上 load 任务数为 0,data 节点间最大任务数之差为 5。当第 6 个加载下发时,根据 gcluster_load_rebalance_seed参数条件,不再选取第 10 个节点作为加载机,而是选取加载任务差值小于 5 的节点作为加载机。
加载单行最大长度设置
gbase_loader_max_line_length
gbase_loader_max_line_length 参数用于指定数据加载文件中允许的单行的最大长度,默认为 4M。GBase 8a 集群能够加载的最大的数据行长度为 4M,当待加载的数据文件中存在超过 4M 大小的行时,加载任务将失败并报错“Line length xxxx is more thangbase_loader_max_line_length(4194304)”,通过调整gbase_loader_max_line_length 参数为更大取值,可以让加载任务执行成功,超过 4M 大小的行则作为错误数据跳过。
加载读超时时间参数设置
gbase_loader_read_timeout
gbase_loader_read_timeout 参数用于指定读取 FTP/HTTP/SFTP 文件的超时时间,如果填充一个数据块(8M)的时间超过此参数值,加载任务将报错停止。0表示永不超时。默认取值为 300 秒。在较差网络环境下可调大概参数,避免出现 read operation timeout 超时错误。