Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Lightning memory usage in different backends #8439

Merged
merged 12 commits into from
Mar 4, 2022
14 changes: 13 additions & 1 deletion tidb-lightning/tidb-lightning-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,19 @@ select table_name,table_schema,sum(data_length)/1024/1024 as data_length,sum(ind

**操作系统**:本文档示例使用的是若干新的、纯净版 CentOS 7 实例,你可以在本地虚拟化一台主机,或在供应商提供的平台上部署一台小型的云虚拟主机。TiDB Lightning 运行过程中,默认会占满 CPU,建议单独部署在一台主机上。如果条件不允许,你可以将 TiDB Lightning 和其他组件(比如`tikv-server`)部署在同一台机器上,然后设置`region-concurrency` 配置项的值为逻辑 CPU 数的 75%,以限制 TiDB Lightning 对 CPU 资源的使用。

**内存和 CPU**:因为 TiDB Lightning 对计算机资源消耗较高,建议分配 64 GB 以上的内存以及 32 核以上的 CPU,而且确保 CPU 核数和内存(GB)比为 1:2 以上,以获取最佳性能。
**内存和 CPU**
shichun-0415 marked this conversation as resolved.
Show resolved Hide resolved

TiDB Lightning 在不同 backend 模式下对 CPU 和内存的要求不同,在部署时,建议根据使用的 backend 选择合适的环境以获取最佳导入性能。

- Local-backend:该模式对 CPU 和内存的需求都比较高,建议为 TiDB Lightning 分配 32 核以上的 CPU 和 64 GB 以上内存。
hfxsd marked this conversation as resolved.
Show resolved Hide resolved

> **说明:**
>
> 导入大量数据时,一个并发对内存的占用在 2 GiB 左右,也就是说总内存占用最大可达到 region-concurrency * 2 GiB。`region-concurrency` 默认与逻辑 CPU 的数量相同。如果内存的大小(GiB)小于逻辑 CPU 数量的两倍或运行时出现 OOM,需要手动调低 `region-concurrency` 参数以避免 TiDB Lightning OOM。

- TiDB-backend:该模式的主要性能瓶颈是 TiDB,建议分配 4 核 CPU 和 8GB 内存。如果实际导入时,发现 TiDB 集群并没有达到写入的上限,可以适当调大 `region-concurrency` 配置参数。
- Importer-backend:资源消耗基本与 Local-backend 相同。不建议使用。如无特殊需求,请优先使用 Local-backend。


**存储空间**:配置项 `sorted-kv-dir` 设置排序的键值对的临时存放地址,目标路径需要是一个空目录,至少需要数据源最大单表的空间。建议与 `data-source-dir` 使用不同的存储设备,独占 IO 会获得更好的导入性能,且建议优先考虑配置闪存等高性能存储介质。

Expand Down