This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push: new b2355918e08 [doc] Refactor memory docs 2 (#1045) b2355918e08 is described below commit b2355918e08ff7b16a3f8bc67b8bf12dc98f3cc8 Author: Xinyi Zou <zouxiny...@gmail.com> AuthorDate: Sat Aug 24 09:17:49 2024 +0800 [doc] Refactor memory docs 2 (#1045) --- .../doris-cache-memory-analysis.md | 49 ++++++++++------------ .../global-memory-analysis.md | 0 .../heap-profile-memory-analysis.md | 0 .../jemalloc-memory-analysis.md | 0 .../{ => memory-analysis}/load-memory-analysis.md | 0 .../{ => memory-analysis}/memory-log-analysis.md | 0 .../metadata-memory-analysis.md | 0 .../{ => memory-analysis}/oom-crash-analysis.md | 0 ...uery-cancelled-after-process-memory-exceeded.md | 2 +- .../query-cancelled-after-query-memory-exceeded.md | 2 +- .../{ => memory-analysis}/query-memory-analysis.md | 0 .../memory-control-strategy.md | 0 .../{ => memory-feature}/memory-tracker.md | 0 .../memory-management/memory-issue-faq.md | 2 +- docs/admin-manual/memory-management/overview.md | 17 +++++--- .../docusaurus-plugin-content-docs/current.json | 8 ++++ .../doris-cache-memory-analysis.md | 38 ++++++++--------- .../memory-analysis}/global-memory-analysis.md | 4 +- .../heap-profile-memory-analysis.md | 0 .../jemalloc-memory-analysis.md | 0 .../{ => memory-analysis}/load-memory-analysis.md | 0 .../{ => memory-analysis}/memory-log-analysis.md | 0 .../memory-analysis}/metadata-memory-analysis.md | 2 +- .../{ => memory-analysis}/oom-crash-analysis.md | 0 ...uery-cancelled-after-process-memory-exceeded.md | 2 +- .../query-cancelled-after-query-memory-exceeded.md | 2 +- .../{ => memory-analysis}/query-memory-analysis.md | 0 .../memory-control-strategy.md | 0 .../memory-feature}/memory-tracker.md | 2 +- .../memory-management/memory-issue-faq.md | 2 +- .../admin-manual/memory-management/overview.md | 19 +++++---- .../version-2.1.json | 8 ++++ .../doris-cache-memory-analysis.md | 38 ++++++++--------- .../memory-analysis}/global-memory-analysis.md | 4 +- .../heap-profile-memory-analysis.md | 0 .../jemalloc-memory-analysis.md | 0 .../{ => memory-analysis}/load-memory-analysis.md | 0 .../{ => memory-analysis}/memory-log-analysis.md | 0 .../memory-analysis}/metadata-memory-analysis.md | 2 +- .../{ => memory-analysis}/oom-crash-analysis.md | 0 ...uery-cancelled-after-process-memory-exceeded.md | 2 +- .../query-cancelled-after-query-memory-exceeded.md | 2 +- .../{ => memory-analysis}/query-memory-analysis.md | 0 .../memory-control-strategy.md | 0 .../memory-feature}/memory-tracker.md | 2 +- .../memory-management/memory-issue-faq.md | 2 +- .../admin-manual/memory-management/overview.md | 19 +++++---- .../version-3.0.json | 8 ++++ .../doris-cache-memory-analysis.md | 38 ++++++++--------- .../memory-analysis}/global-memory-analysis.md | 4 +- .../heap-profile-memory-analysis.md | 0 .../jemalloc-memory-analysis.md | 0 .../{ => memory-analysis}/load-memory-analysis.md | 0 .../{ => memory-analysis}/memory-log-analysis.md | 0 .../memory-analysis}/metadata-memory-analysis.md | 2 +- .../{ => memory-analysis}/oom-crash-analysis.md | 0 ...uery-cancelled-after-process-memory-exceeded.md | 2 +- .../query-cancelled-after-query-memory-exceeded.md | 2 +- .../{ => memory-analysis}/query-memory-analysis.md | 0 .../memory-control-strategy.md | 0 .../memory-feature}/memory-tracker.md | 2 +- .../memory-management/memory-issue-faq.md | 2 +- .../admin-manual/memory-management/overview.md | 19 +++++---- sidebars.json | 40 +++++++++++------- .../doris-cache-memory-analysis.md | 49 ++++++++++------------ .../global-memory-analysis.md | 0 .../heap-profile-memory-analysis.md | 0 .../jemalloc-memory-analysis.md | 0 .../{ => memory-analysis}/load-memory-analysis.md | 0 .../{ => memory-analysis}/memory-log-analysis.md | 0 .../metadata-memory-analysis.md | 0 .../{ => memory-analysis}/oom-crash-analysis.md | 0 ...uery-cancelled-after-process-memory-exceeded.md | 2 +- .../query-cancelled-after-query-memory-exceeded.md | 2 +- .../{ => memory-analysis}/query-memory-analysis.md | 0 .../memory-control-strategy.md | 0 .../{ => memory-feature}/memory-tracker.md | 0 .../memory-management/memory-issue-faq.md | 2 +- .../admin-manual/memory-management/overview.md | 17 +++++--- .../doris-cache-memory-analysis.md | 49 ++++++++++------------ .../global-memory-analysis.md | 0 .../heap-profile-memory-analysis.md | 0 .../jemalloc-memory-analysis.md | 0 .../{ => memory-analysis}/load-memory-analysis.md | 0 .../{ => memory-analysis}/memory-log-analysis.md | 0 .../metadata-memory-analysis.md | 0 .../{ => memory-analysis}/oom-crash-analysis.md | 0 ...uery-cancelled-after-process-memory-exceeded.md | 2 +- .../query-cancelled-after-query-memory-exceeded.md | 2 +- .../{ => memory-analysis}/query-memory-analysis.md | 0 .../memory-control-strategy.md | 0 .../{ => memory-feature}/memory-tracker.md | 0 .../memory-management/memory-issue-faq.md | 2 +- .../admin-manual/memory-management/overview.md | 17 +++++--- versioned_sidebars/version-2.1-sidebars.json | 40 +++++++++++------- versioned_sidebars/version-3.0-sidebars.json | 40 +++++++++++------- 96 files changed, 321 insertions(+), 252 deletions(-) diff --git a/docs/admin-manual/memory-management/doris-cache-memory-analysis.md b/docs/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md similarity index 92% rename from docs/admin-manual/memory-management/doris-cache-memory-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md index 38cb7fb9803..90141a1efe9 100644 --- a/docs/admin-manual/memory-management/doris-cache-memory-analysis.md +++ b/docs/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Doris Cache Memory Analysis", + "title": "Cache Memory Analysis", "language": "zh-CN" } --- @@ -32,59 +32,60 @@ The caches managed by Doris are currently all LRU elimination strategies, and al Used to speed up data scanning. +``` - DataPageCache: Cache data Page. - -- IndexPageCache: Cache the index of data Page. - -- PKIndexPageCache: Cache the primary key index of Page. +- IndexPageCache: Cache data Page index. +- PKIndexPageCache: Cache Page primary key index. +``` 2. Metadata Cache Used to speed up metadata reading. -- SegmentCache: Cache the opened Segment, such as index information. - +``` +- SegmentCache: Cache open Segments, such as index information. - SchemaCache: Cache Rowset Schema. - - TabletSchemaCache: Cache Tablet Schema. - -- CreateTabletRRIdxCache: Cache Create Tabelt Index. - +- CreateTabletRRIdxCache: Cache Create Tabelt index. - MowTabletVersionCache: Cache Mow Tablet Version. - - MowDeleteBitmapAggCache: Cache Mow DeleteBitmap. +``` 3. Cloud Cache A dedicated cache on the cloud. -- CloudTabletCache: Cache Tablet on Cloud. - +``` +- CloudTabletCache: Cache Tablet on the Cloud. - CloudTxnDeleteBitmapCache: Cache DeleteBitmap on Cloud. +``` 4. Inverted Index Cache Speed up inverted index. +``` - InvertedIndexSearcherCache - - InvertedIndexQueryCache +``` 5. Point Query Cache Speed up point query execution, mainly used for log analysis. +``` - PointQueryRowCache - - PointQueryLookupConnectionCache +``` 6. Other Cache -- FileCache: File cache used by external table query and Cloud. +``` +- FileCache: File cache used by external table queries and Cloud. - CommonObjLRUCache - - LastSuccessChannelCache +``` ## Doris Cache View Method @@ -94,19 +95,15 @@ There are three ways to view Doris Cache related indicators. Web page `http://http://{be_host}:{be_web_server_port}/metrics` can see BE process memory monitoring (Metrics), including each cache capacity, usage, number of elements, search and hit times and other indicators. +``` - `doris_be_cache_capacity{name="TabletSchemaCache"} 102400`: Cache capacity, two limiting methods: memory size or number of elements. - -- `doris_be_cache_usage{name="TabletSchemaCache"} 40838`: Cache usage, memory size or number of elements, corresponding to the cache capacity limit. - +- `doris_be_cache_usage{name="TabletSchemaCache"} 40838`: Cache usage, memory size or number of elements, corresponding to the limit of cache capacity. - `doris_be_cache_usage_ratio{name="TabletSchemaCache"} 0.398809`: Cache usage, equal to `(cache_usage / cache_capacity)`. - - `doris_be_cache_element_count{name="TabletSchemaCache"} 1628`: Number of cache elements, equal to Cache Usage when the cache capacity limits the number of elements. - - `doris_be_cache_lookup_count{name="TabletSchemaCache"} 63393`: Number of cache lookups. - -- `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`: Number of cache hits when looking up. - +- `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`: Number of hits when looking up the cache. - `doris_be_cache_hit_ratio{name="TabletSchemaCache"} 0.974319`: Hit ratio, equal to `(hit_count / lookup_count)` +``` 2. Doris BE Bvar diff --git a/docs/admin-manual/memory-management/global-memory-analysis.md b/docs/admin-manual/memory-management/memory-analysis/global-memory-analysis.md similarity index 100% rename from docs/admin-manual/memory-management/global-memory-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/global-memory-analysis.md diff --git a/docs/admin-manual/memory-management/heap-profile-memory-analysis.md b/docs/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md similarity index 100% rename from docs/admin-manual/memory-management/heap-profile-memory-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md diff --git a/docs/admin-manual/memory-management/jemalloc-memory-analysis.md b/docs/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md similarity index 100% rename from docs/admin-manual/memory-management/jemalloc-memory-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md diff --git a/docs/admin-manual/memory-management/load-memory-analysis.md b/docs/admin-manual/memory-management/memory-analysis/load-memory-analysis.md similarity index 100% rename from docs/admin-manual/memory-management/load-memory-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/load-memory-analysis.md diff --git a/docs/admin-manual/memory-management/memory-log-analysis.md b/docs/admin-manual/memory-management/memory-analysis/memory-log-analysis.md similarity index 100% rename from docs/admin-manual/memory-management/memory-log-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/memory-log-analysis.md diff --git a/docs/admin-manual/memory-management/metadata-memory-analysis.md b/docs/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md similarity index 100% rename from docs/admin-manual/memory-management/metadata-memory-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md diff --git a/docs/admin-manual/memory-management/oom-crash-analysis.md b/docs/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md similarity index 100% rename from docs/admin-manual/memory-management/oom-crash-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md b/docs/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md similarity index 99% rename from versioned_docs/version-2.1/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md rename to docs/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md index 4016abce903..546e921a3a6 100644 --- a/versioned_docs/version-2.1/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md +++ b/docs/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "Query Cancelled After Process Memory Exceeded", + "title": "Query error Process Memory Not Enough", "language": "zh-CN" } --- diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md b/docs/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md similarity index 99% rename from versioned_docs/version-2.1/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md rename to docs/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md index d0860572cfa..28ba92e1e81 100644 --- a/versioned_docs/version-2.1/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md +++ b/docs/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "Query Cancelled After Query Memory Exceeded", + "title": "Query error Memory Tracker Limit Exceeded", "language": "zh-CN" } --- diff --git a/docs/admin-manual/memory-management/query-memory-analysis.md b/docs/admin-manual/memory-management/memory-analysis/query-memory-analysis.md similarity index 100% rename from docs/admin-manual/memory-management/query-memory-analysis.md rename to docs/admin-manual/memory-management/memory-analysis/query-memory-analysis.md diff --git a/docs/admin-manual/memory-management/memory-control-strategy.md b/docs/admin-manual/memory-management/memory-feature/memory-control-strategy.md similarity index 100% rename from docs/admin-manual/memory-management/memory-control-strategy.md rename to docs/admin-manual/memory-management/memory-feature/memory-control-strategy.md diff --git a/docs/admin-manual/memory-management/memory-tracker.md b/docs/admin-manual/memory-management/memory-feature/memory-tracker.md similarity index 100% rename from docs/admin-manual/memory-management/memory-tracker.md rename to docs/admin-manual/memory-management/memory-feature/memory-tracker.md diff --git a/docs/admin-manual/memory-management/memory-issue-faq.md b/docs/admin-manual/memory-management/memory-issue-faq.md index 61ea431e84f..f790fc78ff0 100644 --- a/docs/admin-manual/memory-management/memory-issue-faq.md +++ b/docs/admin-manual/memory-management/memory-issue-faq.md @@ -82,7 +82,7 @@ This is usually because the metadata memory loaded when the BE process starts is - If `tablet_meta_schema_columns_count` is too large, hundreds or thousands of times larger than `doris_total_tablet_schema_num`, it means that there are large wide tables with hundreds or thousands of columns in the cluster. At this time, the same number of tablets will occupy more memory. -### 7 Query does not have complex operators but simply scans data, but it uses a lot of memory +## 7 Query does not have complex operators but simply scans data, but it uses a lot of memory It may be the memory occupied by the Column Reader and Index Read opened when reading the Segment. Refer to [Metadata Memory Analysis](./metadata-memory-analysis.md) to view the changes of `doris_total_segment_num`, `doris_column_reader_num`, `doris_ordinal_index_memory_bytes`, `doris_zone_map_memory_bytes`, and `doris_short_key_index_memory_bytes` in Doris BE Bvar. This phenomenon is also common when reading large wide tables. When hundreds of thousands of Column Readers are opened, the [...] diff --git a/docs/admin-manual/memory-management/overview.md b/docs/admin-manual/memory-management/overview.md index e812d6ab66a..a97c51f3b62 100644 --- a/docs/admin-manual/memory-management/overview.md +++ b/docs/admin-manual/memory-management/overview.md @@ -34,6 +34,7 @@ When facing complex calculations and large-scale operations with huge memory res  +``` Server physical memory: The physical memory used by all processes on the server, MemTotal seen by `cat /proc/meminfo` or `free -h`. | |---> Linux Kernel Memory And Other Process Memory: Memory used by the Linux kernel and other processes. @@ -65,6 +66,7 @@ Server physical memory: The physical memory used by all processes on the server, | | |---> fragment: Same as query fragment execution, stream load usually only has scan operator. | | | | | |---> channel: The tablet channel writes data to a temporary data structure called memtable, and then the delta writer compresses the data and writes it to the file. +``` --- @@ -83,15 +85,10 @@ Memory Tracker is divided into different types. Among the Memory Tracker of type Memory Tracker has the following properties: 1. Label: the name of the Memory Tracker - 2. Current Consumption(Bytes): the current memory value, in B. - 3. Current Consumption(Normalize): the .G.M.K formatted output of the current memory value. - 4. Peak Consumption (Bytes): The peak memory value after the BE process is started, in units of B, and reset after the BE is restarted. - 5. Peak Consumption (Normalize): The .G.M.K formatted output of the peak memory value after the BE process is started, and reset after the BE is restarted. - 6. Parent Label: Used to indicate the parent-child relationship between two memory trackers. The memory recorded by the Child Tracker is a subset of the Parent Tracker. The memory recorded by different trackers with the same Parent may have an intersection. For more information about Memory Tracker, refer to [Memory Tracker](./memory-tracker.md). @@ -104,10 +101,13 @@ Historical memory statistics can be viewed through Doris BE's Bvar page `http:// When the error process memory exceeds the limit or the available memory is insufficient, you can find the `Memory Tracker Summary` in the `be/log/be.INFO` log, which contains all the Memory Trackers of `Type=overview` and `Type=global`, to help users analyze the memory status at that time. For details, please refer to [Memory Log Analysis](./memory-log-analysis.md) +--- + ## Memory Analysis Correspond the Memory Tracker of `type=overview` to each part of the memory under `tracked` in the above memory structure: +``` Doris BE Process Memory | |---> tracked: corresponds to `MemTrackerLimiter Label=sum of all trackers, Type=overview`, which is all the memory counted by the Memory Tracker, that is, the sum of the Current Consumption of other Memory Trackers with `type=overview` except `Label=process resident memory` and `Label=process virtual memory`. @@ -138,6 +138,7 @@ Doris BE Process Memory |---> Doris BE process physical memory, corresponding to `MemTrackerLimiter Label=process resident memory, Type=overview`, Current Consumption is taken from VmRSS in `/proc/self/status`, Peak Consumption is taken from VmHWM in `/proc/self/status`. | |---> Doris BE process virtual memory, corresponding to `MemTrackerLimiter Label=process virtual memory, Type=overview`, Current Consumption is taken from VmSize in `/proc/self/status`, and Peak Consumption is taken from VmPeak in `/proc/self/status`. +``` Analysis methods for each part of the memory in the above memory structure: @@ -149,10 +150,14 @@ Analysis methods for each part of the memory in the above memory structure: 4. [Load memory analysis](./load-memory-analysis.md) +--- + ## Memory problem FAQ Refer to [Memory problem FAQ](./memory-issue-faq.md) to analyze common memory problems. +--- + ## Memory control strategy -Refer to [Memory control strategy](./memory-control-strategy.md) for an introduction to memory allocation, monitoring, and recycling to ensure efficient and controllable memory of the Doris BE process. +Refer to [Memory Control Strategy](./memory-control-strategy.md) for an introduction to memory allocation, monitoring, and recycling, which ensure the efficient and controllable memory of the Doris BE process. diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current.json b/i18n/zh-CN/docusaurus-plugin-content-docs/current.json index 6d3ee8eea22..b7718b422aa 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current.json +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current.json @@ -203,6 +203,14 @@ "message": "内存管理", "description": "The label for category Managing Memory in sidebar docs" }, + "sidebar.docs.category.Managing Memory Analysis": { + "message": "内存分析", + "description": "The label for category Managing Memory Analysis in sidebar docs" + }, + "sidebar.docs.category.Managing Memory Feature": { + "message": "内存特性", + "description": "The label for category Managing Memory Feature in sidebar docs" + }, "sidebar.docs.category.Log Management": { "message": "日志管理", "description": "The label for category Log Management in sidebar docs" diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/doris-cache-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md similarity index 94% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/doris-cache-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md index 4c123a009f4..5ab3f7e5444 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/doris-cache-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Doris Cache 内存分析", + "title": "Cache 内存分析", "language": "zh-CN" } --- @@ -32,59 +32,59 @@ Doris 自己管理的 Cache 目前均为 LRU 淘汰策略,均支持单独通 用于加速数据扫描。 +``` - DataPageCache: 缓存数据 Page。 - - IndexPageCache: 缓存数据 Page 的索引。 - - PKIndexPageCache: 缓存 Page 的主键索引。 +``` 2. Metadata Cache 用于加速元数据读取。 +``` - SegmentCache: 缓存已打开的 Segment,如索引信息。 - - SchemaCache: 缓存 Rowset Schema。 - - TabletSchemaCache: 缓存 Tablet Schema。 - - CreateTabletRRIdxCache: 缓存 Create Tabelt 索引。 - - MowTabletVersionCache: 缓存 Mow Tablet Version。 - - MowDeleteBitmapAggCache: 缓存 Mow DeleteBitmap。 +``` 3. Cloud Cache 云上专用的缓存。 +``` - CloudTabletCache: Cloud 上缓存 Tablet。 - - CloudTxnDeleteBitmapCache: Cloud 上缓存 DeleteBitmap。 +``` 4. Inverted Index Cache 加速倒排索引。 +``` - InvertedIndexSearcherCache - - InvertedIndexQueryCache +``` 5. Point Query Cache 加速点查询执行,主要用于日志分析。 +``` - PointQueryRowCache - - PointQueryLookupConnectionCache +``` 6. Other Cache +``` - FileCache: 外表查询和 Cloud 使用的文件缓存。 - - CommonObjLRUCache - - LastSuccessChannelCache +``` ## Doris Cache 查看方法 @@ -94,19 +94,15 @@ Doris 自己管理的 Cache 目前均为 LRU 淘汰策略,均支持单独通 Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监控(Metrics),包括每个 Cache 的容量、使用率、元素个数、查找和命中次数等指标。 +``` - `doris_be_cache_capacity{name="TabletSchemaCache"} 102400`:Cache 容量,内存大小或者元素个数两种限制方法。 - - `doris_be_cache_usage{name="TabletSchemaCache"} 40838`:Cache 使用量,内存大小或者元素个数,对应 Cache 容量的限制。 - - `doris_be_cache_usage_ratio{name="TabletSchemaCache"} 0.398809`:Cache 使用率,等于`(cache_usage / cache_capacity)`。 - - `doris_be_cache_element_count{name="TabletSchemaCache"} 1628`:Cache 元素个数,当 Cache 容量限制元素个数时等于 Cache Usage。 - - `doris_be_cache_lookup_count{name="TabletSchemaCache"} 63393`:查找 Cache 的次数。 - - `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`:查找 Cache 时命中的次数。 - - `doris_be_cache_hit_ratio{name="TabletSchemaCache"} 0.974319`:命中率,等于`(hit_count / lookup_count)` +``` 2. Doris BE Bvar @@ -116,9 +112,9 @@ Web 页面 `http://http://{be_host}:{brpc_port}/vars/*cache*` 可以看到部分 3. Memory Trakcer -实时查看每个 Cache 占用内存大小,参考 [Global 内存分析](./global-memory-analysis.md),当存在内存报错时在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary` 中,其中包含当时的 Cache 内存大小。 +实时查看每个 Cache 占用内存大小,参考 [全局内存分析](./global-memory-analysis.md),当存在内存报错时在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary` 中,其中包含当时的 Cache 内存大小。 -## Doris Cache 内存分析 +## Cache 内存分析 Doris BE 运行时存在各种 Cache,通常无需关注 Cache 内存,因为在 BE 进程可用内存不足时会触发内存 GC 首先清理 Cache。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/global-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/global-memory-analysis.md similarity index 97% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/global-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/global-memory-analysis.md index 05ed6721042..4b8cc52287d 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/global-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/global-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Global 内存分析", + "title": "全局内存分析", "language": "zh-CN" } --- @@ -77,7 +77,7 @@ Global Memory Tracker `Label=global, Type=overview` 的值等于所有 `Type=glo ### Cache 分析方法 -参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md) +参考 [Cache 内存分析](./doris-cache-memory-analysis.md) ### Metadata 分析方法 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/heap-profile-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/heap-profile-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/jemalloc-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/jemalloc-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/load-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/load-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/load-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/load-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-log-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/memory-log-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-log-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/memory-log-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/metadata-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md similarity index 96% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/metadata-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md index 9fd3de12d56..d825b41edb6 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/metadata-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md @@ -56,7 +56,7 @@ Web 页面 `http://http://{be_host}:{brpc_port}/vars` 可以看到 Bvar 统计 ### Doris BE Metrics -Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监(Metrics)中的一些元数据指标。其中 Metadata Cache 相关指标参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md)。 +Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监(Metrics)中的一些元数据指标。其中 Metadata Cache 相关指标参考 [Cache 内存分析](./doris-cache-memory-analysis.md)。 ``` - `doris_be_all_rowsets_num`:所有 Rowset 的数量。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/oom-crash-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/oom-crash-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md similarity index 99% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md index 5b34e25f105..2c64e1ffc27 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "查询或导入报错进程可用内存不足", + "title": "查询报错 Process Memory Not Enough", "language": "zh-CN" } --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md similarity index 98% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md index 1ff9c134195..84d6c138b88 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "查询或导入报错超过单次执行内存限制", + "title": "查询报错 Memory Tracker Limit Exceeded", "language": "zh-CN" } --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/query-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/query-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/query-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-analysis/query-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-control-strategy.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-feature/memory-control-strategy.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-control-strategy.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-feature/memory-control-strategy.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-tracker.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-feature/memory-tracker.md similarity index 90% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-tracker.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-feature/memory-tracker.md index 227764b213f..cf74f43d9c7 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-tracker.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-feature/memory-tracker.md @@ -70,7 +70,7 @@ Doris 2.1 之前和之后的版本中 Memory Tracker 统计缺失的现象不同 否则可以先参考 [Metadata 内存分析](./metadata-memory-analysis.md) 分析 Doris BE 的元数据内存。 -> 在 Doris 2.1.5 之前的版本中 Segment Cache Memory Tacker 不准确,通常发现 Memory Tracker 统计缺失或 BE 进程内存不下降时,可以优先参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md) 分析 SegmentCache 内存使用,尝试关闭 Segment Cache 后继续测试。这是因为包括 Primary Key Index 在内的一些 Index 内存统计的是不准确的,导致 Segment Cache 内存没有得到有效限制,经常占用过大的内存,尤其是在成百上千列的大宽表上,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 如果你发现 Doris BE Metrics 中 `doris_be_cache_usage{name="SegmentCache"}` 不大,但 Doris BE Bvar 中 `doris_column_reader_num` 很大,则需要怀疑 Segment Cache 的内存 [...] +> 在 Doris 2.1.5 之前的版本中 Segment Cache Memory Tacker 不准确,通常发现 Memory Tracker 统计缺失或 BE 进程内存不下降时,可以优先参考 [Cache 内存分析](./doris-cache-memory-analysis.md) 分析 SegmentCache 内存使用,尝试关闭 Segment Cache 后继续测试。这是因为包括 Primary Key Index 在内的一些 Index 内存统计的是不准确的,导致 Segment Cache 内存没有得到有效限制,经常占用过大的内存,尤其是在成百上千列的大宽表上,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 如果你发现 Doris BE Metrics 中 `doris_be_cache_usage{name="SegmentCache"}` 不大,但 Doris BE Bvar 中 `doris_column_reader_num` 很大,则需要怀疑 Segment Cache 的内存占用,如果你 [...] ### Memory Tracker 统计缺失原因 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-issue-faq.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-issue-faq.md index 9d1705f50a3..0d794ae25c5 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-issue-faq.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-issue-faq.md @@ -82,7 +82,7 @@ Doris 目前仍存在 Doris BE 进程虚拟内存过大的问题,通常是因 - 如果 `tablet_meta_schema_columns_count` 过大,是 `doris_total_tablet_schema_num` 的成百上千倍,说明集群中存在几百上千列的大宽表,此时相同数量的 Tablet 会占用更多的内存。 -### 7 Query 没有复杂算子只是简单的 Scan 数据,却要使用很大的内存 +## 7 Query 没有复杂算子只是简单的 Scan 数据,却要使用很大的内存 可能是读取 Segment 时打开的 Column Reader、Index Read 占用的内存,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 查看 Doris BE Bvar 中的 `doris_total_segment_num`、`doris_column_reader_num`、`doris_ordinal_index_memory_bytes`、`doris_zone_map_memory_bytes`、`doris_short_key_index_memory_bytes`的变化,这个现象同样常见于读取大宽表,当打开几十万个 Column Reader 时,内存可能会占用几十GB。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/overview.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/overview.md index ffa044ea470..fc2c324ec74 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/overview.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/overview.md @@ -34,6 +34,7 @@ Apache Doris 作为基于 MPP 架构的 OLAP 数据库,数据从磁盘加载  +``` Server physical memory: 供服务器上所有进程使用的的物理内存,`cat /proc/meminfo` 或 `free -h` 看到的 MemTotal。 | |---> Linux Kernel Memory And Other Process Memory: Linux 内核和其他进程使用的内存。 @@ -65,6 +66,7 @@ Server physical memory: 供服务器上所有进程使用的的物理内存,`c | | |---> fragment: 和查询的 fragment 执行相同,stream load 通常只有 scan operator。 | | | | | |---> channel: tablet channel 将数据写入临时的数据结构 memtable,然后 delta writer 将数据压缩后写入文件。 +``` --- @@ -83,15 +85,10 @@ Memory Tracker 分为不同的类型,其中 `type=overview` 的 Memory Tracker Memory Tracker 拥有如下的属性: 1. Label: Memory Tracker 的名称 - 2. Current Consumption(Bytes): 当前内存值,单位 B。 - 3. Current Consumption(Normalize): 当前内存值的 .G.M.K 格式化输出。 - 4. Peak Consumption(Bytes): BE 进程启动后的内存峰值,单位 B,BE 重启后重置。 - 5. Peak Consumption(Normalize): BE 进程启动后内存峰值的 .G.M.K 格式化输出,BE 重启后重置。 - 6. Parent Label: 用于表明两个 Memory Tracker 的父子关系,Child Tracker 记录的内存是 Parent Tracker 的子集,Parent 相同的不同 Tracker 记录的内存可能存在交集。 有关 Memory Tracker 的更多介绍参考 [内存跟踪器](./memory-tracker.md)。 @@ -104,10 +101,13 @@ Memory Tracker 拥有如下的属性: 当报错进程内存超限或可用内存不足时,在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary`,包含所有 `Type=overview` 和 `Type=global` 的 Memory Tracker,帮助使用者分析当时的内存状态,具体参考 [内存日志分析](./memory-log-analysis.md) +--- + ## 内存分析 将 `type=overview` 的 Memory Tracker 对应到上述内存结构中 `tracked` 下的每一部分内存: +``` Doris BE Process Memory | |---> tracked: 对应 `MemTrackerLimiter Label=sum of all trackers, Type=overview`,是 Memory Tracker 统计到的所有内存,即除 `Label=process resident memory` 和 `Label=process virtual memory` 外,其他 `type=overview` 的 Memory Tracker 的 Current Consumption 总和。 @@ -138,21 +138,26 @@ Doris BE Process Memory |---> Doris BE 进程物理内存,对应 `MemTrackerLimiter Label=process resident memory, Type=overview`,Current Consumption 取自 VmRSS in `/proc/self/status`,Peak Consumption 取自 VmHWM in `/proc/self/status`。 | |---> Doris BE 进程虚拟内存,对应 `MemTrackerLimiter Label=process virtual memory, Type=overview`,Current Consumption 取自 VmSize in `/proc/self/status`,Peak Consumption 取自 VmPeak in `/proc/self/status`。 +``` 上述内存结构中每一部分内存的分析方法: 1. [Jemalloc 内存分析](./jemalloc-memory-analysis.md) -2. [Global 内存分析](./global-memory-analysis.md) +2. [全局内存分析](./global-memory-analysis.md) 3. [Query 内存分析](./query-memory-analysis.md) 4. [Load 内存分析](./load-memory-analysis.md) +--- + ## 内存问题 FAQ 参考 [内存问题 FAQ](./memory-issue-faq.md) 分析常见的内存问题。 +--- + ## 内存控制策略 -参考 [内存控制策略](./memory-control-strategy.md) 中对内存分配、监控、回收的介绍,确保 Doris BE 进程内存的高效可控。 +参考 [内存控制策略](./memory-control-strategy.md) 中对内存分配、监控、回收的介绍,它们保证了 Doris BE 进程内存的高效可控。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1.json index 45266e4dc72..897067e01d2 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1.json +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1.json @@ -179,6 +179,14 @@ "message": "内存管理", "description": "The label for category Memory Management in sidebar docs" }, + "sidebar.docs.category.Managing Memory Analysis": { + "message": "内存分析", + "description": "The label for category Managing Memory Analysis in sidebar docs" + }, + "sidebar.docs.category.Managing Memory Feature": { + "message": "内存特性", + "description": "The label for category Managing Memory Feature in sidebar docs" + }, "sidebar.docs.category.Maintenance": { "message": "运维监控", "description": "The label for category Maintenance and Monitor in sidebar docs" diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/doris-cache-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md similarity index 94% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/doris-cache-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md index 4c123a009f4..5ab3f7e5444 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/doris-cache-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Doris Cache 内存分析", + "title": "Cache 内存分析", "language": "zh-CN" } --- @@ -32,59 +32,59 @@ Doris 自己管理的 Cache 目前均为 LRU 淘汰策略,均支持单独通 用于加速数据扫描。 +``` - DataPageCache: 缓存数据 Page。 - - IndexPageCache: 缓存数据 Page 的索引。 - - PKIndexPageCache: 缓存 Page 的主键索引。 +``` 2. Metadata Cache 用于加速元数据读取。 +``` - SegmentCache: 缓存已打开的 Segment,如索引信息。 - - SchemaCache: 缓存 Rowset Schema。 - - TabletSchemaCache: 缓存 Tablet Schema。 - - CreateTabletRRIdxCache: 缓存 Create Tabelt 索引。 - - MowTabletVersionCache: 缓存 Mow Tablet Version。 - - MowDeleteBitmapAggCache: 缓存 Mow DeleteBitmap。 +``` 3. Cloud Cache 云上专用的缓存。 +``` - CloudTabletCache: Cloud 上缓存 Tablet。 - - CloudTxnDeleteBitmapCache: Cloud 上缓存 DeleteBitmap。 +``` 4. Inverted Index Cache 加速倒排索引。 +``` - InvertedIndexSearcherCache - - InvertedIndexQueryCache +``` 5. Point Query Cache 加速点查询执行,主要用于日志分析。 +``` - PointQueryRowCache - - PointQueryLookupConnectionCache +``` 6. Other Cache +``` - FileCache: 外表查询和 Cloud 使用的文件缓存。 - - CommonObjLRUCache - - LastSuccessChannelCache +``` ## Doris Cache 查看方法 @@ -94,19 +94,15 @@ Doris 自己管理的 Cache 目前均为 LRU 淘汰策略,均支持单独通 Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监控(Metrics),包括每个 Cache 的容量、使用率、元素个数、查找和命中次数等指标。 +``` - `doris_be_cache_capacity{name="TabletSchemaCache"} 102400`:Cache 容量,内存大小或者元素个数两种限制方法。 - - `doris_be_cache_usage{name="TabletSchemaCache"} 40838`:Cache 使用量,内存大小或者元素个数,对应 Cache 容量的限制。 - - `doris_be_cache_usage_ratio{name="TabletSchemaCache"} 0.398809`:Cache 使用率,等于`(cache_usage / cache_capacity)`。 - - `doris_be_cache_element_count{name="TabletSchemaCache"} 1628`:Cache 元素个数,当 Cache 容量限制元素个数时等于 Cache Usage。 - - `doris_be_cache_lookup_count{name="TabletSchemaCache"} 63393`:查找 Cache 的次数。 - - `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`:查找 Cache 时命中的次数。 - - `doris_be_cache_hit_ratio{name="TabletSchemaCache"} 0.974319`:命中率,等于`(hit_count / lookup_count)` +``` 2. Doris BE Bvar @@ -116,9 +112,9 @@ Web 页面 `http://http://{be_host}:{brpc_port}/vars/*cache*` 可以看到部分 3. Memory Trakcer -实时查看每个 Cache 占用内存大小,参考 [Global 内存分析](./global-memory-analysis.md),当存在内存报错时在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary` 中,其中包含当时的 Cache 内存大小。 +实时查看每个 Cache 占用内存大小,参考 [全局内存分析](./global-memory-analysis.md),当存在内存报错时在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary` 中,其中包含当时的 Cache 内存大小。 -## Doris Cache 内存分析 +## Cache 内存分析 Doris BE 运行时存在各种 Cache,通常无需关注 Cache 内存,因为在 BE 进程可用内存不足时会触发内存 GC 首先清理 Cache。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/global-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/global-memory-analysis.md similarity index 97% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/global-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/global-memory-analysis.md index 05ed6721042..4b8cc52287d 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/global-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/global-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Global 内存分析", + "title": "全局内存分析", "language": "zh-CN" } --- @@ -77,7 +77,7 @@ Global Memory Tracker `Label=global, Type=overview` 的值等于所有 `Type=glo ### Cache 分析方法 -参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md) +参考 [Cache 内存分析](./doris-cache-memory-analysis.md) ### Metadata 分析方法 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/heap-profile-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/heap-profile-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/jemalloc-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/jemalloc-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/load-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/load-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/load-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/load-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-log-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/memory-log-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-log-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/memory-log-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/metadata-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md similarity index 96% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/metadata-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md index 9fd3de12d56..d825b41edb6 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/metadata-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md @@ -56,7 +56,7 @@ Web 页面 `http://http://{be_host}:{brpc_port}/vars` 可以看到 Bvar 统计 ### Doris BE Metrics -Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监(Metrics)中的一些元数据指标。其中 Metadata Cache 相关指标参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md)。 +Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监(Metrics)中的一些元数据指标。其中 Metadata Cache 相关指标参考 [Cache 内存分析](./doris-cache-memory-analysis.md)。 ``` - `doris_be_all_rowsets_num`:所有 Rowset 的数量。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/oom-crash-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/oom-crash-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md similarity index 99% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md index 5b34e25f105..2c64e1ffc27 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "查询或导入报错进程可用内存不足", + "title": "查询报错 Process Memory Not Enough", "language": "zh-CN" } --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md similarity index 98% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md index 1ff9c134195..84d6c138b88 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "查询或导入报错超过单次执行内存限制", + "title": "查询报错 Memory Tracker Limit Exceeded", "language": "zh-CN" } --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/query-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/query-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/query-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-analysis/query-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-control-strategy.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-feature/memory-control-strategy.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-control-strategy.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-feature/memory-control-strategy.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-tracker.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-feature/memory-tracker.md similarity index 90% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-tracker.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-feature/memory-tracker.md index 227764b213f..cf74f43d9c7 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-tracker.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-feature/memory-tracker.md @@ -70,7 +70,7 @@ Doris 2.1 之前和之后的版本中 Memory Tracker 统计缺失的现象不同 否则可以先参考 [Metadata 内存分析](./metadata-memory-analysis.md) 分析 Doris BE 的元数据内存。 -> 在 Doris 2.1.5 之前的版本中 Segment Cache Memory Tacker 不准确,通常发现 Memory Tracker 统计缺失或 BE 进程内存不下降时,可以优先参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md) 分析 SegmentCache 内存使用,尝试关闭 Segment Cache 后继续测试。这是因为包括 Primary Key Index 在内的一些 Index 内存统计的是不准确的,导致 Segment Cache 内存没有得到有效限制,经常占用过大的内存,尤其是在成百上千列的大宽表上,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 如果你发现 Doris BE Metrics 中 `doris_be_cache_usage{name="SegmentCache"}` 不大,但 Doris BE Bvar 中 `doris_column_reader_num` 很大,则需要怀疑 Segment Cache 的内存 [...] +> 在 Doris 2.1.5 之前的版本中 Segment Cache Memory Tacker 不准确,通常发现 Memory Tracker 统计缺失或 BE 进程内存不下降时,可以优先参考 [Cache 内存分析](./doris-cache-memory-analysis.md) 分析 SegmentCache 内存使用,尝试关闭 Segment Cache 后继续测试。这是因为包括 Primary Key Index 在内的一些 Index 内存统计的是不准确的,导致 Segment Cache 内存没有得到有效限制,经常占用过大的内存,尤其是在成百上千列的大宽表上,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 如果你发现 Doris BE Metrics 中 `doris_be_cache_usage{name="SegmentCache"}` 不大,但 Doris BE Bvar 中 `doris_column_reader_num` 很大,则需要怀疑 Segment Cache 的内存占用,如果你 [...] ### Memory Tracker 统计缺失原因 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-issue-faq.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-issue-faq.md index 9d1705f50a3..0d794ae25c5 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-issue-faq.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/memory-issue-faq.md @@ -82,7 +82,7 @@ Doris 目前仍存在 Doris BE 进程虚拟内存过大的问题,通常是因 - 如果 `tablet_meta_schema_columns_count` 过大,是 `doris_total_tablet_schema_num` 的成百上千倍,说明集群中存在几百上千列的大宽表,此时相同数量的 Tablet 会占用更多的内存。 -### 7 Query 没有复杂算子只是简单的 Scan 数据,却要使用很大的内存 +## 7 Query 没有复杂算子只是简单的 Scan 数据,却要使用很大的内存 可能是读取 Segment 时打开的 Column Reader、Index Read 占用的内存,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 查看 Doris BE Bvar 中的 `doris_total_segment_num`、`doris_column_reader_num`、`doris_ordinal_index_memory_bytes`、`doris_zone_map_memory_bytes`、`doris_short_key_index_memory_bytes`的变化,这个现象同样常见于读取大宽表,当打开几十万个 Column Reader 时,内存可能会占用几十GB。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/overview.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/overview.md index ffa044ea470..fc2c324ec74 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/overview.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/memory-management/overview.md @@ -34,6 +34,7 @@ Apache Doris 作为基于 MPP 架构的 OLAP 数据库,数据从磁盘加载  +``` Server physical memory: 供服务器上所有进程使用的的物理内存,`cat /proc/meminfo` 或 `free -h` 看到的 MemTotal。 | |---> Linux Kernel Memory And Other Process Memory: Linux 内核和其他进程使用的内存。 @@ -65,6 +66,7 @@ Server physical memory: 供服务器上所有进程使用的的物理内存,`c | | |---> fragment: 和查询的 fragment 执行相同,stream load 通常只有 scan operator。 | | | | | |---> channel: tablet channel 将数据写入临时的数据结构 memtable,然后 delta writer 将数据压缩后写入文件。 +``` --- @@ -83,15 +85,10 @@ Memory Tracker 分为不同的类型,其中 `type=overview` 的 Memory Tracker Memory Tracker 拥有如下的属性: 1. Label: Memory Tracker 的名称 - 2. Current Consumption(Bytes): 当前内存值,单位 B。 - 3. Current Consumption(Normalize): 当前内存值的 .G.M.K 格式化输出。 - 4. Peak Consumption(Bytes): BE 进程启动后的内存峰值,单位 B,BE 重启后重置。 - 5. Peak Consumption(Normalize): BE 进程启动后内存峰值的 .G.M.K 格式化输出,BE 重启后重置。 - 6. Parent Label: 用于表明两个 Memory Tracker 的父子关系,Child Tracker 记录的内存是 Parent Tracker 的子集,Parent 相同的不同 Tracker 记录的内存可能存在交集。 有关 Memory Tracker 的更多介绍参考 [内存跟踪器](./memory-tracker.md)。 @@ -104,10 +101,13 @@ Memory Tracker 拥有如下的属性: 当报错进程内存超限或可用内存不足时,在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary`,包含所有 `Type=overview` 和 `Type=global` 的 Memory Tracker,帮助使用者分析当时的内存状态,具体参考 [内存日志分析](./memory-log-analysis.md) +--- + ## 内存分析 将 `type=overview` 的 Memory Tracker 对应到上述内存结构中 `tracked` 下的每一部分内存: +``` Doris BE Process Memory | |---> tracked: 对应 `MemTrackerLimiter Label=sum of all trackers, Type=overview`,是 Memory Tracker 统计到的所有内存,即除 `Label=process resident memory` 和 `Label=process virtual memory` 外,其他 `type=overview` 的 Memory Tracker 的 Current Consumption 总和。 @@ -138,21 +138,26 @@ Doris BE Process Memory |---> Doris BE 进程物理内存,对应 `MemTrackerLimiter Label=process resident memory, Type=overview`,Current Consumption 取自 VmRSS in `/proc/self/status`,Peak Consumption 取自 VmHWM in `/proc/self/status`。 | |---> Doris BE 进程虚拟内存,对应 `MemTrackerLimiter Label=process virtual memory, Type=overview`,Current Consumption 取自 VmSize in `/proc/self/status`,Peak Consumption 取自 VmPeak in `/proc/self/status`。 +``` 上述内存结构中每一部分内存的分析方法: 1. [Jemalloc 内存分析](./jemalloc-memory-analysis.md) -2. [Global 内存分析](./global-memory-analysis.md) +2. [全局内存分析](./global-memory-analysis.md) 3. [Query 内存分析](./query-memory-analysis.md) 4. [Load 内存分析](./load-memory-analysis.md) +--- + ## 内存问题 FAQ 参考 [内存问题 FAQ](./memory-issue-faq.md) 分析常见的内存问题。 +--- + ## 内存控制策略 -参考 [内存控制策略](./memory-control-strategy.md) 中对内存分配、监控、回收的介绍,确保 Doris BE 进程内存的高效可控。 +参考 [内存控制策略](./memory-control-strategy.md) 中对内存分配、监控、回收的介绍,它们保证了 Doris BE 进程内存的高效可控。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0.json index 3112a8c3883..dea2a96c37a 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0.json +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0.json @@ -195,6 +195,14 @@ "message": "内存管理", "description": "The label for category Managing Memory in sidebar docs" }, + "sidebar.docs.category.Managing Memory Analysis": { + "message": "内存分析", + "description": "The label for category Managing Memory Analysis in sidebar docs" + }, + "sidebar.docs.category.Managing Memory Feature": { + "message": "内存特性", + "description": "The label for category Managing Memory Feature in sidebar docs" + }, "sidebar.docs.category.Log Management": { "message": "日志管理", "description": "The label for category Log Management in sidebar docs" diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/doris-cache-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md similarity index 94% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/doris-cache-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md index 4c123a009f4..5ab3f7e5444 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/doris-cache-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Doris Cache 内存分析", + "title": "Cache 内存分析", "language": "zh-CN" } --- @@ -32,59 +32,59 @@ Doris 自己管理的 Cache 目前均为 LRU 淘汰策略,均支持单独通 用于加速数据扫描。 +``` - DataPageCache: 缓存数据 Page。 - - IndexPageCache: 缓存数据 Page 的索引。 - - PKIndexPageCache: 缓存 Page 的主键索引。 +``` 2. Metadata Cache 用于加速元数据读取。 +``` - SegmentCache: 缓存已打开的 Segment,如索引信息。 - - SchemaCache: 缓存 Rowset Schema。 - - TabletSchemaCache: 缓存 Tablet Schema。 - - CreateTabletRRIdxCache: 缓存 Create Tabelt 索引。 - - MowTabletVersionCache: 缓存 Mow Tablet Version。 - - MowDeleteBitmapAggCache: 缓存 Mow DeleteBitmap。 +``` 3. Cloud Cache 云上专用的缓存。 +``` - CloudTabletCache: Cloud 上缓存 Tablet。 - - CloudTxnDeleteBitmapCache: Cloud 上缓存 DeleteBitmap。 +``` 4. Inverted Index Cache 加速倒排索引。 +``` - InvertedIndexSearcherCache - - InvertedIndexQueryCache +``` 5. Point Query Cache 加速点查询执行,主要用于日志分析。 +``` - PointQueryRowCache - - PointQueryLookupConnectionCache +``` 6. Other Cache +``` - FileCache: 外表查询和 Cloud 使用的文件缓存。 - - CommonObjLRUCache - - LastSuccessChannelCache +``` ## Doris Cache 查看方法 @@ -94,19 +94,15 @@ Doris 自己管理的 Cache 目前均为 LRU 淘汰策略,均支持单独通 Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监控(Metrics),包括每个 Cache 的容量、使用率、元素个数、查找和命中次数等指标。 +``` - `doris_be_cache_capacity{name="TabletSchemaCache"} 102400`:Cache 容量,内存大小或者元素个数两种限制方法。 - - `doris_be_cache_usage{name="TabletSchemaCache"} 40838`:Cache 使用量,内存大小或者元素个数,对应 Cache 容量的限制。 - - `doris_be_cache_usage_ratio{name="TabletSchemaCache"} 0.398809`:Cache 使用率,等于`(cache_usage / cache_capacity)`。 - - `doris_be_cache_element_count{name="TabletSchemaCache"} 1628`:Cache 元素个数,当 Cache 容量限制元素个数时等于 Cache Usage。 - - `doris_be_cache_lookup_count{name="TabletSchemaCache"} 63393`:查找 Cache 的次数。 - - `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`:查找 Cache 时命中的次数。 - - `doris_be_cache_hit_ratio{name="TabletSchemaCache"} 0.974319`:命中率,等于`(hit_count / lookup_count)` +``` 2. Doris BE Bvar @@ -116,9 +112,9 @@ Web 页面 `http://http://{be_host}:{brpc_port}/vars/*cache*` 可以看到部分 3. Memory Trakcer -实时查看每个 Cache 占用内存大小,参考 [Global 内存分析](./global-memory-analysis.md),当存在内存报错时在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary` 中,其中包含当时的 Cache 内存大小。 +实时查看每个 Cache 占用内存大小,参考 [全局内存分析](./global-memory-analysis.md),当存在内存报错时在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary` 中,其中包含当时的 Cache 内存大小。 -## Doris Cache 内存分析 +## Cache 内存分析 Doris BE 运行时存在各种 Cache,通常无需关注 Cache 内存,因为在 BE 进程可用内存不足时会触发内存 GC 首先清理 Cache。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/global-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/global-memory-analysis.md similarity index 97% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/global-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/global-memory-analysis.md index 05ed6721042..4b8cc52287d 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/global-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/global-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Global 内存分析", + "title": "全局内存分析", "language": "zh-CN" } --- @@ -77,7 +77,7 @@ Global Memory Tracker `Label=global, Type=overview` 的值等于所有 `Type=glo ### Cache 分析方法 -参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md) +参考 [Cache 内存分析](./doris-cache-memory-analysis.md) ### Metadata 分析方法 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/heap-profile-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/heap-profile-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/jemalloc-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/jemalloc-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/load-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/load-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/load-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/load-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-log-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/memory-log-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-log-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/memory-log-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/metadata-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md similarity index 96% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/metadata-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md index 9fd3de12d56..d825b41edb6 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/metadata-memory-analysis.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md @@ -56,7 +56,7 @@ Web 页面 `http://http://{be_host}:{brpc_port}/vars` 可以看到 Bvar 统计 ### Doris BE Metrics -Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监(Metrics)中的一些元数据指标。其中 Metadata Cache 相关指标参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md)。 +Web 页面 `http://http://{be_host}:{be_web_server_port}/metrics` 可以看到 BE 进程内存监(Metrics)中的一些元数据指标。其中 Metadata Cache 相关指标参考 [Cache 内存分析](./doris-cache-memory-analysis.md)。 ``` - `doris_be_all_rowsets_num`:所有 Rowset 的数量。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/oom-crash-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/oom-crash-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md similarity index 99% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md index 5b34e25f105..2c64e1ffc27 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "查询或导入报错进程可用内存不足", + "title": "查询报错 Process Memory Not Enough", "language": "zh-CN" } --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md similarity index 98% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md index 1ff9c134195..84d6c138b88 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "查询或导入报错超过单次执行内存限制", + "title": "查询报错 Memory Tracker Limit Exceeded", "language": "zh-CN" } --- diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/query-memory-analysis.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/query-memory-analysis.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/query-memory-analysis.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-analysis/query-memory-analysis.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-control-strategy.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-feature/memory-control-strategy.md similarity index 100% rename from i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-control-strategy.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-feature/memory-control-strategy.md diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-tracker.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-feature/memory-tracker.md similarity index 90% rename from i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-tracker.md rename to i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-feature/memory-tracker.md index 227764b213f..cf74f43d9c7 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/memory-management/memory-tracker.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-feature/memory-tracker.md @@ -70,7 +70,7 @@ Doris 2.1 之前和之后的版本中 Memory Tracker 统计缺失的现象不同 否则可以先参考 [Metadata 内存分析](./metadata-memory-analysis.md) 分析 Doris BE 的元数据内存。 -> 在 Doris 2.1.5 之前的版本中 Segment Cache Memory Tacker 不准确,通常发现 Memory Tracker 统计缺失或 BE 进程内存不下降时,可以优先参考 [Doris Cache 内存分析](./doris-cache-memory-analysis.md) 分析 SegmentCache 内存使用,尝试关闭 Segment Cache 后继续测试。这是因为包括 Primary Key Index 在内的一些 Index 内存统计的是不准确的,导致 Segment Cache 内存没有得到有效限制,经常占用过大的内存,尤其是在成百上千列的大宽表上,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 如果你发现 Doris BE Metrics 中 `doris_be_cache_usage{name="SegmentCache"}` 不大,但 Doris BE Bvar 中 `doris_column_reader_num` 很大,则需要怀疑 Segment Cache 的内存 [...] +> 在 Doris 2.1.5 之前的版本中 Segment Cache Memory Tacker 不准确,通常发现 Memory Tracker 统计缺失或 BE 进程内存不下降时,可以优先参考 [Cache 内存分析](./doris-cache-memory-analysis.md) 分析 SegmentCache 内存使用,尝试关闭 Segment Cache 后继续测试。这是因为包括 Primary Key Index 在内的一些 Index 内存统计的是不准确的,导致 Segment Cache 内存没有得到有效限制,经常占用过大的内存,尤其是在成百上千列的大宽表上,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 如果你发现 Doris BE Metrics 中 `doris_be_cache_usage{name="SegmentCache"}` 不大,但 Doris BE Bvar 中 `doris_column_reader_num` 很大,则需要怀疑 Segment Cache 的内存占用,如果你 [...] ### Memory Tracker 统计缺失原因 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-issue-faq.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-issue-faq.md index 9d1705f50a3..0d794ae25c5 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-issue-faq.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/memory-issue-faq.md @@ -82,7 +82,7 @@ Doris 目前仍存在 Doris BE 进程虚拟内存过大的问题,通常是因 - 如果 `tablet_meta_schema_columns_count` 过大,是 `doris_total_tablet_schema_num` 的成百上千倍,说明集群中存在几百上千列的大宽表,此时相同数量的 Tablet 会占用更多的内存。 -### 7 Query 没有复杂算子只是简单的 Scan 数据,却要使用很大的内存 +## 7 Query 没有复杂算子只是简单的 Scan 数据,却要使用很大的内存 可能是读取 Segment 时打开的 Column Reader、Index Read 占用的内存,参考 [Metadata 内存分析](./metadata-memory-analysis.md) 查看 Doris BE Bvar 中的 `doris_total_segment_num`、`doris_column_reader_num`、`doris_ordinal_index_memory_bytes`、`doris_zone_map_memory_bytes`、`doris_short_key_index_memory_bytes`的变化,这个现象同样常见于读取大宽表,当打开几十万个 Column Reader 时,内存可能会占用几十GB。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/overview.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/overview.md index ffa044ea470..fc2c324ec74 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/overview.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/memory-management/overview.md @@ -34,6 +34,7 @@ Apache Doris 作为基于 MPP 架构的 OLAP 数据库,数据从磁盘加载  +``` Server physical memory: 供服务器上所有进程使用的的物理内存,`cat /proc/meminfo` 或 `free -h` 看到的 MemTotal。 | |---> Linux Kernel Memory And Other Process Memory: Linux 内核和其他进程使用的内存。 @@ -65,6 +66,7 @@ Server physical memory: 供服务器上所有进程使用的的物理内存,`c | | |---> fragment: 和查询的 fragment 执行相同,stream load 通常只有 scan operator。 | | | | | |---> channel: tablet channel 将数据写入临时的数据结构 memtable,然后 delta writer 将数据压缩后写入文件。 +``` --- @@ -83,15 +85,10 @@ Memory Tracker 分为不同的类型,其中 `type=overview` 的 Memory Tracker Memory Tracker 拥有如下的属性: 1. Label: Memory Tracker 的名称 - 2. Current Consumption(Bytes): 当前内存值,单位 B。 - 3. Current Consumption(Normalize): 当前内存值的 .G.M.K 格式化输出。 - 4. Peak Consumption(Bytes): BE 进程启动后的内存峰值,单位 B,BE 重启后重置。 - 5. Peak Consumption(Normalize): BE 进程启动后内存峰值的 .G.M.K 格式化输出,BE 重启后重置。 - 6. Parent Label: 用于表明两个 Memory Tracker 的父子关系,Child Tracker 记录的内存是 Parent Tracker 的子集,Parent 相同的不同 Tracker 记录的内存可能存在交集。 有关 Memory Tracker 的更多介绍参考 [内存跟踪器](./memory-tracker.md)。 @@ -104,10 +101,13 @@ Memory Tracker 拥有如下的属性: 当报错进程内存超限或可用内存不足时,在 `be/log/be.INFO` 日志中可以找到 `Memory Tracker Summary`,包含所有 `Type=overview` 和 `Type=global` 的 Memory Tracker,帮助使用者分析当时的内存状态,具体参考 [内存日志分析](./memory-log-analysis.md) +--- + ## 内存分析 将 `type=overview` 的 Memory Tracker 对应到上述内存结构中 `tracked` 下的每一部分内存: +``` Doris BE Process Memory | |---> tracked: 对应 `MemTrackerLimiter Label=sum of all trackers, Type=overview`,是 Memory Tracker 统计到的所有内存,即除 `Label=process resident memory` 和 `Label=process virtual memory` 外,其他 `type=overview` 的 Memory Tracker 的 Current Consumption 总和。 @@ -138,21 +138,26 @@ Doris BE Process Memory |---> Doris BE 进程物理内存,对应 `MemTrackerLimiter Label=process resident memory, Type=overview`,Current Consumption 取自 VmRSS in `/proc/self/status`,Peak Consumption 取自 VmHWM in `/proc/self/status`。 | |---> Doris BE 进程虚拟内存,对应 `MemTrackerLimiter Label=process virtual memory, Type=overview`,Current Consumption 取自 VmSize in `/proc/self/status`,Peak Consumption 取自 VmPeak in `/proc/self/status`。 +``` 上述内存结构中每一部分内存的分析方法: 1. [Jemalloc 内存分析](./jemalloc-memory-analysis.md) -2. [Global 内存分析](./global-memory-analysis.md) +2. [全局内存分析](./global-memory-analysis.md) 3. [Query 内存分析](./query-memory-analysis.md) 4. [Load 内存分析](./load-memory-analysis.md) +--- + ## 内存问题 FAQ 参考 [内存问题 FAQ](./memory-issue-faq.md) 分析常见的内存问题。 +--- + ## 内存控制策略 -参考 [内存控制策略](./memory-control-strategy.md) 中对内存分配、监控、回收的介绍,确保 Doris BE 进程内存的高效可控。 +参考 [内存控制策略](./memory-control-strategy.md) 中对内存分配、监控、回收的介绍,它们保证了 Doris BE 进程内存的高效可控。 diff --git a/sidebars.json b/sidebars.json index da3c4e0dce1..4cfd2600242 100644 --- a/sidebars.json +++ b/sidebars.json @@ -426,21 +426,33 @@ "type": "category", "label": "Managing Memory", "items": [ - "admin-manual/memory-management/doris-cache-memory-analysis", - "admin-manual/memory-management/global-memory-analysis", - "admin-manual/memory-management/heap-profile-memory-analysis", - "admin-manual/memory-management/jemalloc-memory-analysis", - "admin-manual/memory-management/load-memory-analysis", - "admin-manual/memory-management/memory-control-strategy", - "admin-manual/memory-management/memory-issue-faq", - "admin-manual/memory-management/memory-log-analysis", - "admin-manual/memory-management/memory-tracker", - "admin-manual/memory-management/metadata-memory-analysis", - "admin-manual/memory-management/oom-crash-analysis", "admin-manual/memory-management/overview", - "admin-manual/memory-management/query-cancelled-after-process-memory-exceeded", - "admin-manual/memory-management/query-cancelled-after-query-memory-exceeded", - "admin-manual/memory-management/query-memory-analysis" + "admin-manual/memory-management/memory-issue-faq", + { + "type": "category", + "label": "Managing Memory Analysis", + "items": [ + "admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis", + "admin-manual/memory-management/memory-analysis/global-memory-analysis", + "admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis", + "admin-manual/memory-management/memory-analysis/metadata-memory-analysis", + "admin-manual/memory-management/memory-analysis/query-memory-analysis", + "admin-manual/memory-management/memory-analysis/load-memory-analysis", + "admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded", + "admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded", + "admin-manual/memory-management/memory-analysis/oom-crash-analysis", + "admin-manual/memory-management/memory-analysis/memory-log-analysis", + "admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis" + ] + }, + { + "type": "category", + "label": "Managing Memory Feature", + "items": [ + "admin-manual/memory-management/memory-feature/memory-tracker", + "admin-manual/memory-management/memory-feature/memory-control-strategy" + ] + } ] }, { diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/doris-cache-memory-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md similarity index 92% rename from versioned_docs/version-2.1/admin-manual/memory-management/doris-cache-memory-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md index 38cb7fb9803..90141a1efe9 100644 --- a/versioned_docs/version-2.1/admin-manual/memory-management/doris-cache-memory-analysis.md +++ b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Doris Cache Memory Analysis", + "title": "Cache Memory Analysis", "language": "zh-CN" } --- @@ -32,59 +32,60 @@ The caches managed by Doris are currently all LRU elimination strategies, and al Used to speed up data scanning. +``` - DataPageCache: Cache data Page. - -- IndexPageCache: Cache the index of data Page. - -- PKIndexPageCache: Cache the primary key index of Page. +- IndexPageCache: Cache data Page index. +- PKIndexPageCache: Cache Page primary key index. +``` 2. Metadata Cache Used to speed up metadata reading. -- SegmentCache: Cache the opened Segment, such as index information. - +``` +- SegmentCache: Cache open Segments, such as index information. - SchemaCache: Cache Rowset Schema. - - TabletSchemaCache: Cache Tablet Schema. - -- CreateTabletRRIdxCache: Cache Create Tabelt Index. - +- CreateTabletRRIdxCache: Cache Create Tabelt index. - MowTabletVersionCache: Cache Mow Tablet Version. - - MowDeleteBitmapAggCache: Cache Mow DeleteBitmap. +``` 3. Cloud Cache A dedicated cache on the cloud. -- CloudTabletCache: Cache Tablet on Cloud. - +``` +- CloudTabletCache: Cache Tablet on the Cloud. - CloudTxnDeleteBitmapCache: Cache DeleteBitmap on Cloud. +``` 4. Inverted Index Cache Speed up inverted index. +``` - InvertedIndexSearcherCache - - InvertedIndexQueryCache +``` 5. Point Query Cache Speed up point query execution, mainly used for log analysis. +``` - PointQueryRowCache - - PointQueryLookupConnectionCache +``` 6. Other Cache -- FileCache: File cache used by external table query and Cloud. +``` +- FileCache: File cache used by external table queries and Cloud. - CommonObjLRUCache - - LastSuccessChannelCache +``` ## Doris Cache View Method @@ -94,19 +95,15 @@ There are three ways to view Doris Cache related indicators. Web page `http://http://{be_host}:{be_web_server_port}/metrics` can see BE process memory monitoring (Metrics), including each cache capacity, usage, number of elements, search and hit times and other indicators. +``` - `doris_be_cache_capacity{name="TabletSchemaCache"} 102400`: Cache capacity, two limiting methods: memory size or number of elements. - -- `doris_be_cache_usage{name="TabletSchemaCache"} 40838`: Cache usage, memory size or number of elements, corresponding to the cache capacity limit. - +- `doris_be_cache_usage{name="TabletSchemaCache"} 40838`: Cache usage, memory size or number of elements, corresponding to the limit of cache capacity. - `doris_be_cache_usage_ratio{name="TabletSchemaCache"} 0.398809`: Cache usage, equal to `(cache_usage / cache_capacity)`. - - `doris_be_cache_element_count{name="TabletSchemaCache"} 1628`: Number of cache elements, equal to Cache Usage when the cache capacity limits the number of elements. - - `doris_be_cache_lookup_count{name="TabletSchemaCache"} 63393`: Number of cache lookups. - -- `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`: Number of cache hits when looking up. - +- `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`: Number of hits when looking up the cache. - `doris_be_cache_hit_ratio{name="TabletSchemaCache"} 0.974319`: Hit ratio, equal to `(hit_count / lookup_count)` +``` 2. Doris BE Bvar diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/global-memory-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/global-memory-analysis.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/global-memory-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/global-memory-analysis.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/heap-profile-memory-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/heap-profile-memory-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/jemalloc-memory-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/jemalloc-memory-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/load-memory-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/load-memory-analysis.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/load-memory-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/load-memory-analysis.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/memory-log-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/memory-log-analysis.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/memory-log-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/memory-log-analysis.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/metadata-memory-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/metadata-memory-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/oom-crash-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/oom-crash-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md diff --git a/docs/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md similarity index 99% rename from docs/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md index 4016abce903..546e921a3a6 100644 --- a/docs/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md +++ b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "Query Cancelled After Process Memory Exceeded", + "title": "Query error Process Memory Not Enough", "language": "zh-CN" } --- diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md similarity index 99% rename from versioned_docs/version-3.0/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md index d0860572cfa..28ba92e1e81 100644 --- a/versioned_docs/version-3.0/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md +++ b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "Query Cancelled After Query Memory Exceeded", + "title": "Query error Memory Tracker Limit Exceeded", "language": "zh-CN" } --- diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/query-memory-analysis.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/query-memory-analysis.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/query-memory-analysis.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-analysis/query-memory-analysis.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/memory-control-strategy.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-feature/memory-control-strategy.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/memory-control-strategy.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-feature/memory-control-strategy.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/memory-tracker.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-feature/memory-tracker.md similarity index 100% rename from versioned_docs/version-2.1/admin-manual/memory-management/memory-tracker.md rename to versioned_docs/version-2.1/admin-manual/memory-management/memory-feature/memory-tracker.md diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/memory-issue-faq.md b/versioned_docs/version-2.1/admin-manual/memory-management/memory-issue-faq.md index 61ea431e84f..f790fc78ff0 100644 --- a/versioned_docs/version-2.1/admin-manual/memory-management/memory-issue-faq.md +++ b/versioned_docs/version-2.1/admin-manual/memory-management/memory-issue-faq.md @@ -82,7 +82,7 @@ This is usually because the metadata memory loaded when the BE process starts is - If `tablet_meta_schema_columns_count` is too large, hundreds or thousands of times larger than `doris_total_tablet_schema_num`, it means that there are large wide tables with hundreds or thousands of columns in the cluster. At this time, the same number of tablets will occupy more memory. -### 7 Query does not have complex operators but simply scans data, but it uses a lot of memory +## 7 Query does not have complex operators but simply scans data, but it uses a lot of memory It may be the memory occupied by the Column Reader and Index Read opened when reading the Segment. Refer to [Metadata Memory Analysis](./metadata-memory-analysis.md) to view the changes of `doris_total_segment_num`, `doris_column_reader_num`, `doris_ordinal_index_memory_bytes`, `doris_zone_map_memory_bytes`, and `doris_short_key_index_memory_bytes` in Doris BE Bvar. This phenomenon is also common when reading large wide tables. When hundreds of thousands of Column Readers are opened, the [...] diff --git a/versioned_docs/version-2.1/admin-manual/memory-management/overview.md b/versioned_docs/version-2.1/admin-manual/memory-management/overview.md index e812d6ab66a..a97c51f3b62 100644 --- a/versioned_docs/version-2.1/admin-manual/memory-management/overview.md +++ b/versioned_docs/version-2.1/admin-manual/memory-management/overview.md @@ -34,6 +34,7 @@ When facing complex calculations and large-scale operations with huge memory res  +``` Server physical memory: The physical memory used by all processes on the server, MemTotal seen by `cat /proc/meminfo` or `free -h`. | |---> Linux Kernel Memory And Other Process Memory: Memory used by the Linux kernel and other processes. @@ -65,6 +66,7 @@ Server physical memory: The physical memory used by all processes on the server, | | |---> fragment: Same as query fragment execution, stream load usually only has scan operator. | | | | | |---> channel: The tablet channel writes data to a temporary data structure called memtable, and then the delta writer compresses the data and writes it to the file. +``` --- @@ -83,15 +85,10 @@ Memory Tracker is divided into different types. Among the Memory Tracker of type Memory Tracker has the following properties: 1. Label: the name of the Memory Tracker - 2. Current Consumption(Bytes): the current memory value, in B. - 3. Current Consumption(Normalize): the .G.M.K formatted output of the current memory value. - 4. Peak Consumption (Bytes): The peak memory value after the BE process is started, in units of B, and reset after the BE is restarted. - 5. Peak Consumption (Normalize): The .G.M.K formatted output of the peak memory value after the BE process is started, and reset after the BE is restarted. - 6. Parent Label: Used to indicate the parent-child relationship between two memory trackers. The memory recorded by the Child Tracker is a subset of the Parent Tracker. The memory recorded by different trackers with the same Parent may have an intersection. For more information about Memory Tracker, refer to [Memory Tracker](./memory-tracker.md). @@ -104,10 +101,13 @@ Historical memory statistics can be viewed through Doris BE's Bvar page `http:// When the error process memory exceeds the limit or the available memory is insufficient, you can find the `Memory Tracker Summary` in the `be/log/be.INFO` log, which contains all the Memory Trackers of `Type=overview` and `Type=global`, to help users analyze the memory status at that time. For details, please refer to [Memory Log Analysis](./memory-log-analysis.md) +--- + ## Memory Analysis Correspond the Memory Tracker of `type=overview` to each part of the memory under `tracked` in the above memory structure: +``` Doris BE Process Memory | |---> tracked: corresponds to `MemTrackerLimiter Label=sum of all trackers, Type=overview`, which is all the memory counted by the Memory Tracker, that is, the sum of the Current Consumption of other Memory Trackers with `type=overview` except `Label=process resident memory` and `Label=process virtual memory`. @@ -138,6 +138,7 @@ Doris BE Process Memory |---> Doris BE process physical memory, corresponding to `MemTrackerLimiter Label=process resident memory, Type=overview`, Current Consumption is taken from VmRSS in `/proc/self/status`, Peak Consumption is taken from VmHWM in `/proc/self/status`. | |---> Doris BE process virtual memory, corresponding to `MemTrackerLimiter Label=process virtual memory, Type=overview`, Current Consumption is taken from VmSize in `/proc/self/status`, and Peak Consumption is taken from VmPeak in `/proc/self/status`. +``` Analysis methods for each part of the memory in the above memory structure: @@ -149,10 +150,14 @@ Analysis methods for each part of the memory in the above memory structure: 4. [Load memory analysis](./load-memory-analysis.md) +--- + ## Memory problem FAQ Refer to [Memory problem FAQ](./memory-issue-faq.md) to analyze common memory problems. +--- + ## Memory control strategy -Refer to [Memory control strategy](./memory-control-strategy.md) for an introduction to memory allocation, monitoring, and recycling to ensure efficient and controllable memory of the Doris BE process. +Refer to [Memory Control Strategy](./memory-control-strategy.md) for an introduction to memory allocation, monitoring, and recycling, which ensure the efficient and controllable memory of the Doris BE process. diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/doris-cache-memory-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md similarity index 92% rename from versioned_docs/version-3.0/admin-manual/memory-management/doris-cache-memory-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md index 38cb7fb9803..90141a1efe9 100644 --- a/versioned_docs/version-3.0/admin-manual/memory-management/doris-cache-memory-analysis.md +++ b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis.md @@ -1,6 +1,6 @@ --- { - "title": "Doris Cache Memory Analysis", + "title": "Cache Memory Analysis", "language": "zh-CN" } --- @@ -32,59 +32,60 @@ The caches managed by Doris are currently all LRU elimination strategies, and al Used to speed up data scanning. +``` - DataPageCache: Cache data Page. - -- IndexPageCache: Cache the index of data Page. - -- PKIndexPageCache: Cache the primary key index of Page. +- IndexPageCache: Cache data Page index. +- PKIndexPageCache: Cache Page primary key index. +``` 2. Metadata Cache Used to speed up metadata reading. -- SegmentCache: Cache the opened Segment, such as index information. - +``` +- SegmentCache: Cache open Segments, such as index information. - SchemaCache: Cache Rowset Schema. - - TabletSchemaCache: Cache Tablet Schema. - -- CreateTabletRRIdxCache: Cache Create Tabelt Index. - +- CreateTabletRRIdxCache: Cache Create Tabelt index. - MowTabletVersionCache: Cache Mow Tablet Version. - - MowDeleteBitmapAggCache: Cache Mow DeleteBitmap. +``` 3. Cloud Cache A dedicated cache on the cloud. -- CloudTabletCache: Cache Tablet on Cloud. - +``` +- CloudTabletCache: Cache Tablet on the Cloud. - CloudTxnDeleteBitmapCache: Cache DeleteBitmap on Cloud. +``` 4. Inverted Index Cache Speed up inverted index. +``` - InvertedIndexSearcherCache - - InvertedIndexQueryCache +``` 5. Point Query Cache Speed up point query execution, mainly used for log analysis. +``` - PointQueryRowCache - - PointQueryLookupConnectionCache +``` 6. Other Cache -- FileCache: File cache used by external table query and Cloud. +``` +- FileCache: File cache used by external table queries and Cloud. - CommonObjLRUCache - - LastSuccessChannelCache +``` ## Doris Cache View Method @@ -94,19 +95,15 @@ There are three ways to view Doris Cache related indicators. Web page `http://http://{be_host}:{be_web_server_port}/metrics` can see BE process memory monitoring (Metrics), including each cache capacity, usage, number of elements, search and hit times and other indicators. +``` - `doris_be_cache_capacity{name="TabletSchemaCache"} 102400`: Cache capacity, two limiting methods: memory size or number of elements. - -- `doris_be_cache_usage{name="TabletSchemaCache"} 40838`: Cache usage, memory size or number of elements, corresponding to the cache capacity limit. - +- `doris_be_cache_usage{name="TabletSchemaCache"} 40838`: Cache usage, memory size or number of elements, corresponding to the limit of cache capacity. - `doris_be_cache_usage_ratio{name="TabletSchemaCache"} 0.398809`: Cache usage, equal to `(cache_usage / cache_capacity)`. - - `doris_be_cache_element_count{name="TabletSchemaCache"} 1628`: Number of cache elements, equal to Cache Usage when the cache capacity limits the number of elements. - - `doris_be_cache_lookup_count{name="TabletSchemaCache"} 63393`: Number of cache lookups. - -- `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`: Number of cache hits when looking up. - +- `doris_be_cache_hit_count{name="TabletSchemaCache"} 61765`: Number of hits when looking up the cache. - `doris_be_cache_hit_ratio{name="TabletSchemaCache"} 0.974319`: Hit ratio, equal to `(hit_count / lookup_count)` +``` 2. Doris BE Bvar diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/global-memory-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/global-memory-analysis.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/global-memory-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/global-memory-analysis.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/heap-profile-memory-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/heap-profile-memory-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/jemalloc-memory-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/jemalloc-memory-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/load-memory-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/load-memory-analysis.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/load-memory-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/load-memory-analysis.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/memory-log-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/memory-log-analysis.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/memory-log-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/memory-log-analysis.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/metadata-memory-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/metadata-memory-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/metadata-memory-analysis.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/oom-crash-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/oom-crash-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/oom-crash-analysis.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md similarity index 99% rename from versioned_docs/version-3.0/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md index 4016abce903..546e921a3a6 100644 --- a/versioned_docs/version-3.0/admin-manual/memory-management/query-cancelled-after-process-memory-exceeded.md +++ b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "Query Cancelled After Process Memory Exceeded", + "title": "Query error Process Memory Not Enough", "language": "zh-CN" } --- diff --git a/docs/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md similarity index 99% rename from docs/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md index d0860572cfa..28ba92e1e81 100644 --- a/docs/admin-manual/memory-management/query-cancelled-after-query-memory-exceeded.md +++ b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded.md @@ -1,6 +1,6 @@ --- { - "title": "Query Cancelled After Query Memory Exceeded", + "title": "Query error Memory Tracker Limit Exceeded", "language": "zh-CN" } --- diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/query-memory-analysis.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/query-memory-analysis.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/query-memory-analysis.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-analysis/query-memory-analysis.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/memory-control-strategy.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-feature/memory-control-strategy.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/memory-control-strategy.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-feature/memory-control-strategy.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/memory-tracker.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-feature/memory-tracker.md similarity index 100% rename from versioned_docs/version-3.0/admin-manual/memory-management/memory-tracker.md rename to versioned_docs/version-3.0/admin-manual/memory-management/memory-feature/memory-tracker.md diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/memory-issue-faq.md b/versioned_docs/version-3.0/admin-manual/memory-management/memory-issue-faq.md index 61ea431e84f..f790fc78ff0 100644 --- a/versioned_docs/version-3.0/admin-manual/memory-management/memory-issue-faq.md +++ b/versioned_docs/version-3.0/admin-manual/memory-management/memory-issue-faq.md @@ -82,7 +82,7 @@ This is usually because the metadata memory loaded when the BE process starts is - If `tablet_meta_schema_columns_count` is too large, hundreds or thousands of times larger than `doris_total_tablet_schema_num`, it means that there are large wide tables with hundreds or thousands of columns in the cluster. At this time, the same number of tablets will occupy more memory. -### 7 Query does not have complex operators but simply scans data, but it uses a lot of memory +## 7 Query does not have complex operators but simply scans data, but it uses a lot of memory It may be the memory occupied by the Column Reader and Index Read opened when reading the Segment. Refer to [Metadata Memory Analysis](./metadata-memory-analysis.md) to view the changes of `doris_total_segment_num`, `doris_column_reader_num`, `doris_ordinal_index_memory_bytes`, `doris_zone_map_memory_bytes`, and `doris_short_key_index_memory_bytes` in Doris BE Bvar. This phenomenon is also common when reading large wide tables. When hundreds of thousands of Column Readers are opened, the [...] diff --git a/versioned_docs/version-3.0/admin-manual/memory-management/overview.md b/versioned_docs/version-3.0/admin-manual/memory-management/overview.md index e812d6ab66a..a97c51f3b62 100644 --- a/versioned_docs/version-3.0/admin-manual/memory-management/overview.md +++ b/versioned_docs/version-3.0/admin-manual/memory-management/overview.md @@ -34,6 +34,7 @@ When facing complex calculations and large-scale operations with huge memory res  +``` Server physical memory: The physical memory used by all processes on the server, MemTotal seen by `cat /proc/meminfo` or `free -h`. | |---> Linux Kernel Memory And Other Process Memory: Memory used by the Linux kernel and other processes. @@ -65,6 +66,7 @@ Server physical memory: The physical memory used by all processes on the server, | | |---> fragment: Same as query fragment execution, stream load usually only has scan operator. | | | | | |---> channel: The tablet channel writes data to a temporary data structure called memtable, and then the delta writer compresses the data and writes it to the file. +``` --- @@ -83,15 +85,10 @@ Memory Tracker is divided into different types. Among the Memory Tracker of type Memory Tracker has the following properties: 1. Label: the name of the Memory Tracker - 2. Current Consumption(Bytes): the current memory value, in B. - 3. Current Consumption(Normalize): the .G.M.K formatted output of the current memory value. - 4. Peak Consumption (Bytes): The peak memory value after the BE process is started, in units of B, and reset after the BE is restarted. - 5. Peak Consumption (Normalize): The .G.M.K formatted output of the peak memory value after the BE process is started, and reset after the BE is restarted. - 6. Parent Label: Used to indicate the parent-child relationship between two memory trackers. The memory recorded by the Child Tracker is a subset of the Parent Tracker. The memory recorded by different trackers with the same Parent may have an intersection. For more information about Memory Tracker, refer to [Memory Tracker](./memory-tracker.md). @@ -104,10 +101,13 @@ Historical memory statistics can be viewed through Doris BE's Bvar page `http:// When the error process memory exceeds the limit or the available memory is insufficient, you can find the `Memory Tracker Summary` in the `be/log/be.INFO` log, which contains all the Memory Trackers of `Type=overview` and `Type=global`, to help users analyze the memory status at that time. For details, please refer to [Memory Log Analysis](./memory-log-analysis.md) +--- + ## Memory Analysis Correspond the Memory Tracker of `type=overview` to each part of the memory under `tracked` in the above memory structure: +``` Doris BE Process Memory | |---> tracked: corresponds to `MemTrackerLimiter Label=sum of all trackers, Type=overview`, which is all the memory counted by the Memory Tracker, that is, the sum of the Current Consumption of other Memory Trackers with `type=overview` except `Label=process resident memory` and `Label=process virtual memory`. @@ -138,6 +138,7 @@ Doris BE Process Memory |---> Doris BE process physical memory, corresponding to `MemTrackerLimiter Label=process resident memory, Type=overview`, Current Consumption is taken from VmRSS in `/proc/self/status`, Peak Consumption is taken from VmHWM in `/proc/self/status`. | |---> Doris BE process virtual memory, corresponding to `MemTrackerLimiter Label=process virtual memory, Type=overview`, Current Consumption is taken from VmSize in `/proc/self/status`, and Peak Consumption is taken from VmPeak in `/proc/self/status`. +``` Analysis methods for each part of the memory in the above memory structure: @@ -149,10 +150,14 @@ Analysis methods for each part of the memory in the above memory structure: 4. [Load memory analysis](./load-memory-analysis.md) +--- + ## Memory problem FAQ Refer to [Memory problem FAQ](./memory-issue-faq.md) to analyze common memory problems. +--- + ## Memory control strategy -Refer to [Memory control strategy](./memory-control-strategy.md) for an introduction to memory allocation, monitoring, and recycling to ensure efficient and controllable memory of the Doris BE process. +Refer to [Memory Control Strategy](./memory-control-strategy.md) for an introduction to memory allocation, monitoring, and recycling, which ensure the efficient and controllable memory of the Doris BE process. diff --git a/versioned_sidebars/version-2.1-sidebars.json b/versioned_sidebars/version-2.1-sidebars.json index 16ffadf05e1..1f6b002f5b1 100644 --- a/versioned_sidebars/version-2.1-sidebars.json +++ b/versioned_sidebars/version-2.1-sidebars.json @@ -358,21 +358,33 @@ "type": "category", "label": "Managing Memory", "items": [ - "admin-manual/memory-management/doris-cache-memory-analysis", - "admin-manual/memory-management/global-memory-analysis", - "admin-manual/memory-management/heap-profile-memory-analysis", - "admin-manual/memory-management/jemalloc-memory-analysis", - "admin-manual/memory-management/load-memory-analysis", - "admin-manual/memory-management/memory-control-strategy", - "admin-manual/memory-management/memory-issue-faq", - "admin-manual/memory-management/memory-log-analysis", - "admin-manual/memory-management/memory-tracker", - "admin-manual/memory-management/metadata-memory-analysis", - "admin-manual/memory-management/oom-crash-analysis", "admin-manual/memory-management/overview", - "admin-manual/memory-management/query-cancelled-after-process-memory-exceeded", - "admin-manual/memory-management/query-cancelled-after-query-memory-exceeded", - "admin-manual/memory-management/query-memory-analysis" + "admin-manual/memory-management/memory-issue-faq", + { + "type": "category", + "label": "Managing Memory Analysis", + "items": [ + "admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis", + "admin-manual/memory-management/memory-analysis/global-memory-analysis", + "admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis", + "admin-manual/memory-management/memory-analysis/metadata-memory-analysis", + "admin-manual/memory-management/memory-analysis/query-memory-analysis", + "admin-manual/memory-management/memory-analysis/load-memory-analysis", + "admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded", + "admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded", + "admin-manual/memory-management/memory-analysis/oom-crash-analysis", + "admin-manual/memory-management/memory-analysis/memory-log-analysis", + "admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis" + ] + }, + { + "type": "category", + "label": "Managing Memory Feature", + "items": [ + "admin-manual/memory-management/memory-feature/memory-tracker", + "admin-manual/memory-management/memory-feature/memory-control-strategy" + ] + } ] }, { diff --git a/versioned_sidebars/version-3.0-sidebars.json b/versioned_sidebars/version-3.0-sidebars.json index 0d9e5eb0be1..c789c1fc573 100644 --- a/versioned_sidebars/version-3.0-sidebars.json +++ b/versioned_sidebars/version-3.0-sidebars.json @@ -408,21 +408,33 @@ "type": "category", "label": "Managing Memory", "items": [ - "admin-manual/memory-management/doris-cache-memory-analysis", - "admin-manual/memory-management/global-memory-analysis", - "admin-manual/memory-management/heap-profile-memory-analysis", - "admin-manual/memory-management/jemalloc-memory-analysis", - "admin-manual/memory-management/load-memory-analysis", - "admin-manual/memory-management/memory-control-strategy", - "admin-manual/memory-management/memory-issue-faq", - "admin-manual/memory-management/memory-log-analysis", - "admin-manual/memory-management/memory-tracker", - "admin-manual/memory-management/metadata-memory-analysis", - "admin-manual/memory-management/oom-crash-analysis", "admin-manual/memory-management/overview", - "admin-manual/memory-management/query-cancelled-after-process-memory-exceeded", - "admin-manual/memory-management/query-cancelled-after-query-memory-exceeded", - "admin-manual/memory-management/query-memory-analysis" + "admin-manual/memory-management/memory-issue-faq", + { + "type": "category", + "label": "Managing Memory Analysis", + "items": [ + "admin-manual/memory-management/memory-analysis/jemalloc-memory-analysis", + "admin-manual/memory-management/memory-analysis/global-memory-analysis", + "admin-manual/memory-management/memory-analysis/doris-cache-memory-analysis", + "admin-manual/memory-management/memory-analysis/metadata-memory-analysis", + "admin-manual/memory-management/memory-analysis/query-memory-analysis", + "admin-manual/memory-management/memory-analysis/load-memory-analysis", + "admin-manual/memory-management/memory-analysis/query-cancelled-after-process-memory-exceeded", + "admin-manual/memory-management/memory-analysis/query-cancelled-after-query-memory-exceeded", + "admin-manual/memory-management/memory-analysis/oom-crash-analysis", + "admin-manual/memory-management/memory-analysis/memory-log-analysis", + "admin-manual/memory-management/memory-analysis/heap-profile-memory-analysis" + ] + }, + { + "type": "category", + "label": "Managing Memory Feature", + "items": [ + "admin-manual/memory-management/memory-feature/memory-tracker", + "admin-manual/memory-management/memory-feature/memory-control-strategy" + ] + } ] }, { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org