From 4f980c2349500e62163054f2d60c9f784a8970fc Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 12 Sep 2024 16:59:14 +0800 Subject: [PATCH 1/7] tiproxy: revise description of tiproxyctl and traffic-related commands Signed-off-by: Aolin --- tiproxy/tiproxy-command-line-flags.md | 80 +++++++++++++++++++-------- 1 file changed, 58 insertions(+), 22 deletions(-) diff --git a/tiproxy/tiproxy-command-line-flags.md b/tiproxy/tiproxy-command-line-flags.md index e355a31050f3..0332dc2e9521 100644 --- a/tiproxy/tiproxy-command-line-flags.md +++ b/tiproxy/tiproxy-command-line-flags.md @@ -27,28 +27,36 @@ summary: 了解 TiProxy 的命令行参数。 ## TiProxy Control -本节介绍 TiProxy 客户端程序 `tiproxyctl` 的语法、选项和命令。 +本节介绍 TiProxy 客户端程序 `tiproxyctl` 的安装方式、语法、选项和命令。 -### 获取 TiProxy Control +### 安装 TiProxy Control -#### 通过 TiUP 安装 +本节提供两种方式安装 TiProxy Control。 -在安装了 TiUP 之后,可以使用 `tiup install tiproxy` 命令来获取 TiProxy 和 TiProxy Control 的二进制程序。TiProxy 的路径可通过 `tiup --binary tiproxy` 查看,TiProxy Control 与 TiProxy 在同一个目录下。 +#### 使用 TiUP 安装 + +在安装 [TiUP](/tiup/tiup-overview.md) 之后,可以使用 `tiup install tiproxy` 命令获取 TiProxy 和 TiProxy Control 的二进制程序。你可以通过 `tiup --binary tiproxy` 查看 TiProxy 的安装路径,TiProxy Control 与 TiProxy 位于同一目录。 例如: ```shell -> tiup install tiproxy -download https://tiup-mirrors.pingcap.com/tiproxy-v1.3.0-linux-amd64.tar.gz 22.51 MiB / 22.51 MiB 100.00% 13.99 MiB/s -> ls `tiup --binary tiproxy`ctl -/root/.tiup/components/tiproxy/v1.3.0/tiproxyctl +tiup install tiproxy +# download https://tiup-mirrors.pingcap.com/tiproxy-v1.3.0-linux-amd64.tar.gz 22.51 MiB / 22.51 MiB 100.00% 13.99 MiB/s +ls `tiup --binary tiproxy`ctl +# /root/.tiup/components/tiproxy/v1.3.0/tiproxyctl ``` #### 从源代码编译安装 编译环境要求:[Go](https://golang.org/) 1.21 或以上版本。 -编译步骤:在 [TiProxy 项目](https://github.com/pingcap/tiproxy)根目录,使用 `make` 命令进行编译,生成 tiproxyctl。 +编译步骤:在 [TiProxy 项目](https://github.com/pingcap/tiproxy)根目录,使用 `make` 命令进行编译,生成 `tiproxyctl`。 + +```shell +git clone https://github.com/pingcap/tiproxy.git +cd tiproxy +make +``` > **注意:** > @@ -154,10 +162,10 @@ level = 'warning' 选项: -- `--output`: 必须指定,指定流量文件存放的目录。 -- `--duration`: 必须指定,指定捕获的时长,可选单位为 `m` (分钟)、`h` (小时)、`d` (天)。例如 `--duration=1h` 指定捕获一小时的流量。 +- `--output`:(必填)指定流量文件存放的目录。 +- `--duration`:(必填)指定捕获的时长。可选单位为 `m`(分钟)、`h`(小时)或 `d`(天)。例如 `--duration=1h` 指定捕获一小时的流量。 -例如,以下命令连接到 TiProxy 实例 `10.0.1.10:3080`,捕获一个小时的流量,并保存到 TiProxy 实例的 `/tmp/traffic` 目录下: +例如,以下命令连接到 TiProxy 实例 `10.0.1.10:3080`,捕获一小时的流量,并保存到 TiProxy 实例的 `/tmp/traffic` 目录下: ```shell tiproxyctl traffic capture --host 10.0.1.10 --port 3080 --output="/tmp/traffic" --duration=1h @@ -169,12 +177,12 @@ tiproxyctl traffic capture --host 10.0.1.10 --port 3080 --output="/tmp/traffic" 选项: -- `--username`: 必须指定,指定回放时使用的数据库用户名。 -- `--password`: 指定以上用户名的密码,默认为 `""`。 -- `--input`: 必须指定,指定流量文件存放的目录。 -- `--speed`: 回放速率的倍数,范围为 0.1 到 10,默认为 1,代表原速回放。 +- `--username`:(必填)指定回放时使用的数据库用户名。 +- `--password`:(可选)指定以上用户名的密码,默认为空字符串 `""`。 +- `--input`:(必填)指定流量文件存放的目录。 +- `--speed`:(可选)指定回放速率的倍数,范围为 `[0.1, 10]`,默认为 1,表示原速回放。 -例如,如下命令通过用户名 `u1` 和密码 `123456` 连接到 TiProxy 实例 `10.0.1.10:3080`,并从 TiProxy 实例的 `/tmp/traffic` 目录下读取流量文件,按 2 倍速率回放流量: +例如,如下命令通过用户名 `u1` 和密码 `123456` 连接到 TiProxy 实例 `10.0.1.10:3080`,并从 TiProxy 实例的 `/tmp/traffic` 目录下读取流量文件,以 2 倍速率回放流量: ```shell tiproxyctl traffic replay --host 10.0.1.10 --port 3080 --username="u1" --password="123456" --input="/tmp/traffic" --speed=2 @@ -188,14 +196,42 @@ tiproxyctl traffic replay --host 10.0.1.10 --port 3080 --username="u1" --passwor `tiproxyctl traffic show` 用于显示历史的捕获和回放任务。 -输出中的 `status` 字段表示任务的状态,它有下列值: +输出中的 `status` 字段表示任务的状态,其可能的值包括: -- `done`: 代表任务正常运行完成。 -- `canceled`: 代表任务被取消,`error` 字段描述了被取消的原因。 -- `running`: 代表任务正在运行,`progress` 字段描述了运行的进度。 +- `done`:任务正常完成。 +- `canceled`:任务被取消,查看 `error` 字段了解原因。 +- `running`:任务正在运行,查看 `progress` 字段了解进度。 输出示例: ```json -[{"type":"capture","start_time":"2024-09-01T14:30:40.99096+08:00","end_time":"2024-09-01T16:30:40.99096+08:00","duration":"2h","output":"/tmp/triffic","progress":"100%","status":"done"},{"type":"capture","start_time":"2024-09-02T18:30:40.99096+08:00","end_time":"2024-09-02T19:00:40.99096+08:00","duration":"2h","output":"/tmp/triffic","progress":"25%","status":"canceled","error":"canceled manually"},{"type":"capture","start_time":"2024-09-03T13:31:40.99096+08:00","duration":"2h","output":"/tmp/triffic","progress":"45%","status":"running"}] +[ + { + "type": "capture", + "start_time": "2024-09-01T14:30:40.99096+08:00", + "end_time": "2024-09-01T16:30:40.99096+08:00", + "duration": "2h", + "output": "/tmp/traffic", + "progress": "100%", + "status": "done" + }, + { + "type": "capture", + "start_time": "2024-09-02T18:30:40.99096+08:00", + "end_time": "2024-09-02T19:00:40.99096+08:00", + "duration": "2h", + "output": "/tmp/traffic", + "progress": "25%", + "status": "canceled", + "error": "canceled manually" + }, + { + "type": "capture", + "start_time": "2024-09-03T13:31:40.99096+08:00", + "duration": "2h", + "output": "/tmp/traffic", + "progress": "45%", + "status": "running" + } +] ``` From 20c76505e1bc281280df332709400756c7ed5d77 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 12 Sep 2024 17:30:06 +0800 Subject: [PATCH 2/7] tiproxy: refine wording for description and usage scenarios Signed-off-by: Aolin --- tiproxy/tiproxy-traffic-replay.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tiproxy/tiproxy-traffic-replay.md b/tiproxy/tiproxy-traffic-replay.md index 4ade23c42ad7..e77368665364 100644 --- a/tiproxy/tiproxy-traffic-replay.md +++ b/tiproxy/tiproxy-traffic-replay.md @@ -9,7 +9,7 @@ summary: 介绍 TiProxy 的流量回放的使用场景和使用步骤。 > > TiProxy 流量回放目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 [issue](https://github.com/pingcap/tiproxy/issues) 反馈。 -从 v1.3.0 开始,TiProxy 支持捕获生产集群的流量,并将流量回放到测试集群。 +从 TiProxy v1.3.0 开始,TiProxy 支持捕获生产集群的流量,并将流量回放到测试集群。 TiProxy 流量回放 @@ -17,15 +17,15 @@ summary: 介绍 TiProxy 的流量回放的使用场景和使用步骤。 流量回放适用于以下场景: -- 升级 TiDB 版本之前,在新版本的测试集群上回放生产流量,验证新版本 TiDB 能成功执行所有 SQL 语句。 -- 在执行变更之前,在测试集群上用生产流量模拟,验证对集群的影响。例如变更配置项或系统变量、变更表结构、使用 TiDB 的新功能之前,先在测试集群验证效果。 -- 扩缩容 TiDB 之前,在新规模的测试集群上按对应速率回放流量,验证新规模集群的性能是否满足要求。例如,为了节省成本要将集群规模缩容到 1/2,则按 1/2 速率回放流量,验证缩容后 SQL 延迟是否满足要求。 -- 在相同规模的测试集群上多次回放流量,每次调大回放速率,测试该规模集群的吞吐量上限,以判断性能是否满足未来的业务增长。 +- TiDB 版本升级前验证:在新版本的测试集群上回放生产流量,验证新版本 TiDB 能否成功执行所有 SQL 语句。 +- 执行变更前影响评估:在测试集群上使用生产流量模拟,验证变更对集群的影响。例如变更配置项或系统变量、变更表结构、使用 TiDB 的新功能前,先在测试集群验证效果。 +- TiDB 扩缩容前性能验证:在新规模的测试集群上按对应速率回放流量,验证新规模集群的性能是否满足要求。例如,为了节省成本要将集群规模缩容到 1/2 时,按 1/2 速率回放流量,验证缩容后 SQL 延迟是否满足要求。 +- 性能上限测试:在相同规模的测试集群上多次回放流量,每次调大回放速率,测试该规模集群的吞吐量上限,以评估性能是否满足未来业务增长需求。 -不适用于以下场景: +流量回放不适用于以下场景: -- 从 MySQL 捕获流量后在 TiDB 上回放,验证 TiDB 与 MySQL 的 SQL 兼容性。TiProxy 只支持读取 TiProxy 生成的流量文件。 -- 验证新版本 TiDB 的 SQL 语句执行结果与旧版本相同。TiProxy 只验证 SQL 语句是否执行成功,不对比运行结果。 +- TiDB 与 MySQL 的 SQL 兼容性验证:TiProxy 只支持读取 TiProxy 生成的流量文件,不支持从 MySQL 捕获流量后在 TiDB 上回放。 +- TiDB 版本间 SQL 执行结果对比:TiProxy 只验证 SQL 语句是否执行成功,不对比运行结果。 ## 使用步骤 From 7420e3457a6fab54790515d8ed74812dd67ea87a Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 12 Sep 2024 17:34:36 +0800 Subject: [PATCH 3/7] tiproxy: update usage steps Signed-off-by: Aolin --- tiproxy/tiproxy-traffic-replay.md | 65 ++++++++++++++++++------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/tiproxy/tiproxy-traffic-replay.md b/tiproxy/tiproxy-traffic-replay.md index e77368665364..735d820f9e25 100644 --- a/tiproxy/tiproxy-traffic-replay.md +++ b/tiproxy/tiproxy-traffic-replay.md @@ -29,10 +29,19 @@ summary: 介绍 TiProxy 的流量回放的使用场景和使用步骤。 ## 使用步骤 -1. 创建测试集群,将生产集群的数据同步到测试集群,并在测试集群中运行 `ANALYZE` 更新统计信息。 -2. 使用 `tiproxyctl traffic capture` 命令连接到生产集群的 TiProxy 实例,开始捕获流量。TiProxy 会捕获所有连接上的流量,包括已创建的新创建的连接。 +1. 准备测试环境: - 在 TiProxy 主备模式下,请确保连接到 TiProxy 主实例。如果集群使用了虚拟 IP,建议连接到虚拟 IP 地址。 + 1. 创建测试集群,详情参考[使用 TiUP 部署 TiDB 集群](/production-deployment-using-tiup.md)。 + 2. 同步生产集群的数据到测试集群,详情参考[数据迁移概述](/migration-overview.md)。 + 3. 在测试集群中运行 [`ANALYZE`](/sql-statements/sql-statement-analyze-table.md) 更新统计信息 + +2. 使用 [`tiproxyctl traffic capture`](/tiproxy/tiproxy-command-line-flags.md#traffic-capture) 命令连接到生产集群的 TiProxy 实例,开始捕获流量。 + + > **注意:** + > + > - TiProxy 会捕获所有连接上的流量,包括已创建的和新创建的连接。 + > - 在 TiProxy 主备模式下,请确保连接到 TiProxy 主实例。 + > - 如果集群使用了虚拟 IP,建议连接到虚拟 IP 地址。 例如,以下命令连接到 TiProxy 实例 `10.0.1.10:3080`,捕获一个小时的流量,并将流量保存到 TiProxy 实例的 `/tmp/traffic` 目录下: @@ -40,21 +49,21 @@ summary: 介绍 TiProxy 的流量回放的使用场景和使用步骤。 tiproxyctl traffic capture --host 10.0.1.10 --port 3080 --output="/tmp/traffic" --duration=1h ``` - 流量文件会自动转轮和压缩。`/tmp/traffic` 目录下的文件样例: + 流量文件会自动转轮和压缩。`/tmp/traffic` 目录下的文件示例如下: ```shell - $ ls /tmp/traffic - meta traffic-2024-08-29T17-37-12.477.log.gz traffic-2024-08-29T17-43-11.166.log.gz traffic.log + ls /tmp/traffic + # meta traffic-2024-08-29T17-37-12.477.log.gz traffic-2024-08-29T17-43-11.166.log.gz traffic.log ``` - - 更多详细信息请参考 [`tiproxyctl traffic capture`](/tiproxy/tiproxy-command-line-flags.md#traffic-capture) 的使用文档。 + + 更多信息,请参考 [`tiproxyctl traffic capture`](/tiproxy/tiproxy-command-line-flags.md#traffic-capture)。 3. 将流量文件目录复制到测试集群的 TiProxy 实例上。 -4. 使用 `tiproxyctl traffic replay` 连接到测试集群的 TiProxy 实例,开始回放流量。 +4. 使用 [`tiproxyctl traffic replay`](/tiproxy/tiproxy-command-line-flags.md#traffic-replay) 连接到测试集群的 TiProxy 实例,开始回放流量。 默认配置下,SQL 语句的执行速率与生产集群相同,数据库连接也与生产集群一一对应,以模拟生产集群的负载,并保证事务的执行顺序一致。 - 例如,如下命令通过用户名 `u1` 和密码 `123456` 连接到 TiProxy 实例 `10.0.1.10:3080`,并从 TiProxy 实例的 `/tmp/traffic` 目录下读取流量文件,并回放流量: + 例如,如下命令通过用户名 `u1` 和密码 `123456` 连接到 TiProxy 实例 `10.0.1.10:3080`,从 TiProxy 实例的 `/tmp/traffic` 目录下读取流量文件并回放流量: ```shell tiproxyctl traffic replay --host 10.0.1.10 --port 3080 --username="u1" --password="123456" --input="/tmp/traffic" @@ -62,31 +71,33 @@ summary: 介绍 TiProxy 的流量回放的使用场景和使用步骤。 由于所有流量在用户 `u1` 下运行,请确保 `u1` 能访问所有数据库和表。如果没有这样的用户,则需要创建一个。 - 更多详细信息请参考 [`tiproxyctl traffic replay`](/tiproxy/tiproxy-command-line-flags.md#traffic-replay) 的使用文档。 + 更多信息,请参考 [`tiproxyctl traffic replay`](/tiproxy/tiproxy-command-line-flags.md#traffic-replay)。 + +5. 查看回放报告。 -5. 回放完成之后,报告存储在测试集群的 `tiproxy_traffic_report` 数据库下。该数据库下有两个表,`fail` 和 `other_errors`。 + 回放完成后,报告存储在测试集群的 `tiproxy_traffic_report` 数据库下。该数据库包含两个表 `fail` 和 `other_errors`。 - 表 `fail` 存储运行失败的 SQL 语句。它的字段如下: + `fail` 表存储运行失败的 SQL 语句,字段说明如下: - - `cmd_type`: 运行错误的命令类型,常见的有 `Query`(执行普通语句)、`Prepare`(预处理语句)、`Execute`(执行预处理语句)。 - - `digest`: 执行失败的 SQL 语句的指纹。 - - `sample_stmt`: 该 SQL 语句首次执行失败时的 SQL 文本。 - - `sample_err_msg`: 以上 SQL 语句执行失败的报错信息。 - - `sample_conn_id`: 以上 SQL 语句在流量文件中记录的连接 ID,可用于在流量文件中查看 SQL 语句的执行上下文。 - - `sample_capture_time`: 以上 SQL 语句在流量文件中记录的执行时间,可用于在流量文件中查看 SQL 语句的执行上下文。 - - `sample_replay_time`: 以上 SQL 语句在回放时执行失败的时间,可用于在 TiDB 日志文件中查看错误信息。 - - `count`: 该 SQL 语句执行失败的次数。 + - `cmd_type`:运行错误的命令类型,例如 `Query`(执行普通语句)、`Prepare`(预处理语句)、`Execute`(执行预处理语句)。 + - `digest`:执行失败的 SQL 语句的指纹。 + - `sample_stmt`:SQL 语句首次执行失败时的 SQL 文本。 + - `sample_err_msg`:SQL 语句执行失败的报错信息。 + - `sample_conn_id`:SQL 语句在流量文件中记录的连接 ID,可用于在流量文件中查看 SQL 语句的执行上下文。 + - `sample_capture_time`:SQL 语句在流量文件中记录的执行时间,可用于在流量文件中查看 SQL 语句的执行上下文。 + - `sample_replay_time`:SQL 语句在回放时执行失败的时间,可用于在 TiDB 日志文件中查看错误信息。 + - `count`:SQL 语句执行失败的次数。 - 表 `other_errors` 存储其他未预期错误,例如网络错误、连接数据库错误。它的字段如下: + `other_errors` 表存储其他未预期错误,例如网络错误、连接数据库错误。字段说明如下: - - `err_type`: 该错误的类型,是一个简短的错误信息,例如 `i/o timeout`。 - - `sample_err_msg`: 该错误首次出现时的完整错误信息。 - - `sample_replay_time`: 该错误在回放时执行失败的时间,可用于在 TiDB 日志文件中查看错误信息。 - - `count`: 该错误出现的次数。 + - `err_type`:错误的类型,是一个简短的错误信息,例如 `i/o timeout`。 + - `sample_err_msg`:错误首次出现时的完整错误信息。 + - `sample_replay_time`:错误在回放时执行失败的时间,可用于在 TiDB 日志文件中查看错误信息。 + - `count`:错误出现的次数。 > **注意:** > - > `tiproxy_traffic_report` 中的表结构在后续版本中可能会改变,因此不推荐在应用程序开发或工具开发中读取 `tiproxy_traffic_report` 中的数据。 + > `tiproxy_traffic_report` 中的表结构在未来版本中可能会改变。不推荐在应用程序开发或工具开发中读取 `tiproxy_traffic_report` 中的数据。 ## 测试吞吐量 From fb31872cb59404e9f7532bb315eaeb81f2fe6daa Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 12 Sep 2024 17:34:52 +0800 Subject: [PATCH 4/7] tiproxy: reformat code block Signed-off-by: Aolin --- tiproxy/tiproxy-traffic-replay.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tiproxy/tiproxy-traffic-replay.md b/tiproxy/tiproxy-traffic-replay.md index 735d820f9e25..c119e29fd2f3 100644 --- a/tiproxy/tiproxy-traffic-replay.md +++ b/tiproxy/tiproxy-traffic-replay.md @@ -122,7 +122,15 @@ tiproxyctl traffic show --host 10.0.1.10 --port 3080 例如,如下输出代表捕获任务正在运行: ```json -[{"type":"capture","start_time":"2024-09-03T09:10:58.220644+08:00","duration":"2h","progress":"45%","status":"running"}] +[ + { + "type": "capture", + "start_time": "2024-09-03T09:10:58.220644+08:00", + "duration": "2h", + "progress": "45%", + "status": "running" + } +] ``` 更多详细信息请参考 [`tiproxyctl traffic show`](/tiproxy/tiproxy-command-line-flags.md#traffic-show) 的使用文档。 From 9784193e3d695a715e33f236e48ef9b35afb16ba Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 12 Sep 2024 17:35:15 +0800 Subject: [PATCH 5/7] tiproxy: refine wording Signed-off-by: Aolin --- tiproxy/tiproxy-traffic-replay.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tiproxy/tiproxy-traffic-replay.md b/tiproxy/tiproxy-traffic-replay.md index c119e29fd2f3..a9e34e537d52 100644 --- a/tiproxy/tiproxy-traffic-replay.md +++ b/tiproxy/tiproxy-traffic-replay.md @@ -101,19 +101,19 @@ summary: 介绍 TiProxy 的流量回放的使用场景和使用步骤。 ## 测试吞吐量 -如果需要测试集群的吞吐量,可以加上 `--speed` 选项调整回放的速率。 +如果需要测试集群的吞吐量,可以使用 `--speed` 选项调整回放的速率。 -例如,加上 `--speed=2` 后,SQL 语句的执行间隔缩短,以 2 倍速率执行,总的回放时间缩短一半: +使用 `--speed` 选项可以加快 SQL 语句的执行速度。例如,`--speed=2` 会使 SQL 语句以 2 倍速率执行,总回放时间缩短一半: ```shell tiproxyctl traffic replay --host 10.0.1.10 --port 3080 --username="u1" --password="123456" --input="/tmp/traffic" --speed=2 ``` -调大回放速率只缩短会话的空闲时间,不增加连接数。因此当会话的空闲时间本身就较短时,调大倍速无法加大吞吐量。这时需要部署更多 TiProxy 实例,让它们同时回放相同的流量文件,通过增加并发度来加大吞吐量。 +调大回放速率只会缩短会话的空闲时间,不会增加连接数。因此当会话的空闲时间本身较短时,仅调大倍速可能无法有效提升吞吐量。在这种情况下,可以部署多个 TiProxy 实例,让它们同时回放相同的流量文件,通过增加并发度来提高吞吐量。 ## 任务查看与管理 -在捕获和回放过程中,如果遇到未知错误会自动停止任务。通过 `tiproxyctl traffic show` 命令可查看当前的任务进度或上次任务的错误信息: +在捕获和回放过程中,如果遇到未知错误会自动停止任务。使用 [`tiproxyctl traffic show`](/tiproxy/tiproxy-command-line-flags.md#traffic-show) 命令可查看当前的任务进度或上次任务的错误信息: ```shell tiproxyctl traffic show --host 10.0.1.10 --port 3080 @@ -133,19 +133,19 @@ tiproxyctl traffic show --host 10.0.1.10 --port 3080 ] ``` -更多详细信息请参考 [`tiproxyctl traffic show`](/tiproxy/tiproxy-command-line-flags.md#traffic-show) 的使用文档。 +更多信息,请参考 [`tiproxyctl traffic show`](/tiproxy/tiproxy-command-line-flags.md#traffic-show)。 -如果需要取消当前的捕获或回放任务,可使用 `tiproxyctl traffic cancel` 命令: +如果需要取消当前的捕获或回放任务,可使用 [`tiproxyctl traffic cancel`](/tiproxy/tiproxy-command-line-flags.md#traffic-cancel) 命令: ```shell tiproxyctl traffic cancel --host 10.0.1.10 --port 3080 ``` -更多详细信息请参考 [`tiproxyctl traffic cancel`](/tiproxy/tiproxy-command-line-flags.md#traffic-cancel) 的使用文档。 +更多信息,请参考 [`tiproxyctl traffic cancel`](/tiproxy/tiproxy-command-line-flags.md#traffic-cancel)。 ## 使用限制 -- TiProxy 仅支持回放 TiProxy 捕获的流量文件,不支持其他文件格式,因此生产集群使用了 TiProxy 之后才能捕获和回放流量。 -- TiProxy 不支持过滤 SQL 类型,DML 或 DDL 语句也会回放,因此重新回放前需要恢复集群数据到回放之前的状态。 -- 由于 TiProxy 使用同一个用户名回放流量,因此不能测试[资源管控](/tidb-resource-control.md)和[权限管理](/privilege-management.md)。 +- TiProxy 仅支持回放 TiProxy 捕获的流量文件,不支持其他文件格式,因此生产集群必须先使用 TiProxy 才能捕获和回放流量。 +- TiProxy 不支持过滤 SQL 类型,DML 和 DDL 语句也会被回放,因此重新回放前需要将集群数据恢复到回放前的状态。 +- 由于 TiProxy 使用同一个用户名回放流量,因此无法测试[资源管控](/tidb-resource-control.md)和[权限管理](/privilege-management.md)。 - 不支持回放 [`LOAD DATA`](/sql-statements/sql-statement-load-data.md) 语句。 \ No newline at end of file From dce33781542db53d7a4fafeff26aae240a7ad1b6 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 12 Sep 2024 18:10:23 +0800 Subject: [PATCH 6/7] Apply suggestions from code review Co-authored-by: djshow832 --- tiproxy/tiproxy-command-line-flags.md | 1 + tiproxy/tiproxy-traffic-replay.md | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tiproxy/tiproxy-command-line-flags.md b/tiproxy/tiproxy-command-line-flags.md index 0332dc2e9521..eeae56201270 100644 --- a/tiproxy/tiproxy-command-line-flags.md +++ b/tiproxy/tiproxy-command-line-flags.md @@ -56,6 +56,7 @@ ls `tiup --binary tiproxy`ctl git clone https://github.com/pingcap/tiproxy.git cd tiproxy make +ls bin/tiproxyctl ``` > **注意:** diff --git a/tiproxy/tiproxy-traffic-replay.md b/tiproxy/tiproxy-traffic-replay.md index a9e34e537d52..fe339b94f18c 100644 --- a/tiproxy/tiproxy-traffic-replay.md +++ b/tiproxy/tiproxy-traffic-replay.md @@ -103,13 +103,13 @@ summary: 介绍 TiProxy 的流量回放的使用场景和使用步骤。 如果需要测试集群的吞吐量,可以使用 `--speed` 选项调整回放的速率。 -使用 `--speed` 选项可以加快 SQL 语句的执行速度。例如,`--speed=2` 会使 SQL 语句以 2 倍速率执行,总回放时间缩短一半: +使用 `--speed` 选项可以调整 SQL 语句的执行速度。例如,`--speed=2` 会使 SQL 语句以 2 倍速率执行,总回放时间缩短一半: ```shell tiproxyctl traffic replay --host 10.0.1.10 --port 3080 --username="u1" --password="123456" --input="/tmp/traffic" --speed=2 ``` -调大回放速率只会缩短会话的空闲时间,不会增加连接数。因此当会话的空闲时间本身较短时,仅调大倍速可能无法有效提升吞吐量。在这种情况下,可以部署多个 TiProxy 实例,让它们同时回放相同的流量文件,通过增加并发度来提高吞吐量。 +调大回放速率只会缩短 SQL 语句之间的空闲时间,不会增加连接数。因此当会话的空闲时间本身较短时,仅调大倍速可能无法有效提升吞吐量。在这种情况下,可以部署多个 TiProxy 实例,让它们同时回放相同的流量文件,通过增加并发度来提高吞吐量。 ## 任务查看与管理 @@ -127,6 +127,7 @@ tiproxyctl traffic show --host 10.0.1.10 --port 3080 "type": "capture", "start_time": "2024-09-03T09:10:58.220644+08:00", "duration": "2h", + "output": "/tmp/traffic", "progress": "45%", "status": "running" } From b9cabc0b758fa4716ee800759fec53d3dc3e32c3 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 12 Sep 2024 18:37:08 +0800 Subject: [PATCH 7/7] Apply suggestions from code review --- tiproxy/tiproxy-traffic-replay.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tiproxy/tiproxy-traffic-replay.md b/tiproxy/tiproxy-traffic-replay.md index fe339b94f18c..3b4e5abed6d7 100644 --- a/tiproxy/tiproxy-traffic-replay.md +++ b/tiproxy/tiproxy-traffic-replay.md @@ -103,7 +103,7 @@ summary: 介绍 TiProxy 的流量回放的使用场景和使用步骤。 如果需要测试集群的吞吐量,可以使用 `--speed` 选项调整回放的速率。 -使用 `--speed` 选项可以调整 SQL 语句的执行速度。例如,`--speed=2` 会使 SQL 语句以 2 倍速率执行,总回放时间缩短一半: +例如,`--speed=2` 会使 SQL 语句以 2 倍速率执行,总回放时间缩短一半: ```shell tiproxyctl traffic replay --host 10.0.1.10 --port 3080 --username="u1" --password="123456" --input="/tmp/traffic" --speed=2