From 5f7ad64ba579c5ba28d122ba55a93d5c84476459 Mon Sep 17 00:00:00 2001 From: fzzf678 <108643977+fzzf678@users.noreply.github.com> Date: Mon, 7 Nov 2022 10:53:49 +0800 Subject: [PATCH] Add descriptions of new panels and update the plan cache doc (#11799) --- grafana-tidb-dashboard.md | 2 ++ media/planCache-memoryUsage-planNum-panels.png | Bin 0 -> 590704 bytes sql-prepared-plan-cache.md | 14 +++++++++++--- 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 media/planCache-memoryUsage-planNum-panels.png diff --git a/grafana-tidb-dashboard.md b/grafana-tidb-dashboard.md index 413c4c8ae8ce..2d23e41f2cf2 100644 --- a/grafana-tidb-dashboard.md +++ b/grafana-tidb-dashboard.md @@ -82,6 +82,8 @@ aliases: ['/docs-cn/dev/grafana-tidb-dashboard/','/docs-cn/dev/reference/key-mon - Expensive Executor OPS:每秒消耗系统资源比较多的算子。包括 Merge Join、Hash Join、Index Look Up Join、Hash Agg、Stream Agg、Sort、TopN 等。 - Queries Using Plan Cache OPS:每秒使用 Plan Cache 的查询数量。 - Plan Cache Miss OPS:每秒出现 Plan Cache Miss 的数量。 + - Plan Cache Memory Usage:每个 TiDB 实例上所有 Plan Cache 缓存的执行计划占用的总内存。 + - Plan Cache Plan Num:每个 TiDB 实例上所有 Plan Cache 缓存的执行计划总数。 - Distsql - Distsql Duration:Distsql 处理的时长 diff --git a/media/planCache-memoryUsage-planNum-panels.png b/media/planCache-memoryUsage-planNum-panels.png new file mode 100644 index 0000000000000000000000000000000000000000..311051ed4d612cdec68d0bdbe1ca6cecb46c4537 GIT binary patch literal 590704 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