From 192206c904fc13408383b44675d3d9687987f7e5 Mon Sep 17 00:00:00 2001 From: Xintao Date: Mon, 14 Mar 2022 17:27:39 +0800 Subject: [PATCH 01/10] Quota limiter Signed-off-by: Xintao --- tikv-configuration-file.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 5931c2dfa84a..5dbc7df1ca3a 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1569,3 +1569,37 @@ Raft Engine 相关的配置项。 + 开启流水线式加悲观锁流程。开启该功能后,TiKV 在检测数据满足加锁要求后,立刻通知 TiDB 执行后面的请求,并异步写入悲观锁,从而降低大部分延迟,显著提升悲观事务的性能。但有较低概率出现悲观锁异步写入失败的情况,可能会导致悲观事务提交失败。 + 默认值:true + +## quota + +前端限流的相关配置。 + +> **警告:** +> +> Quota Limiter 目前为实验特性,设置较小的限额可能发生性能下降的现象。 + + +### `forefront-cpu-time` + ++ 限制处理前端请求的 CPU 耗时,单位为 millicpu,即 1500 代表 1.5vCPU。该参数的限制采用近似统计。 ++ 默认值:0,即不设限 + +### `forefront-req-rate` + ++ 限制处理前端请求的速率,被限制的前端请求仅包含事务读写相关的请求。 ++ 默认值:0,即不设限 + +### `write-kvs` + ++ 限制写入的键值对速率,被限制写入的键值对仅包含事务写入的部分。 ++ 默认值:0,即不设限 + +### `write-bandwidth` + ++ 限制写入带宽,被限制的写入带宽仅包含事务写入的部分。 ++ 默认值:0kb,即不设限 + +### `read-bandwidth` + ++ 限制读取带宽,被限制的读取带宽仅包含事务读和 coprocessor 相关的部分。 ++ 默认值:0kb,即不设限 From e8695f4f2c549de0759a2bdbc4b6c9c8f988bf6a Mon Sep 17 00:00:00 2001 From: Xintao Date: Mon, 14 Mar 2022 17:33:28 +0800 Subject: [PATCH 02/10] fix Signed-off-by: Xintao --- tikv-configuration-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 5dbc7df1ca3a..af98df6326bf 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1572,7 +1572,7 @@ Raft Engine 相关的配置项。 ## quota -前端限流的相关配置。 +前端限流的相关配置,以下参数的限制采用近似统计。 > **警告:** > @@ -1581,7 +1581,7 @@ Raft Engine 相关的配置项。 ### `forefront-cpu-time` -+ 限制处理前端请求的 CPU 耗时,单位为 millicpu,即 1500 代表 1.5vCPU。该参数的限制采用近似统计。 ++ 限制处理前端请求的 CPU 耗时,单位为 millicpu,即 1500 代表 1.5vCPU。 + 默认值:0,即不设限 ### `forefront-req-rate` From 1ded77762df87979378b32ddf0effd7eb89476f5 Mon Sep 17 00:00:00 2001 From: Xintao Date: Mon, 14 Mar 2022 20:20:54 +0800 Subject: [PATCH 03/10] fix Signed-off-by: Xintao --- tikv-configuration-file.md | 1 - 1 file changed, 1 deletion(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index af98df6326bf..be7ea72f0225 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1578,7 +1578,6 @@ Raft Engine 相关的配置项。 > > Quota Limiter 目前为实验特性,设置较小的限额可能发生性能下降的现象。 - ### `forefront-cpu-time` + 限制处理前端请求的 CPU 耗时,单位为 millicpu,即 1500 代表 1.5vCPU。 From 948c93bde34520582e91ffd78fd1d6893586b87d Mon Sep 17 00:00:00 2001 From: Xintao Date: Tue, 15 Mar 2022 21:38:11 +0800 Subject: [PATCH 04/10] Apply suggestions from code review Co-authored-by: Enwei --- tikv-configuration-file.md | 39 +++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index be7ea72f0225..9eb23595d4a4 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1572,33 +1572,38 @@ Raft Engine 相关的配置项。 ## quota -前端限流的相关配置,以下参数的限制采用近似统计。 +用于前台限流相关的配置项。 + +当【XXX,XXX 等物理资源有限】 时,如果 TiKV 前台处理的读写请求量过大,会导致前台和后台处理请求时占用彼此的 CPU 资源,最终影响 TiKV 性能的稳定性。此时,你可以通过开启前台限流 (Quota Limiter) 相关的 quota 配置项限制前台各类请求所占用的资源。 > **警告:** > -> Quota Limiter 目前为实验特性,设置较小的限额可能发生性能下降的现象。 +> - 前台限流是 TiDB 在 v6.0 中引入的实验特性,不建议在生产环境中使用。 +> - 如果 quota 相关配置项的值较小(【XXX举例给出一个具体数字,提示用户多小是“较小”】),可能发生 TiKV 性能下降的情况。 -### `forefront-cpu-time` +### `forefront-cpu-time` 从 v6.0 版本开始引入 -+ 限制处理前端请求的 CPU 耗时,单位为 millicpu,即 1500 代表 1.5vCPU。 -+ 默认值:0,即不设限 ++ 限制 CPU 为处理 TiKV 前台读写请求所花费的时间,这是一个软限制。 ++ 达到该限制后,新的请求则会进入 sleep 状态。如需 CPU 继续处理处于 sleep 状态的新请求,【XXX操作方法】。 ++ 默认值:0(即无限制) ++ 单位:millicpu(即当该参数值为 `1500` 时,前端请求会消耗 1.5vCPU) -### `forefront-req-rate` +### `forefront-req-rate` 从 v6.0 版本开始引入 -+ 限制处理前端请求的速率,被限制的前端请求仅包含事务读写相关的请求。 -+ 默认值:0,即不设限 ++ 限制在 TiKV 前台处理事务读写请求的速率,这是一个软限制。 ++ 默认值:0(即无限制) -### `write-kvs` +### `write-kvs` 从 v6.0 版本开始引入 -+ 限制写入的键值对速率,被限制写入的键值对仅包含事务写入的部分。 -+ 默认值:0,即不设限 ++ 限制事务写入键值对的速率,这是一个软限制。 ++ 默认值:0(即无限制) -### `write-bandwidth` +### `write-bandwidth` 从 v6.0 版本开始引入 -+ 限制写入带宽,被限制的写入带宽仅包含事务写入的部分。 -+ 默认值:0kb,即不设限 ++ 限制事务写入的带宽,这是一个软限制。 ++ 默认值:0KB(即无限制) -### `read-bandwidth` +### `read-bandwidth` 从 v6.0 版本开始引入 -+ 限制读取带宽,被限制的读取带宽仅包含事务读和 coprocessor 相关的部分。 -+ 默认值:0kb,即不设限 ++ 限制事务读取数据和 Coprocessor 读取数据的带宽,这是一个软限制。 ++ 默认值:0KB(即无限制) From 00ca322ec9b93f2b8d35593cfe315c8f0eacc7ab Mon Sep 17 00:00:00 2001 From: Xintao Date: Tue, 15 Mar 2022 21:52:53 +0800 Subject: [PATCH 05/10] address comments Signed-off-by: Xintao --- tikv-configuration-file.md | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 9eb23595d4a4..0052a3e00f52 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1574,30 +1574,20 @@ Raft Engine 相关的配置项。 用于前台限流相关的配置项。 -当【XXX,XXX 等物理资源有限】 时,如果 TiKV 前台处理的读写请求量过大,会导致前台和后台处理请求时占用彼此的 CPU 资源,最终影响 TiKV 性能的稳定性。此时,你可以通过开启前台限流 (Quota Limiter) 相关的 quota 配置项限制前台各类请求所占用的资源。 +当 TiKV 部署的机型资源受限时,如果前台处理的读写请求量过大,会导致后台处理请求的 CPU 资源被前台占用,最终影响 TiKV 性能的稳定性。此时,你可以通过开启前台限流 (Quota Limiter) 相关的 quota 配置项限制前台各类请求所占用的资源。 > **警告:** > > - 前台限流是 TiDB 在 v6.0 中引入的实验特性,不建议在生产环境中使用。 -> - 如果 quota 相关配置项的值较小(【XXX举例给出一个具体数字,提示用户多小是“较小”】),可能发生 TiKV 性能下降的情况。 +> - 该功能适合对峰值性能无要求,但对长期运行稳定性有要求的用户,启用该功能则会在资源丰富的机型环境出现 TiKV 峰值性能下降的情况。 ### `forefront-cpu-time` 从 v6.0 版本开始引入 -+ 限制 CPU 为处理 TiKV 前台读写请求所花费的时间,这是一个软限制。 -+ 达到该限制后,新的请求则会进入 sleep 状态。如需 CPU 继续处理处于 sleep 状态的新请求,【XXX操作方法】。 ++ 限制 CPU 为处理 TiKV 前台读写请求所使用的 CPU 资源使用量,这是一个软限制。 ++ 触发该限制的请求则会被强制等待一段时间以让出 CPU 资源。 + 默认值:0(即无限制) + 单位:millicpu(即当该参数值为 `1500` 时,前端请求会消耗 1.5vCPU) -### `forefront-req-rate` 从 v6.0 版本开始引入 - -+ 限制在 TiKV 前台处理事务读写请求的速率,这是一个软限制。 -+ 默认值:0(即无限制) - -### `write-kvs` 从 v6.0 版本开始引入 - -+ 限制事务写入键值对的速率,这是一个软限制。 -+ 默认值:0(即无限制) - ### `write-bandwidth` 从 v6.0 版本开始引入 + 限制事务写入的带宽,这是一个软限制。 From e465196508d0b2a0f898404ad0cf0646f09f2f73 Mon Sep 17 00:00:00 2001 From: Xintao Date: Wed, 16 Mar 2022 19:38:01 +0800 Subject: [PATCH 06/10] experiment code Signed-off-by: Xintao --- tikv-configuration-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 0052a3e00f52..44923d96a447 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1579,7 +1579,7 @@ Raft Engine 相关的配置项。 > **警告:** > > - 前台限流是 TiDB 在 v6.0 中引入的实验特性,不建议在生产环境中使用。 -> - 该功能适合对峰值性能无要求,但对长期运行稳定性有要求的用户,启用该功能则会在资源丰富的机型环境出现 TiKV 峰值性能下降的情况。 +> - 该功能适合在资源有限的环境中(如 4vCPU,16G 内存)提高长期运行的稳定性,但启用该功能则会在资源丰富的机型环境出现 TiKV 峰值性能下降的情况。 ### `forefront-cpu-time` 从 v6.0 版本开始引入 From 00dc7ddffad08982222d89c1f59a15718c69ee36 Mon Sep 17 00:00:00 2001 From: Xintao Date: Thu, 17 Mar 2022 14:38:19 +0800 Subject: [PATCH 07/10] fix name & add experiment feature Signed-off-by: Xintao --- tikv-configuration-file.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 44923d96a447..65914933aa5b 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1581,19 +1581,19 @@ Raft Engine 相关的配置项。 > - 前台限流是 TiDB 在 v6.0 中引入的实验特性,不建议在生产环境中使用。 > - 该功能适合在资源有限的环境中(如 4vCPU,16G 内存)提高长期运行的稳定性,但启用该功能则会在资源丰富的机型环境出现 TiKV 峰值性能下降的情况。 -### `forefront-cpu-time` 从 v6.0 版本开始引入 +### `foreground_cpu_time` 从 v6.0 版本开始引入 + 限制 CPU 为处理 TiKV 前台读写请求所使用的 CPU 资源使用量,这是一个软限制。 + 触发该限制的请求则会被强制等待一段时间以让出 CPU 资源。 + 默认值:0(即无限制) + 单位:millicpu(即当该参数值为 `1500` 时,前端请求会消耗 1.5vCPU) -### `write-bandwidth` 从 v6.0 版本开始引入 +### `foreground_write-bandwidth` 从 v6.0 版本开始引入 + 限制事务写入的带宽,这是一个软限制。 + 默认值:0KB(即无限制) -### `read-bandwidth` 从 v6.0 版本开始引入 +### `foreground_read-bandwidth` 从 v6.0 版本开始引入 + 限制事务读取数据和 Coprocessor 读取数据的带宽,这是一个软限制。 + 默认值:0KB(即无限制) From ded4fb4b792e8ecdc0134a6d72e34d6c38c8cecf Mon Sep 17 00:00:00 2001 From: Xintao Date: Wed, 23 Mar 2022 15:27:24 +0800 Subject: [PATCH 08/10] fix Signed-off-by: Xintao --- tikv-configuration-file.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 65914933aa5b..11416978f5b5 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1581,19 +1581,24 @@ Raft Engine 相关的配置项。 > - 前台限流是 TiDB 在 v6.0 中引入的实验特性,不建议在生产环境中使用。 > - 该功能适合在资源有限的环境中(如 4vCPU,16G 内存)提高长期运行的稳定性,但启用该功能则会在资源丰富的机型环境出现 TiKV 峰值性能下降的情况。 -### `foreground_cpu_time` 从 v6.0 版本开始引入 +### `foreground-cpu-time` 从 v6.0 版本开始引入 + 限制 CPU 为处理 TiKV 前台读写请求所使用的 CPU 资源使用量,这是一个软限制。 + 触发该限制的请求则会被强制等待一段时间以让出 CPU 资源。 + 默认值:0(即无限制) + 单位:millicpu(即当该参数值为 `1500` 时,前端请求会消耗 1.5vCPU) -### `foreground_write-bandwidth` 从 v6.0 版本开始引入 +### `foreground-write-bandwidth` 从 v6.0 版本开始引入 + 限制事务写入的带宽,这是一个软限制。 + 默认值:0KB(即无限制) -### `foreground_read-bandwidth` 从 v6.0 版本开始引入 +### `foreground-read-bandwidth` 从 v6.0 版本开始引入 + 限制事务读取数据和 Coprocessor 读取数据的带宽,这是一个软限制。 + 默认值:0KB(即无限制) + +### `max-delay-duration` 从 v6.0 版本开始引入 + ++ 单次前台读写请求被强制等待的最大时间。 ++ 默认值:500ms From c0a256333c5f9e9102fa1ce3c1348787b47e60f7 Mon Sep 17 00:00:00 2001 From: en-jin19 Date: Thu, 24 Mar 2022 17:04:15 +0800 Subject: [PATCH 09/10] revise format and update descriptions --- tikv-configuration-file.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 11416978f5b5..76f62dcab956 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -13,7 +13,7 @@ TiKV 配置文件比命令行参数支持更多的选项。你可以在 [etc/con ## 全局配置 -### abort-on-panic +### `abort-on-panic` + 设置 TiKV panic 时是否调用 `abort()` 退出进程。此选项影响 TiKV 是否允许系统生成 core dump 文件。 @@ -1572,33 +1572,32 @@ Raft Engine 相关的配置项。 ## quota -用于前台限流相关的配置项。 +用于前台限流 (Quota Limiter) 相关的配置项。 -当 TiKV 部署的机型资源受限时,如果前台处理的读写请求量过大,会导致后台处理请求的 CPU 资源被前台占用,最终影响 TiKV 性能的稳定性。此时,你可以通过开启前台限流 (Quota Limiter) 相关的 quota 配置项限制前台各类请求所占用的资源。 +当 TiKV 部署的机型资源有限(如 4v CPU,16 G 内存)时,如果 TiKV 前台处理的读写请求量过大,会占用 TiKV 后台处理请求所需的 CPU 资源,最终影响 TiKV 性能的稳定性。此时,你可以使用前台限流相关的 quota 配置项以限制前台各类请求占用的 CPU 资源。触发该限制的请求则会被强制等待一段时间以让出 CPU 资源。具体等待时间与新增请求量相关,最多不超过 [`max-delay-duration`](#max-delay-duration从-v600-版本开始引入) 的值。 > **警告:** > -> - 前台限流是 TiDB 在 v6.0 中引入的实验特性,不建议在生产环境中使用。 -> - 该功能适合在资源有限的环境中(如 4vCPU,16G 内存)提高长期运行的稳定性,但启用该功能则会在资源丰富的机型环境出现 TiKV 峰值性能下降的情况。 +> - 前台限流是 TiDB 在 v6.0.0 中引入的实验特性,不建议在生产环境中使用。 +> - 该功能仅适合在资源有限的环境中使用,以保证 TiKV 在该环境下可以长期稳定地运行。如果在资源丰富的机型环境中开启该功能,可能会导致读写请求量达到峰值时 TiKV 的性能下降的问题。 -### `foreground-cpu-time` 从 v6.0 版本开始引入 +### `foreground-cpu-time`(从 v6.0.0 版本开始引入) -+ 限制 CPU 为处理 TiKV 前台读写请求所使用的 CPU 资源使用量,这是一个软限制。 -+ 触发该限制的请求则会被强制等待一段时间以让出 CPU 资源。 ++ 限制处理 TiKV 前台读写请求所使用的 CPU 资源使用量,这是一个软限制。 + 默认值:0(即无限制) -+ 单位:millicpu(即当该参数值为 `1500` 时,前端请求会消耗 1.5vCPU) ++ 单位:millicpu (当该参数值为 `1500` 时,前端请求会消耗 1.5v CPU)。 -### `foreground-write-bandwidth` 从 v6.0 版本开始引入 +### `foreground-write-bandwidth`(从 v6.0.0 版本开始引入) + 限制事务写入的带宽,这是一个软限制。 + 默认值:0KB(即无限制) -### `foreground-read-bandwidth` 从 v6.0 版本开始引入 +### `foreground-read-bandwidth`(从 v6.0.0 版本开始引入) + 限制事务读取数据和 Coprocessor 读取数据的带宽,这是一个软限制。 + 默认值:0KB(即无限制) -### `max-delay-duration` 从 v6.0 版本开始引入 +### `max-delay-duration`(从 v6.0.0 版本开始引入) + 单次前台读写请求被强制等待的最大时间。 -+ 默认值:500ms ++ 默认值:500ms \ No newline at end of file From de64822cf64e599ade5d161fcef6cde34a28c7ec Mon Sep 17 00:00:00 2001 From: Enwei Date: Thu, 24 Mar 2022 17:05:27 +0800 Subject: [PATCH 10/10] Apply suggestions from code review --- tikv-configuration-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 76f62dcab956..c2887a5acb06 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -1574,7 +1574,7 @@ Raft Engine 相关的配置项。 用于前台限流 (Quota Limiter) 相关的配置项。 -当 TiKV 部署的机型资源有限(如 4v CPU,16 G 内存)时,如果 TiKV 前台处理的读写请求量过大,会占用 TiKV 后台处理请求所需的 CPU 资源,最终影响 TiKV 性能的稳定性。此时,你可以使用前台限流相关的 quota 配置项以限制前台各类请求占用的 CPU 资源。触发该限制的请求则会被强制等待一段时间以让出 CPU 资源。具体等待时间与新增请求量相关,最多不超过 [`max-delay-duration`](#max-delay-duration从-v600-版本开始引入) 的值。 +当 TiKV 部署的机型资源有限(如 4v CPU,16 G 内存)时,如果 TiKV 前台处理的读写请求量过大,会占用 TiKV 后台处理请求所需的 CPU 资源,最终影响 TiKV 性能的稳定性。此时,你可以使用前台限流相关的 quota 配置项以限制前台各类请求占用的 CPU 资源。触发该限制的请求会被强制等待一段时间以让出 CPU 资源。具体等待时间与新增请求量相关,最多不超过 [`max-delay-duration`](#max-delay-duration从-v600-版本开始引入) 的值。 > **警告:** >