Skip to content

Commit

Permalink
Add Lightning memory usage in different backends (#8439)
Browse files Browse the repository at this point in the history
  • Loading branch information
shichun-0415 authored Mar 4, 2022
1 parent 0dc861b commit c9304d7
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
2 changes: 1 addition & 1 deletion tidb-lightning/tidb-lightning-backends.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ TiDB Lightning Local-backend 模式的部署方法见 [TiDB Lightning 部署与

使用 TiDB-backend 时, TiDB Lightning 的速度仅受限于 TiDB 执行 SQL 语句的速度。因此,即使是低配的机器也足够发挥出最佳性能。推荐的硬件配置如下:

* 16 逻辑核 CPU
* 4 逻辑核 CPU
* 足够储存整个数据源的 SSD 硬盘,读取速度越快越好
* 千兆网卡

Expand Down
13 changes: 12 additions & 1 deletion tidb-lightning/tidb-lightning-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,18 @@ 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**

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

- Local-backend:该模式对 CPU 和内存的需求都比较高,建议为 TiDB Lightning 分配 32 核以上的 CPU 和 64 GiB 以上内存。

> **说明:**
>
> 导入大量数据时,一个并发对内存的占用在 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

0 comments on commit c9304d7

Please sign in to comment.