From 4f3b7cc6ea8ff4bf7e97bc433551121decfdc6be Mon Sep 17 00:00:00 2001
From: "abby.huang" <78209557+abby-cyber@users.noreply.github.com>
Date: Fri, 21 Jul 2023 16:22:33 +0800
Subject: [PATCH] =?UTF-8?q?add-`GraphMemoryExceeded-(-2600=EF=BC=89`faq-an?=
=?UTF-8?q?d-move-port-guide-to-appendix=20(#2186)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs-2.0/20.appendix/0.FAQ.md | 45 +++++--------------
docs-2.0/20.appendix/port-guide.md | 34 ++++++++++++++
.../1.configurations/4.storage-config.md | 12 ++---
mkdocs.yml | 3 +-
4 files changed, 54 insertions(+), 40 deletions(-)
create mode 100644 docs-2.0/20.appendix/port-guide.md
diff --git a/docs-2.0/20.appendix/0.FAQ.md b/docs-2.0/20.appendix/0.FAQ.md
index fe5d9570bc8..e14cf12d15a 100644
--- a/docs-2.0/20.appendix/0.FAQ.md
+++ b/docs-2.0/20.appendix/0.FAQ.md
@@ -35,6 +35,16 @@ NebulaGraph is still under development. Its behavior changes from time to time.
## About execution errors
+### "How to resolve the error `-1005:GraphMemoryExceeded: (-2600)`?"
+
+This error is issued by the Memory Tracker when it observes that memory usage has exceeded a set threshold. This mechanism can help avoid service processes from being terminated by the system's OOM (Out of Memory) killer. Steps to resolve:
+
+1. Check memory usage: First, you need to check the memory usage during the execution of the command. If the memory usage is indeed high, then this error might be expected.
+
+2. Check the configuration of the Memory Tracker: If the memory usage is not high, check the relevant configurations of the Memory Tracker. These include `memory_tracker_untracked_reserved_memory_mb` (untracked reserved memory in MB), `memory_tracker_limit_ratio` (memory limit ratio), and `memory_purge_enabled` (whether memory purge is enabled). For the configuration of the Memory Tracker, see [memory tracker configuration](../5.configurations-and-logs/1.configurations/4.storage-config.md#memory_tracker_configurations).
+
+3. Optimize configurations: Adjust these configurations according to the actual situation. For example, if the available memory limit is too low, you can increase the value of `memory_tracker_limit_ratio`.
+
### "How to resolve the error `SemanticError: Missing yield clause.`?"
Starting with NebulaGraph 3.0.0, the statements `LOOKUP`, `GO`, and `FETCH` must output results with the `YIELD` clause. For more information, see [YIELD](../3.ngql-guide/8.clauses-and-options/yield.md).
@@ -555,40 +565,7 @@ If you have not modified the predefined ports in the [Configurations](../5.confi
If you have customized the configuration files and changed the predefined ports, find the port numbers in your configuration files and open them on the firewalls.
-For those eco-tools, see the corresponding document.
-
-The following are the default ports used by NebulaGraph core and peripheral tools.
-
-| No. | Product / Service | Type | Default | Description |
-| :--- | :--------------------- | :--- | :---------------------------- | :----------------------------------------------------------- |
-| 1 | NebulaGraph | TCP | 9669 | Graph service RPC daemon listening port (commonly used for client connections to the Graph service). |
-| 2 | NebulaGraph | TCP | 19669 | Graph service HTTP port. |
-| 3 | NebulaGraph | TCP | 19670 | Graph service HTTP/2 port. (Deprecated after version 3.x) |
-| 4 | NebulaGraph | TCP | 9559 | Meta service RPC daemon listening port. (Commonly used by Graph and Storage services for querying and updating metadata in the graph database). |
-| 5 | NebulaGraph | TCP | 9560 | Raft communication port between Meta services. |
-| 6 | NebulaGraph | TCP | 19559 | Meta service HTTP port. |
-| 7 | NebulaGraph | TCP | 19560 | Meta service HTTP/2 port. (Deprecated after version 3.x) |
-| 8 | NebulaGraph | TCP | 9777 | Drainer service port in Storage services (exposed only in Enterprise Edition clusters). |
-| 9 | NebulaGraph | TCP | 9778 | Admin service port in Storage services. |
-| 10 | NebulaGraph | TCP | 9779 | Storage service RPC daemon listening port. (Commonly used by Graph services for data storage-related operations, such as reading, writing, or deleting data). |
-| 11 | NebulaGraph | TCP | 9780 | Raft communication port between Storage services. |
-| 12 | NebulaGraph | TCP | 19779 | Storage service HTTP port. |
-| 13 | NebulaGraph | TCP | 19780 | Storage service HTTP/2 port. (Deprecated after version 3.x) |
-| 14 | NebulaGraph | TCP | 8888 | Backup and restore Agent service port. The Agent is a daemon running on each machine in the cluster, responsible for starting and stopping NebulaGraph services and uploading and downloading backup files. |
-| 15 | NebulaGraph | TCP | 9789, 9790, and 9788 | Full-text index Raft Listener port, which reads data from Storage services and writes it to the Elasticsearch cluster.
Also the port for Storage Listener in inter-cluster data synchronization, used for synchronizing Storage data from the primary cluster. Ports 9790 and 9788 are generated by adding and subtracting one from port 9789. |
-| 16 | NebulaGraph | TCP | 9200 | NebulaGraph uses this port for HTTP communication with Elasticsearch to perform full-text search queries and manage full-text indexes. |
-| 17 | NebulaGraph | TCP | 9569, 9570, and 9568| Meta Listener port in inter-cluster data synchronization, used for synchronizing Meta data from the primary cluster. Ports 9570 and 9568 are generated by adding and subtracting one from port 9569. |
-| 18 | NebulaGraph | TCP | 9889, 9890, and 9888 |Drainer service port in inter-cluster data synchronization, used for synchronizing Storage and Meta data to the primary cluster. Ports 9890 and 9888 are generated by adding and subtracting one from port 9889. |
-| 19 | NebulaGraph Studio | TCP | 7001 | Studio web service port. |
-| 20 | NebulaGraph Dashboard | TCP | 8090 | Nebula HTTP Gateway dependency service port. Provides an HTTP interface for cluster services to interact with the NebulaGraph database using nGQL statements. |
-| 21 | NebulaGraph Dashboard | TCP | 9200 | Nebula Stats Exporter dependency service port. Collects cluster performance metrics, including service IP addresses, versions, and monitoring metrics (such as query count, query latency, heartbeat latency, etc.). |
-| 22 | NebulaGraph Dashboard | TCP | 9100 | Node Exporter dependency service port. Collects resource information for machines in the cluster, including CPU, memory, load, disk, and traffic. |
-| 23 | NebulaGraph Dashboard | TCP | 9091 | Prometheus service port. Time-series database for storing monitoring data. |
-| 24 | NebulaGraph Dashboard | TCP | 7003 | Dashboard Community Edition web service port. |
-| 25 | NebulaGraph Dashboard | TCP | 7005 | Dashboard Enterprise Edition web service port. |
-| 26 | NebulaGraph Dashboard | TCP | 9093 | Alertmanager service port. Receives alerts from Prometheus and sends alert notifications to Dashboard. |
-| 27 | NebulaGraph Explorer | TCP | 7002 | Explorer web service port. |
-
+For more port information, see [Port Guide for Company Products](port-guide.md).
### "How to test whether a port is open or closed?"
diff --git a/docs-2.0/20.appendix/port-guide.md b/docs-2.0/20.appendix/port-guide.md
new file mode 100644
index 00000000000..44385278385
--- /dev/null
+++ b/docs-2.0/20.appendix/port-guide.md
@@ -0,0 +1,34 @@
+# Port guide for company products
+
+The following are the default ports used by NebulaGraph core and peripheral tools.
+
+| No. | Product / Service | Type | Default | Description |
+| :--- | :--------------------- | :--- | :---------------------------- | :----------------------------------------------------------- |
+| 1 | NebulaGraph | TCP | 9669 | Graph service RPC daemon listening port (commonly used for client connections to the Graph service). |
+| 2 | NebulaGraph | TCP | 19669 | Graph service HTTP port. |
+| 3 | NebulaGraph | TCP | 19670 | Graph service HTTP/2 port. (Deprecated after version 3.x) |
+| 4 | NebulaGraph | TCP | 9559 | Meta service RPC daemon listening port. (Commonly used by Graph and Storage services for querying and updating metadata in the graph database). |
+| 5 | NebulaGraph | TCP | 9560 | Raft communication port between Meta services. |
+| 6 | NebulaGraph | TCP | 19559 | Meta service HTTP port. |
+| 7 | NebulaGraph | TCP | 19560 | Meta service HTTP/2 port. (Deprecated after version 3.x) |
+| 8 | NebulaGraph | TCP | 9777 | Drainer service port in Storage services (exposed only in Enterprise Edition clusters). |
+| 9 | NebulaGraph | TCP | 9778 | Admin service port in Storage services. |
+| 10 | NebulaGraph | TCP | 9779 | Storage service RPC daemon listening port. (Commonly used by Graph services for data storage-related operations, such as reading, writing, or deleting data). |
+| 11 | NebulaGraph | TCP | 9780 | Raft communication port between Storage services. |
+| 12 | NebulaGraph | TCP | 19779 | Storage service HTTP port. |
+| 13 | NebulaGraph | TCP | 19780 | Storage service HTTP/2 port. (Deprecated after version 3.x) |
+| 14 | NebulaGraph | TCP | 8888 | Backup and restore Agent service port. The Agent is a daemon running on each machine in the cluster, responsible for starting and stopping NebulaGraph services and uploading and downloading backup files. |
+| 15 | NebulaGraph | TCP | 9789, 9790, and 9788 | Full-text index Raft Listener port, which reads data from Storage services and writes it to the Elasticsearch cluster.
Also the port for Storage Listener in inter-cluster data synchronization, used for synchronizing Storage data from the primary cluster. Ports 9790 and 9788 are generated by adding and subtracting one from port 9789. |
+| 16 | NebulaGraph | TCP | 9200 | NebulaGraph uses this port for HTTP communication with Elasticsearch to perform full-text search queries and manage full-text indexes. |
+| 17 | NebulaGraph | TCP | 9569, 9570, and 9568| Meta Listener port in inter-cluster data synchronization, used for synchronizing Meta data from the primary cluster. Ports 9570 and 9568 are generated by adding and subtracting one from port 9569. |
+| 18 | NebulaGraph | TCP | 9889, 9890, and 9888 |Drainer service port in inter-cluster data synchronization, used for synchronizing Storage and Meta data to the primary cluster. Ports 9890 and 9888 are generated by adding and subtracting one from port 9889. |
+| 19 | NebulaGraph Studio | TCP | 7001 | Studio web service port. |
+| 20 | NebulaGraph Dashboard | TCP | 8090 | Nebula HTTP Gateway dependency service port. Provides an HTTP interface for cluster services to interact with the NebulaGraph database using nGQL statements. |
+| 21 | NebulaGraph Dashboard | TCP | 9200 | Nebula Stats Exporter dependency service port. Collects cluster performance metrics, including service IP addresses, versions, and monitoring metrics (such as query count, query latency, heartbeat latency, etc.). |
+| 22 | NebulaGraph Dashboard | TCP | 9100 | Node Exporter dependency service port. Collects resource information for machines in the cluster, including CPU, memory, load, disk, and traffic. |
+| 23 | NebulaGraph Dashboard | TCP | 9091 | Prometheus service port. Time-series database for storing monitoring data. |
+| 24 | NebulaGraph Dashboard | TCP | 7003 | Dashboard Community Edition web service port. |
+| 25 | NebulaGraph Dashboard | TCP | 7005 | Dashboard Enterprise Edition web service port. |
+| 26 | NebulaGraph Dashboard | TCP | 9093 | Alertmanager service port. Receives alerts from Prometheus and sends alert notifications to Dashboard. |
+| 27 | NebulaGraph Explorer | TCP | 7002 | Explorer web service port. |
+| 28 | License Manager | TCP | 9119 | The port for the License Manager (LM) service. The LM service is used for managing licenses (only used in enterprise clusters).|
diff --git a/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md b/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md
index 8844e4f91e3..a964ba09435 100644
--- a/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md
+++ b/docs-2.0/5.configurations-and-logs/1.configurations/4.storage-config.md
@@ -199,7 +199,7 @@ For more information, see [RocksDB official documentation](https://rocksdb.org/)
| `negative_pool_capacity` | `50` | The negative pool size in MB. |
| `negative_item_ttl` | `300` | The TTL in seconds for negative items in the cache. | -->
-## Black box configurations
+## Black Box configurations
!!! enterpriseonly
@@ -214,14 +214,16 @@ For more information, see [RocksDB official documentation](https://rocksdb.org/)
{{ ent.ent_end }}
-## Memory tracker configurations
+## Memory Tracker configurations
+
+For details about Memory Tracker, see [Memory Tracker: Memory Management Practice in NebulaGraph Database](https://www.nebula-graph.io/posts/memory-tracker-practices)
| Name | Predefined value | Description |Whether supports runtime dynamic modifications|
| :------------------- | :------------------------ | :------------------------------------------ |:------------------|
|`memory_tracker_limit_ratio` |`0.8` | The value of this parameter can be set to `(0, 1]`, `2`, and `3`.
`(0, 1]`: The percentage of free memory. When the free memory is lower than this value, NebulaGraph stops accepting queries.
Calculated as follows:
`Free memory / (Total memory - Reserved memory)`
**Note**: For clusters with a mixed-used environment, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when Graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.
`2`: Dynamic Self Adaptive mode. MemoryTracker dynamically adjusts the available memory based on the system's current available memory.
**Note**: This feature is experimental. As memory usage cannot be monitored in real time in dynamic adaptive mode, an OOM error may still occur to handle large memory allocations.
`3`: Disable MemoryTracker. MemoryTracker only logs memory usage and does not interfere with executions even if the limit is exceeded.| Yes|
-|`memory_tracker_untracked_reserved_memory_mb` |`50`| The reserved memory that is not tracked by the memory tracker. Unit: MB.| Yes|
-|`memory_tracker_detail_log` |`false` | Whether to enable the memory tracker log. When the value is `true`, the memory tracker log is generated.| Yes|
-|`memory_tracker_detail_log_interval_ms` |`60000`| The time interval for generating the memory tracker log. Unit: Millisecond. `memory_tracker_detail_log` is `true` when this parameter takes effect.| Yes|
+|`memory_tracker_untracked_reserved_memory_mb` |`50`| The reserved memory that is not tracked by the Memory Tracker. Unit: MB.| Yes|
+|`memory_tracker_detail_log` |`false` | Whether to enable the Memory Tracker log. When the value is `true`, the Memory Tracker log is generated.| Yes|
+|`memory_tracker_detail_log_interval_ms` |`60000`| The time interval for generating the Memory Tracker log. Unit: Millisecond. `memory_tracker_detail_log` is `true` when this parameter takes effect.| Yes|
|`memory_purge_enabled` |`true` |Whether to enable the memory purge feature. When the value is `true`, the memory purge feature is enabled.| Yes|
|`memory_purge_interval_seconds` |`10` |The time interval for the memory purge feature to purge memory. Unit: Second. This parameter only takes effect if `memory_purge_enabled` is set to true.| Yes|
diff --git a/mkdocs.yml b/mkdocs.yml
index 55e9a71bf82..74e4c47e7d6 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -744,6 +744,7 @@ nav:
- Flink Connector: nebula-flink-connector.md
- Bench: nebula-bench.md
+ - FAQ: 20.appendix/0.FAQ.md
- Appendix:
- Release Note:
@@ -755,8 +756,8 @@ nav:
- NebulaGraph Dashboard Enterprise: 20.appendix/release-notes/dashboard-ent-release-note.md
- NebulaGraph Explorer: 20.appendix/release-notes/explorer-release-note.md
- Learning path: 20.appendix/learning-path.md
- - FAQ: 20.appendix/0.FAQ.md
- Ecosystem tools: 20.appendix/6.eco-tool-version.md
+ - Port guide for company products: 20.appendix/port-guide.md
- Write tools: 20.appendix/write-tools.md
- How to contribute: 15.contribution/how-to-contribute.md
- History timeline: 20.appendix/history.md