This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iotdb-docs.git


The following commit(s) were added to refs/heads/main by this push:
     new abfde1ad add health check tool in 1.3.x 2.0.x master (#639)
abfde1ad is described below

commit abfde1ad7c14cb51d416707f97e581a0bb84c4cc
Author: leto-b <[email protected]>
AuthorDate: Thu Mar 13 09:57:36 2025 +0800

    add health check tool in 1.3.x 2.0.x master (#639)
---
 src/.vuepress/sidebar/V1.3.x/en.ts                 |   1 +
 src/.vuepress/sidebar/V1.3.x/zh.ts                 |   1 +
 src/.vuepress/sidebar/V2.0.x/en-Tree.ts            |   1 +
 src/.vuepress/sidebar/V2.0.x/zh-Tree.ts            |   1 +
 src/.vuepress/sidebar_timecho/V1.3.x/en.ts         |   1 +
 src/.vuepress/sidebar_timecho/V1.3.x/zh.ts         |   1 +
 src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts    |   1 +
 src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts    |   1 +
 .../Master/Tree/Tools-System/Health-Check-Tool.md  | 213 ++++++++++++++++++++
 .../V1.3.x/Tools-System/Health-Check-Tool.md       | 214 ++++++++++++++++++++
 .../dev-1.3/Tools-System/Health-Check-Tool.md      | 214 ++++++++++++++++++++
 .../latest/Tools-System/Health-Check-Tool.md       | 213 ++++++++++++++++++++
 .../Master/Tree/Tools-System/Health-Check-Tool.md  | 220 ++++++++++++++++++++
 .../V1.3.x/Tools-System/Health-Check-Tool.md       | 221 +++++++++++++++++++++
 .../dev-1.3/Tools-System/Health-Check-Tool.md      | 221 +++++++++++++++++++++
 .../latest/Tools-System/Health-Check-Tool.md       | 220 ++++++++++++++++++++
 16 files changed, 1744 insertions(+)

diff --git a/src/.vuepress/sidebar/V1.3.x/en.ts 
b/src/.vuepress/sidebar/V1.3.x/en.ts
index 6ad3da77..4f50ef3d 100644
--- a/src/.vuepress/sidebar/V1.3.x/en.ts
+++ b/src/.vuepress/sidebar/V1.3.x/en.ts
@@ -159,6 +159,7 @@ export const enSidebar = {
         { text: 'TsFile Import Export(V1.3.0/1/2)', link: 
'TsFile-Import-Export-Tool' },
         { text: 'Data Import(V1.3.3)', link: 'Data-Import-Tool' },
         { text: 'Data Export(V1.3.3)', link: 'Data-Export-Tool' },
+        { text: 'Health Check Tool(V1.3.2)', link: 'Health-Check-Tool' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar/V1.3.x/zh.ts 
b/src/.vuepress/sidebar/V1.3.x/zh.ts
index 386bea89..f5693bb9 100644
--- a/src/.vuepress/sidebar/V1.3.x/zh.ts
+++ b/src/.vuepress/sidebar/V1.3.x/zh.ts
@@ -146,6 +146,7 @@ export const zhSidebar = {
         { text: 'TsFile导入导出(V1.3.0/1/2)', link: 'TsFile-Import-Export-Tool' },
         { text: '数据导入(V1.3.3)', link: 'Data-Import-Tool' },
         { text: '数据导出(V1.3.3)', link: 'Data-Export-Tool' },
+        { text: '健康检查工具(V1.3.2)', link: 'Health-Check-Tool' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar/V2.0.x/en-Tree.ts 
b/src/.vuepress/sidebar/V2.0.x/en-Tree.ts
index 8584b0a7..a15581bf 100644
--- a/src/.vuepress/sidebar/V2.0.x/en-Tree.ts
+++ b/src/.vuepress/sidebar/V2.0.x/en-Tree.ts
@@ -140,6 +140,7 @@ export const enSidebar = {
         { text: 'Cluster Management Tool', link: 'Maintenance-Tool_apache' },
         { text: 'Data Import', link: 'Data-Import-Tool' },
         { text: 'Data Export', link: 'Data-Export-Tool' },
+        { text: 'Health Check Tool', link: 'Health-Check-Tool' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar/V2.0.x/zh-Tree.ts 
b/src/.vuepress/sidebar/V2.0.x/zh-Tree.ts
index 9d081647..4f5f8d65 100644
--- a/src/.vuepress/sidebar/V2.0.x/zh-Tree.ts
+++ b/src/.vuepress/sidebar/V2.0.x/zh-Tree.ts
@@ -127,6 +127,7 @@ export const zhSidebar = {
         { text: '集群管理工具', link: 'Maintenance-Tool_apache' },
         { text: '数据导入', link: 'Data-Import-Tool' },
         { text: '数据导出', link: 'Data-Export-Tool' },
+        { text: '健康检查工具', link: 'Health-Check-Tool' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar_timecho/V1.3.x/en.ts 
b/src/.vuepress/sidebar_timecho/V1.3.x/en.ts
index 2d192cce..1329b938 100644
--- a/src/.vuepress/sidebar_timecho/V1.3.x/en.ts
+++ b/src/.vuepress/sidebar_timecho/V1.3.x/en.ts
@@ -173,6 +173,7 @@ export const enSidebar = {
         { text: 'TsFile Import Export(V1.3.0/1/2)', link: 
'TsFile-Import-Export-Tool' },
         { text: 'Data Import(V1.3.3)', link: 'Data-Import-Tool' },
         { text: 'Data Export(V1.3.3)', link: 'Data-Export-Tool' },
+        { text: 'Health Check Tool(V1.3.2)', link: 'Health-Check-Tool' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar_timecho/V1.3.x/zh.ts 
b/src/.vuepress/sidebar_timecho/V1.3.x/zh.ts
index 3ba3b1ec..ded1f7c0 100644
--- a/src/.vuepress/sidebar_timecho/V1.3.x/zh.ts
+++ b/src/.vuepress/sidebar_timecho/V1.3.x/zh.ts
@@ -156,6 +156,7 @@ export const zhSidebar = {
         { text: 'TsFile导入导出(V1.3.0/1/2)', link: 'TsFile-Import-Export-Tool' },
         { text: '数据导入(V1.3.3)', link: 'Data-Import-Tool' },
         { text: '数据导出(V1.3.3)', link: 'Data-Export-Tool' },
+        { text: '健康检查工具(V1.3.2)', link: 'Health-Check-Tool' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts 
b/src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts
index f7ff41e0..e3b34874 100644
--- a/src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts
+++ b/src/.vuepress/sidebar_timecho/V2.0.x/en-Tree.ts
@@ -154,6 +154,7 @@ export const enSidebar = {
         { text: 'Cluster Management Tool', link: 'Maintenance-Tool_timecho' },
         { text: 'Data Import', link: 'Data-Import-Tool' },
         { text: 'Data Export', link: 'Data-Export-Tool' },
+        { text: 'Health Check Tool', link: 'Health-Check-Tool' },
       ],
     },
     {
diff --git a/src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts 
b/src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts
index 97be6811..44847c82 100644
--- a/src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts
+++ b/src/.vuepress/sidebar_timecho/V2.0.x/zh-Tree.ts
@@ -137,6 +137,7 @@ export const zhSidebar = {
         { text: '集群管理工具', link: 'Maintenance-Tool_timecho' },
         { text: '数据导入', link: 'Data-Import-Tool' },
         { text: '数据导出', link: 'Data-Export-Tool' },
+        { text: '健康检查工具', link: 'Health-Check-Tool' },
       ],
     },
     {
diff --git a/src/UserGuide/Master/Tree/Tools-System/Health-Check-Tool.md 
b/src/UserGuide/Master/Tree/Tools-System/Health-Check-Tool.md
new file mode 100644
index 00000000..312664b1
--- /dev/null
+++ b/src/UserGuide/Master/Tree/Tools-System/Health-Check-Tool.md
@@ -0,0 +1,213 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# Health Check Tool
+
+## 1. Overview
+The IoTDB Health Check Tool is designed to inspect the runtime environment of 
IoTDB nodes. It assists users in verifying the node's environment both before 
deployment and during operation, providing detailed inspection reports.
+
+
+## 2. Prerequisites
+
+Linux Systems
+
+* `nc` (netcat) tool: Installed by default; user must have execution 
permissions.
+* `lsof` or `netstat`: At least one must be installed; user must have 
execution permissions.
+
+> To verify tool installation:
+> 
+>Check `nc`: `nc -h`
+> 
+>Check `lsof`: `lsof -v`
+
+Windows Systems
+
+* PowerShell: Enabled by default.
+
+## 3. Inspection Items
+* Check port occupancy on the node's server (Windows/Linux).
+* Verify port connectivity between the current node and other cluster nodes 
(Windows/Linux).
+* Check JDK installation (JAVA_HOME) (Windows/Linux).
+* Inspect system memory allocation and IoTDB memory configuration 
(Windows/Linux).
+* Validate directory access permissions (Windows/Linux).
+* Ensure the system's maximum number of open files meets requirements (≥ 
65535) (Linux only).
+* Confirm swap is disabled (Windows/Linux).
+
+## 4. Usage Instructions
+### 4.1 Command Format
+```bash
+health_check.sh/health_check.bat -ips <Remote_IP+Ports> -o 
<all(default)/remote/local>
+```
+### 4.2 Parameter Descriptions
+
+|**Parameter** |**Description**                                                
                                               | ​**Required** |
+| --------------------- | 
---------------------------------------------------------------------------------------------------------------------
 | ---------------------- |
+| `-ips`          | Remote server IPs and ports. Supports multiple servers. 
Format: `ip port1 port2, ip2 port2-1 port2-2`           | Optional             |
+| `-o`            | Scope of check: `local` (local machine), `remote` (remote 
server ports), `all` (both). Default: `all` | Optional             |
+
+
+## 5. Usage Examples
+### 5.1 Example 1: Check All
+```bash
+   health_check.sh/health_check.bat -ips 172.20.31.19 6667 18080,10.0.6.230 
10311
+```   
+
+Output:
+
+```bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs write permissions for data/datanode/data, 
data/datanode/consensus, data/datanode/system, data/datanode/wal, 
data/confignode/system, data/confignode/consensus, ext/pipe, ext/udf, 
ext/trigger.
+Result:
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Ports 16668, 10730, 11742, 10750, 10760, 10710, 10720 must be 
unoccupied
+Result:
+Ports 16668, 10730, 11742, 10750, 10760, 10710, 10720 are free
+
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667, 18080 and 10.0.6.230:10311 must be accessible
+Result:
+Inaccessible server ports:
+IP: 10.0.6.230, Ports: 10311
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: Disabled
+Result: Disabled.
+```
+
+### 5.2 Example 2: Local Check
+
+```bash
+health_check.sh/health_check.bat -o local
+```
+
+Output:
+
+```bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.3 Example 3: Remote Check
+```bash
+health_check.sh/health_check.bat -o remote -ips 172.20.31.19 6667 
18080,10.0.6.230 10311
+```
+
+Output:
+
+```bash
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667, 18080 and 10.0.6.230:10311 must be accessible
+Result:
+Inaccessible server ports:
+IP: 10.0.6.230, Ports: 10311
+```
+
+## 6. FAQs
+### 6.1 How to Adjust Memory Allocation
+
+* Modify MEMORY\_SIZE in `confignode-env.sh`.
+* Modify MEMORY\_SIZE in `datanode-env.sh`.
+
+### 6.2 How to Modify Max Open Files Limit
+
+* To avoid "too many open files" errors:
+
+```bash
+# Check current limit
+ulimit -n
+# Temporarily set
+ulimit -n 65535
+# Permanently set
+echo "* soft nofile 65535" >> /etc/security/limits.conf
+echo "* hard nofile 65535" >> /etc/security/limits.conf
+# Verify after re-login
+ulimit -n  # Should return 65535
+```
+
+### 6.3 How to Disable Swap and Why
+* Why Disable:
+IoTDB performance degrades when using swap.
+
+* Steps:
+
+```bash
+# Disable swap
+echo "vm.swappiness = 0" >> /etc/sysctl.conf
+# Clear swap data and reload
+swapoff -a && swapon -a
+# Apply settings without reboot
+sysctl -p
+# Verify swap is 0
+free -m
+```
\ No newline at end of file
diff --git a/src/UserGuide/V1.3.x/Tools-System/Health-Check-Tool.md 
b/src/UserGuide/V1.3.x/Tools-System/Health-Check-Tool.md
new file mode 100644
index 00000000..4db2655b
--- /dev/null
+++ b/src/UserGuide/V1.3.x/Tools-System/Health-Check-Tool.md
@@ -0,0 +1,214 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# Health Check Tool
+
+## 1. Overview
+The IoTDB Health Check Tool is designed to inspect the runtime environment of 
IoTDB nodes. It assists users in verifying the node's environment both before 
deployment and during operation, providing detailed inspection reports.
+
+> IoTDB version requirement: Must not be lower than v1.3.2
+
+## 2. Prerequisites
+
+Linux Systems
+
+* `nc` (netcat) tool: Installed by default; user must have execution 
permissions.
+* `lsof` or `netstat`: At least one must be installed; user must have 
execution permissions.
+
+> To verify tool installation:
+> 
+>Check `nc`: `nc -h`
+> 
+>Check `lsof`: `lsof -v`
+
+Windows Systems
+
+* PowerShell: Enabled by default.
+
+## 3. Inspection Items
+* Check port occupancy on the node's server (Windows/Linux).
+* Verify port connectivity between the current node and other cluster nodes 
(Windows/Linux).
+* Check JDK installation (JAVA_HOME) (Windows/Linux).
+* Inspect system memory allocation and IoTDB memory configuration 
(Windows/Linux).
+* Validate directory access permissions (Windows/Linux).
+* Ensure the system's maximum number of open files meets requirements (≥ 
65535) (Linux only).
+* Confirm swap is disabled (Windows/Linux).
+
+## 4. Usage Instructions
+### 4.1 Command Format
+```bash
+health_check.sh/health_check.bat -ips <Remote_IP+Ports> -o 
<all(default)/remote/local>
+```
+### 4.2 Parameter Descriptions
+
+|**Parameter** |**Description**                                                
                                               | ​**Required** |
+| --------------------- | 
---------------------------------------------------------------------------------------------------------------------
 | ---------------------- |
+| `-ips`          | Remote server IPs and ports. Supports multiple servers. 
Format: `ip port1 port2, ip2 port2-1 port2-2`           | Optional             |
+| `-o`            | Scope of check: `local` (local machine), `remote` (remote 
server ports), `all` (both). Default: `all` | Optional             |
+
+
+## 5. Usage Examples
+### 5.1 Example 1: Check All
+```bash
+   health_check.sh/health_check.bat -ips 172.20.31.19 6667 18080,10.0.6.230 
10311
+```   
+
+Output:
+
+```bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs write permissions for data/datanode/data, 
data/datanode/consensus, data/datanode/system, data/datanode/wal, 
data/confignode/system, data/confignode/consensus, ext/pipe, ext/udf, 
ext/trigger.
+Result:
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Ports 16668, 10730, 11742, 10750, 10760, 10710, 10720 must be 
unoccupied
+Result:
+Ports 16668, 10730, 11742, 10750, 10760, 10710, 10720 are free
+
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667, 18080 and 10.0.6.230:10311 must be accessible
+Result:
+Inaccessible server ports:
+IP: 10.0.6.230, Ports: 10311
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: Disabled
+Result: Disabled.
+```
+
+### 5.2 Example 2: Local Check
+
+```bash
+health_check.sh/health_check.bat -o local
+```
+
+Output:
+
+```bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.3 Example 3: Remote Check
+```bash
+health_check.sh/health_check.bat -o remote -ips 172.20.31.19 6667 
18080,10.0.6.230 10311
+```
+
+Output:
+
+```bash
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667, 18080 and 10.0.6.230:10311 must be accessible
+Result:
+Inaccessible server ports:
+IP: 10.0.6.230, Ports: 10311
+```
+
+## 6. FAQs
+### 6.1 How to Adjust Memory Allocation
+
+* Modify MEMORY\_SIZE in `confignode-env.sh`.
+* Modify MEMORY\_SIZE in `datanode-env.sh`.
+
+### 6.2 How to Modify Max Open Files Limit
+
+* To avoid "too many open files" errors:
+
+```bash
+# Check current limit
+ulimit -n
+# Temporarily set
+ulimit -n 65535
+# Permanently set
+echo "* soft nofile 65535" >> /etc/security/limits.conf
+echo "* hard nofile 65535" >> /etc/security/limits.conf
+# Verify after re-login
+ulimit -n  # Should return 65535
+```
+
+### 6.3 How to Disable Swap and Why
+* Why Disable:
+IoTDB performance degrades when using swap.
+
+* Steps:
+
+```bash
+# Disable swap
+echo "vm.swappiness = 0" >> /etc/sysctl.conf
+# Clear swap data and reload
+swapoff -a && swapon -a
+# Apply settings without reboot
+sysctl -p
+# Verify swap is 0
+free -m
+```
\ No newline at end of file
diff --git a/src/UserGuide/dev-1.3/Tools-System/Health-Check-Tool.md 
b/src/UserGuide/dev-1.3/Tools-System/Health-Check-Tool.md
new file mode 100644
index 00000000..4db2655b
--- /dev/null
+++ b/src/UserGuide/dev-1.3/Tools-System/Health-Check-Tool.md
@@ -0,0 +1,214 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# Health Check Tool
+
+## 1. Overview
+The IoTDB Health Check Tool is designed to inspect the runtime environment of 
IoTDB nodes. It assists users in verifying the node's environment both before 
deployment and during operation, providing detailed inspection reports.
+
+> IoTDB version requirement: Must not be lower than v1.3.2
+
+## 2. Prerequisites
+
+Linux Systems
+
+* `nc` (netcat) tool: Installed by default; user must have execution 
permissions.
+* `lsof` or `netstat`: At least one must be installed; user must have 
execution permissions.
+
+> To verify tool installation:
+> 
+>Check `nc`: `nc -h`
+> 
+>Check `lsof`: `lsof -v`
+
+Windows Systems
+
+* PowerShell: Enabled by default.
+
+## 3. Inspection Items
+* Check port occupancy on the node's server (Windows/Linux).
+* Verify port connectivity between the current node and other cluster nodes 
(Windows/Linux).
+* Check JDK installation (JAVA_HOME) (Windows/Linux).
+* Inspect system memory allocation and IoTDB memory configuration 
(Windows/Linux).
+* Validate directory access permissions (Windows/Linux).
+* Ensure the system's maximum number of open files meets requirements (≥ 
65535) (Linux only).
+* Confirm swap is disabled (Windows/Linux).
+
+## 4. Usage Instructions
+### 4.1 Command Format
+```bash
+health_check.sh/health_check.bat -ips <Remote_IP+Ports> -o 
<all(default)/remote/local>
+```
+### 4.2 Parameter Descriptions
+
+|**Parameter** |**Description**                                                
                                               | ​**Required** |
+| --------------------- | 
---------------------------------------------------------------------------------------------------------------------
 | ---------------------- |
+| `-ips`          | Remote server IPs and ports. Supports multiple servers. 
Format: `ip port1 port2, ip2 port2-1 port2-2`           | Optional             |
+| `-o`            | Scope of check: `local` (local machine), `remote` (remote 
server ports), `all` (both). Default: `all` | Optional             |
+
+
+## 5. Usage Examples
+### 5.1 Example 1: Check All
+```bash
+   health_check.sh/health_check.bat -ips 172.20.31.19 6667 18080,10.0.6.230 
10311
+```   
+
+Output:
+
+```bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs write permissions for data/datanode/data, 
data/datanode/consensus, data/datanode/system, data/datanode/wal, 
data/confignode/system, data/confignode/consensus, ext/pipe, ext/udf, 
ext/trigger.
+Result:
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Ports 16668, 10730, 11742, 10750, 10760, 10710, 10720 must be 
unoccupied
+Result:
+Ports 16668, 10730, 11742, 10750, 10760, 10710, 10720 are free
+
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667, 18080 and 10.0.6.230:10311 must be accessible
+Result:
+Inaccessible server ports:
+IP: 10.0.6.230, Ports: 10311
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: Disabled
+Result: Disabled.
+```
+
+### 5.2 Example 2: Local Check
+
+```bash
+health_check.sh/health_check.bat -o local
+```
+
+Output:
+
+```bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.3 Example 3: Remote Check
+```bash
+health_check.sh/health_check.bat -o remote -ips 172.20.31.19 6667 
18080,10.0.6.230 10311
+```
+
+Output:
+
+```bash
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667, 18080 and 10.0.6.230:10311 must be accessible
+Result:
+Inaccessible server ports:
+IP: 10.0.6.230, Ports: 10311
+```
+
+## 6. FAQs
+### 6.1 How to Adjust Memory Allocation
+
+* Modify MEMORY\_SIZE in `confignode-env.sh`.
+* Modify MEMORY\_SIZE in `datanode-env.sh`.
+
+### 6.2 How to Modify Max Open Files Limit
+
+* To avoid "too many open files" errors:
+
+```bash
+# Check current limit
+ulimit -n
+# Temporarily set
+ulimit -n 65535
+# Permanently set
+echo "* soft nofile 65535" >> /etc/security/limits.conf
+echo "* hard nofile 65535" >> /etc/security/limits.conf
+# Verify after re-login
+ulimit -n  # Should return 65535
+```
+
+### 6.3 How to Disable Swap and Why
+* Why Disable:
+IoTDB performance degrades when using swap.
+
+* Steps:
+
+```bash
+# Disable swap
+echo "vm.swappiness = 0" >> /etc/sysctl.conf
+# Clear swap data and reload
+swapoff -a && swapon -a
+# Apply settings without reboot
+sysctl -p
+# Verify swap is 0
+free -m
+```
\ No newline at end of file
diff --git a/src/UserGuide/latest/Tools-System/Health-Check-Tool.md 
b/src/UserGuide/latest/Tools-System/Health-Check-Tool.md
new file mode 100644
index 00000000..312664b1
--- /dev/null
+++ b/src/UserGuide/latest/Tools-System/Health-Check-Tool.md
@@ -0,0 +1,213 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# Health Check Tool
+
+## 1. Overview
+The IoTDB Health Check Tool is designed to inspect the runtime environment of 
IoTDB nodes. It assists users in verifying the node's environment both before 
deployment and during operation, providing detailed inspection reports.
+
+
+## 2. Prerequisites
+
+Linux Systems
+
+* `nc` (netcat) tool: Installed by default; user must have execution 
permissions.
+* `lsof` or `netstat`: At least one must be installed; user must have 
execution permissions.
+
+> To verify tool installation:
+> 
+>Check `nc`: `nc -h`
+> 
+>Check `lsof`: `lsof -v`
+
+Windows Systems
+
+* PowerShell: Enabled by default.
+
+## 3. Inspection Items
+* Check port occupancy on the node's server (Windows/Linux).
+* Verify port connectivity between the current node and other cluster nodes 
(Windows/Linux).
+* Check JDK installation (JAVA_HOME) (Windows/Linux).
+* Inspect system memory allocation and IoTDB memory configuration 
(Windows/Linux).
+* Validate directory access permissions (Windows/Linux).
+* Ensure the system's maximum number of open files meets requirements (≥ 
65535) (Linux only).
+* Confirm swap is disabled (Windows/Linux).
+
+## 4. Usage Instructions
+### 4.1 Command Format
+```bash
+health_check.sh/health_check.bat -ips <Remote_IP+Ports> -o 
<all(default)/remote/local>
+```
+### 4.2 Parameter Descriptions
+
+|**Parameter** |**Description**                                                
                                               | ​**Required** |
+| --------------------- | 
---------------------------------------------------------------------------------------------------------------------
 | ---------------------- |
+| `-ips`          | Remote server IPs and ports. Supports multiple servers. 
Format: `ip port1 port2, ip2 port2-1 port2-2`           | Optional             |
+| `-o`            | Scope of check: `local` (local machine), `remote` (remote 
server ports), `all` (both). Default: `all` | Optional             |
+
+
+## 5. Usage Examples
+### 5.1 Example 1: Check All
+```bash
+   health_check.sh/health_check.bat -ips 172.20.31.19 6667 18080,10.0.6.230 
10311
+```   
+
+Output:
+
+```bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs write permissions for data/datanode/data, 
data/datanode/consensus, data/datanode/system, data/datanode/wal, 
data/confignode/system, data/confignode/consensus, ext/pipe, ext/udf, 
ext/trigger.
+Result:
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Ports 16668, 10730, 11742, 10750, 10760, 10710, 10720 must be 
unoccupied
+Result:
+Ports 16668, 10730, 11742, 10750, 10760, 10710, 10720 are free
+
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667, 18080 and 10.0.6.230:10311 must be accessible
+Result:
+Inaccessible server ports:
+IP: 10.0.6.230, Ports: 10311
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: Disabled
+Result: Disabled.
+```
+
+### 5.2 Example 2: Local Check
+
+```bash
+health_check.sh/health_check.bat -o local
+```
+
+Output:
+
+```bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.3 Example 3: Remote Check
+```bash
+health_check.sh/health_check.bat -o remote -ips 172.20.31.19 6667 
18080,10.0.6.230 10311
+```
+
+Output:
+
+```bash
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667, 18080 and 10.0.6.230:10311 must be accessible
+Result:
+Inaccessible server ports:
+IP: 10.0.6.230, Ports: 10311
+```
+
+## 6. FAQs
+### 6.1 How to Adjust Memory Allocation
+
+* Modify MEMORY\_SIZE in `confignode-env.sh`.
+* Modify MEMORY\_SIZE in `datanode-env.sh`.
+
+### 6.2 How to Modify Max Open Files Limit
+
+* To avoid "too many open files" errors:
+
+```bash
+# Check current limit
+ulimit -n
+# Temporarily set
+ulimit -n 65535
+# Permanently set
+echo "* soft nofile 65535" >> /etc/security/limits.conf
+echo "* hard nofile 65535" >> /etc/security/limits.conf
+# Verify after re-login
+ulimit -n  # Should return 65535
+```
+
+### 6.3 How to Disable Swap and Why
+* Why Disable:
+IoTDB performance degrades when using swap.
+
+* Steps:
+
+```bash
+# Disable swap
+echo "vm.swappiness = 0" >> /etc/sysctl.conf
+# Clear swap data and reload
+swapoff -a && swapon -a
+# Apply settings without reboot
+sysctl -p
+# Verify swap is 0
+free -m
+```
\ No newline at end of file
diff --git a/src/zh/UserGuide/Master/Tree/Tools-System/Health-Check-Tool.md 
b/src/zh/UserGuide/Master/Tree/Tools-System/Health-Check-Tool.md
new file mode 100644
index 00000000..cebcd1d9
--- /dev/null
+++ b/src/zh/UserGuide/Master/Tree/Tools-System/Health-Check-Tool.md
@@ -0,0 +1,220 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# 健康检查工具
+
+## 1. 概述
+
+IoTDB 健康检查工具是一个用于检测 IoTDB 节点运行环境的工具。它可以帮助用户在安装部署数据库前或运行期间检查节点的运行环境,并获取详细的检查结果。
+
+
+## 2. 前置要求
+
+Linux 系统
+
+* `nc`(netcat)工具:默认已安装,用户需要有权限执行。
+* `lsof` 或 `netstat`:至少安装其中一个,用户需要有权限执行。
+
+> 检查相应工具是否已安装:
+>
+> 检查 `nc` 是否安装:`nc -h`
+>
+> 检查 `lsof` 是否安装:`lsof -v`
+
+Windows 系统
+
+* PowerShell:默认已启动。
+
+## 3. 检查项
+
+* 检查节点所在服务器的端口占用情况(windows/linux)
+* 检查当前节点与集群中其他节点的端口连通性(windows/linux)
+* 检查系统中是否安装了 JDK(java\_home)(windows/linux)
+* 检查系统内存分配情况,检查 IoTDB 内存分配情况(windows/linux)
+* 检查目录访问权限(windows/linux)
+* 检查系统最大打开文件数是否满足要求(>= 65535)(仅 linux)
+* 检查系统是否禁用了 swap(windows/linux)
+
+## 4. 使用方法
+
+### 4.1 命令格式
+
+```Bash
+health_check.sh/health_check.bat -ips<远程服务器IP+端口> , -o 
<all(default)/remote/local>
+```
+
+### 4.2 参数说明
+
+| **参数** | **说明**                                                              
                                                                      | 
**是否必填** |
+| ---------------- | 
---------------------------------------------------------------------------------------------------------------------------------------------------
 | -------------------- |
+| `-ips`     | 远程服务器 IP 和端口,支持检查多个服务器,格式如下:`ip port1 port2,ip2 port2-1 
port2-2`                                                     | 非必填             |
+| `-o`       | 
检查参数,可选值为`local`(本机检查)、`remote`(远程服务器端口连接性检查)、`all`(本机和远程服务器端口一起检查),默认值为`all` | 
非必填             |
+
+## 5. 使用方法
+
+### 5.1 示例 1:检查全部
+
+```Bash
+health_check.sh/health_check.bat -ips 172.20.31.19 6667 18080,10.0.6.230 10311
+```
+
+输出结果:
+
+```Bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667 18080 ,10.0.6.230:10311  need to be accessible
+Result: 
+The following server ports are inaccessible:
+IP: 10.0.6.230, Ports: 10311 
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.2 示例 2:检查本机
+
+```Bash
+health_check.sh/health_check.bat -o local
+```
+
+输出结果:
+
+```Bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.3 示例 3:检查远程
+
+```Bash
+health_check.sh/health_check.bat -o remote -ips 172.20.31.19 6667 
18080,10.0.6.230 10311
+```
+
+输出结果:
+
+```Bash
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667 18080 ,10.0.6.230:10311  need to be accessible
+Result: 
+The following server ports are inaccessible:
+IP: 10.0.6.230, Ports: 10311
+```
+
+## 6. 常见问题
+
+### 6.1 如何调整内存分配
+
+* 修改`confignode-env.sh`中的MEMORY\_SIZE
+* 修改`datanode-env.sh`中的MEMORY\_SIZE
+
+### 6.2 如何修改最大打开数文件
+
+* 设置系统最大打开文件数为 65535,以避免出现 "太多的打开文件 "的错误。
+
+```Bash
+#查看当前限制
+ulimit -n
+# 临时修改
+ulimit -n 65535
+# 永久修改
+echo "* soft nofile 65535" >>  /etc/security/limits.conf
+echo "* hard nofile 65535" >>  /etc/security/limits.conf
+#退出当前终端会话后查看,预期显示65535
+ulimit -n
+```
+
+### 6.3 如何禁用 Swap 及禁用原因
+
+* 禁用原因:IoTDB 使用 Swap 会导致性能下降,建议禁用。
+* 禁用方式:
+
+```Bash
+echo "vm.swappiness = 0">> /etc/sysctl.conf
+# 一起执行 swapoff -a 和 swapon -a 命令是为了将 swap 里的数据转储回内存,并清空 swap 里的数据。
+# 不可省略 swappiness 设置而只执行 swapoff -a;否则,重启后 swap 会再次自动打开,使得操作失效。
+swapoff -a && swapon -a
+# 在不重启的情况下使配置生效。
+sysctl -p
+# 检查内存分配,预期 swap 为 0
+free -m
+```
diff --git a/src/zh/UserGuide/V1.3.x/Tools-System/Health-Check-Tool.md 
b/src/zh/UserGuide/V1.3.x/Tools-System/Health-Check-Tool.md
new file mode 100644
index 00000000..0c1d38e2
--- /dev/null
+++ b/src/zh/UserGuide/V1.3.x/Tools-System/Health-Check-Tool.md
@@ -0,0 +1,221 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# 健康检查工具
+
+## 1. 概述
+
+IoTDB 健康检查工具是一个用于检测 IoTDB 节点运行环境的工具。它可以帮助用户在安装部署数据库前或运行期间检查节点的运行环境,并获取详细的检查结果。
+
+> IoTDB版本要求:不能低于v1.3.2
+
+## 2. 前置要求
+
+Linux 系统
+
+* `nc`(netcat)工具:默认已安装,用户需要有权限执行。
+* `lsof` 或 `netstat`:至少安装其中一个,用户需要有权限执行。
+
+> 检查相应工具是否已安装:
+>
+> 检查 `nc` 是否安装:`nc -h`
+>
+> 检查 `lsof` 是否安装:`lsof -v`
+
+Windows 系统
+
+* PowerShell:默认已启动。
+
+## 3. 检查项
+
+* 检查节点所在服务器的端口占用情况(windows/linux)
+* 检查当前节点与集群中其他节点的端口连通性(windows/linux)
+* 检查系统中是否安装了 JDK(java\_home)(windows/linux)
+* 检查系统内存分配情况,检查 IoTDB 内存分配情况(windows/linux)
+* 检查目录访问权限(windows/linux)
+* 检查系统最大打开文件数是否满足要求(>= 65535)(仅 linux)
+* 检查系统是否禁用了 swap(windows/linux)
+
+## 4. 使用方法
+
+### 4.1 命令格式
+
+```Bash
+health_check.sh/health_check.bat -ips<远程服务器IP+端口> , -o 
<all(default)/remote/local>
+```
+
+### 4.2 参数说明
+
+| **参数** | **说明**                                                              
                                                                      | 
**是否必填** |
+| ---------------- | 
---------------------------------------------------------------------------------------------------------------------------------------------------
 | -------------------- |
+| `-ips`     | 远程服务器 IP 和端口,支持检查多个服务器,格式如下:`ip port1 port2,ip2 port2-1 
port2-2`                                                     | 非必填             |
+| `-o`       | 
检查参数,可选值为`local`(本机检查)、`remote`(远程服务器端口连接性检查)、`all`(本机和远程服务器端口一起检查),默认值为`all` | 
非必填             |
+
+## 5. 使用方法
+
+### 5.1 示例 1:检查全部
+
+```Bash
+health_check.sh/health_check.bat -ips 172.20.31.19 6667 18080,10.0.6.230 10311
+```
+
+输出结果:
+
+```Bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667 18080 ,10.0.6.230:10311  need to be accessible
+Result: 
+The following server ports are inaccessible:
+IP: 10.0.6.230, Ports: 10311 
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.2 示例 2:检查本机
+
+```Bash
+health_check.sh/health_check.bat -o local
+```
+
+输出结果:
+
+```Bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.3 示例 3:检查远程
+
+```Bash
+health_check.sh/health_check.bat -o remote -ips 172.20.31.19 6667 
18080,10.0.6.230 10311
+```
+
+输出结果:
+
+```Bash
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667 18080 ,10.0.6.230:10311  need to be accessible
+Result: 
+The following server ports are inaccessible:
+IP: 10.0.6.230, Ports: 10311
+```
+
+## 6. 常见问题
+
+### 6.1 如何调整内存分配
+
+* 修改`confignode-env.sh`中的MEMORY\_SIZE
+* 修改`datanode-env.sh`中的MEMORY\_SIZE
+
+### 6.2 如何修改最大打开数文件
+
+* 设置系统最大打开文件数为 65535,以避免出现 "太多的打开文件 "的错误。
+
+```Bash
+#查看当前限制
+ulimit -n
+# 临时修改
+ulimit -n 65535
+# 永久修改
+echo "* soft nofile 65535" >>  /etc/security/limits.conf
+echo "* hard nofile 65535" >>  /etc/security/limits.conf
+#退出当前终端会话后查看,预期显示65535
+ulimit -n
+```
+
+### 6.3 如何禁用 Swap 及禁用原因
+
+* 禁用原因:IoTDB 使用 Swap 会导致性能下降,建议禁用。
+* 禁用方式:
+
+```Bash
+echo "vm.swappiness = 0">> /etc/sysctl.conf
+# 一起执行 swapoff -a 和 swapon -a 命令是为了将 swap 里的数据转储回内存,并清空 swap 里的数据。
+# 不可省略 swappiness 设置而只执行 swapoff -a;否则,重启后 swap 会再次自动打开,使得操作失效。
+swapoff -a && swapon -a
+# 在不重启的情况下使配置生效。
+sysctl -p
+# 检查内存分配,预期 swap 为 0
+free -m
+```
diff --git a/src/zh/UserGuide/dev-1.3/Tools-System/Health-Check-Tool.md 
b/src/zh/UserGuide/dev-1.3/Tools-System/Health-Check-Tool.md
new file mode 100644
index 00000000..0c1d38e2
--- /dev/null
+++ b/src/zh/UserGuide/dev-1.3/Tools-System/Health-Check-Tool.md
@@ -0,0 +1,221 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# 健康检查工具
+
+## 1. 概述
+
+IoTDB 健康检查工具是一个用于检测 IoTDB 节点运行环境的工具。它可以帮助用户在安装部署数据库前或运行期间检查节点的运行环境,并获取详细的检查结果。
+
+> IoTDB版本要求:不能低于v1.3.2
+
+## 2. 前置要求
+
+Linux 系统
+
+* `nc`(netcat)工具:默认已安装,用户需要有权限执行。
+* `lsof` 或 `netstat`:至少安装其中一个,用户需要有权限执行。
+
+> 检查相应工具是否已安装:
+>
+> 检查 `nc` 是否安装:`nc -h`
+>
+> 检查 `lsof` 是否安装:`lsof -v`
+
+Windows 系统
+
+* PowerShell:默认已启动。
+
+## 3. 检查项
+
+* 检查节点所在服务器的端口占用情况(windows/linux)
+* 检查当前节点与集群中其他节点的端口连通性(windows/linux)
+* 检查系统中是否安装了 JDK(java\_home)(windows/linux)
+* 检查系统内存分配情况,检查 IoTDB 内存分配情况(windows/linux)
+* 检查目录访问权限(windows/linux)
+* 检查系统最大打开文件数是否满足要求(>= 65535)(仅 linux)
+* 检查系统是否禁用了 swap(windows/linux)
+
+## 4. 使用方法
+
+### 4.1 命令格式
+
+```Bash
+health_check.sh/health_check.bat -ips<远程服务器IP+端口> , -o 
<all(default)/remote/local>
+```
+
+### 4.2 参数说明
+
+| **参数** | **说明**                                                              
                                                                      | 
**是否必填** |
+| ---------------- | 
---------------------------------------------------------------------------------------------------------------------------------------------------
 | -------------------- |
+| `-ips`     | 远程服务器 IP 和端口,支持检查多个服务器,格式如下:`ip port1 port2,ip2 port2-1 
port2-2`                                                     | 非必填             |
+| `-o`       | 
检查参数,可选值为`local`(本机检查)、`remote`(远程服务器端口连接性检查)、`all`(本机和远程服务器端口一起检查),默认值为`all` | 
非必填             |
+
+## 5. 使用方法
+
+### 5.1 示例 1:检查全部
+
+```Bash
+health_check.sh/health_check.bat -ips 172.20.31.19 6667 18080,10.0.6.230 10311
+```
+
+输出结果:
+
+```Bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667 18080 ,10.0.6.230:10311  need to be accessible
+Result: 
+The following server ports are inaccessible:
+IP: 10.0.6.230, Ports: 10311 
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.2 示例 2:检查本机
+
+```Bash
+health_check.sh/health_check.bat -o local
+```
+
+输出结果:
+
+```Bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.3 示例 3:检查远程
+
+```Bash
+health_check.sh/health_check.bat -o remote -ips 172.20.31.19 6667 
18080,10.0.6.230 10311
+```
+
+输出结果:
+
+```Bash
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667 18080 ,10.0.6.230:10311  need to be accessible
+Result: 
+The following server ports are inaccessible:
+IP: 10.0.6.230, Ports: 10311
+```
+
+## 6. 常见问题
+
+### 6.1 如何调整内存分配
+
+* 修改`confignode-env.sh`中的MEMORY\_SIZE
+* 修改`datanode-env.sh`中的MEMORY\_SIZE
+
+### 6.2 如何修改最大打开数文件
+
+* 设置系统最大打开文件数为 65535,以避免出现 "太多的打开文件 "的错误。
+
+```Bash
+#查看当前限制
+ulimit -n
+# 临时修改
+ulimit -n 65535
+# 永久修改
+echo "* soft nofile 65535" >>  /etc/security/limits.conf
+echo "* hard nofile 65535" >>  /etc/security/limits.conf
+#退出当前终端会话后查看,预期显示65535
+ulimit -n
+```
+
+### 6.3 如何禁用 Swap 及禁用原因
+
+* 禁用原因:IoTDB 使用 Swap 会导致性能下降,建议禁用。
+* 禁用方式:
+
+```Bash
+echo "vm.swappiness = 0">> /etc/sysctl.conf
+# 一起执行 swapoff -a 和 swapon -a 命令是为了将 swap 里的数据转储回内存,并清空 swap 里的数据。
+# 不可省略 swappiness 设置而只执行 swapoff -a;否则,重启后 swap 会再次自动打开,使得操作失效。
+swapoff -a && swapon -a
+# 在不重启的情况下使配置生效。
+sysctl -p
+# 检查内存分配,预期 swap 为 0
+free -m
+```
diff --git a/src/zh/UserGuide/latest/Tools-System/Health-Check-Tool.md 
b/src/zh/UserGuide/latest/Tools-System/Health-Check-Tool.md
new file mode 100644
index 00000000..cebcd1d9
--- /dev/null
+++ b/src/zh/UserGuide/latest/Tools-System/Health-Check-Tool.md
@@ -0,0 +1,220 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+        http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+# 健康检查工具
+
+## 1. 概述
+
+IoTDB 健康检查工具是一个用于检测 IoTDB 节点运行环境的工具。它可以帮助用户在安装部署数据库前或运行期间检查节点的运行环境,并获取详细的检查结果。
+
+
+## 2. 前置要求
+
+Linux 系统
+
+* `nc`(netcat)工具:默认已安装,用户需要有权限执行。
+* `lsof` 或 `netstat`:至少安装其中一个,用户需要有权限执行。
+
+> 检查相应工具是否已安装:
+>
+> 检查 `nc` 是否安装:`nc -h`
+>
+> 检查 `lsof` 是否安装:`lsof -v`
+
+Windows 系统
+
+* PowerShell:默认已启动。
+
+## 3. 检查项
+
+* 检查节点所在服务器的端口占用情况(windows/linux)
+* 检查当前节点与集群中其他节点的端口连通性(windows/linux)
+* 检查系统中是否安装了 JDK(java\_home)(windows/linux)
+* 检查系统内存分配情况,检查 IoTDB 内存分配情况(windows/linux)
+* 检查目录访问权限(windows/linux)
+* 检查系统最大打开文件数是否满足要求(>= 65535)(仅 linux)
+* 检查系统是否禁用了 swap(windows/linux)
+
+## 4. 使用方法
+
+### 4.1 命令格式
+
+```Bash
+health_check.sh/health_check.bat -ips<远程服务器IP+端口> , -o 
<all(default)/remote/local>
+```
+
+### 4.2 参数说明
+
+| **参数** | **说明**                                                              
                                                                      | 
**是否必填** |
+| ---------------- | 
---------------------------------------------------------------------------------------------------------------------------------------------------
 | -------------------- |
+| `-ips`     | 远程服务器 IP 和端口,支持检查多个服务器,格式如下:`ip port1 port2,ip2 port2-1 
port2-2`                                                     | 非必填             |
+| `-o`       | 
检查参数,可选值为`local`(本机检查)、`remote`(远程服务器端口连接性检查)、`all`(本机和远程服务器端口一起检查),默认值为`all` | 
非必填             |
+
+## 5. 使用方法
+
+### 5.1 示例 1:检查全部
+
+```Bash
+health_check.sh/health_check.bat -ips 172.20.31.19 6667 18080,10.0.6.230 10311
+```
+
+输出结果:
+
+```Bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667 18080 ,10.0.6.230:10311  need to be accessible
+Result: 
+The following server ports are inaccessible:
+IP: 10.0.6.230, Ports: 10311 
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.2 示例 2:检查本机
+
+```Bash
+health_check.sh/health_check.bat -o local
+```
+
+输出结果:
+
+```Bash
+Check: Installation Environment(JDK)
+Requirement: JDK Version >=1.8
+Result: JDK Version 11.0.21
+
+Check: Installation Environment(Memory)
+Requirement: Allocate sufficient memory for IoTDB
+Result: Total Memory 7.8Gi, 2.33 G allocated to IoTDB ConfigNode, 3.88 G 
allocated to IoTDB DataNode
+
+Check: Installation Environment(Directory Access)
+Requirement: IoTDB needs 
data/datanode/data,data/datanode/consensus,data/datanode/system,data/datanode/wal,data/confignode/system,data/confignode/consensus,ext/pipe,ext/udf,ext/trigger
 write permission.
+Result: 
+data/datanode/data has write permission
+data/datanode/consensus has write permission
+data/datanode/system has write permission
+data/datanode/wal has write permission
+data/confignode/system has write permission
+data/confignode/consensus has write permission
+ext/pipe has write permission
+ext/udf has write permission
+ext/trigger has write permission
+
+Check: Network(Local Port)
+Requirement: Port 16668 10730 11742 10750 10760 10710 10720 is not occupied
+Result: 
+Port 16668  10730  11742  10750  10760  10710  10720  is free
+
+Check: System Settings(Maximum Open Files Number)
+Requirement: >= 65535
+Result: 65535
+
+Check: System Settings(Swap)
+Requirement: disabled
+Result: disabled.
+```
+
+### 5.3 示例 3:检查远程
+
+```Bash
+health_check.sh/health_check.bat -o remote -ips 172.20.31.19 6667 
18080,10.0.6.230 10311
+```
+
+输出结果:
+
+```Bash
+Check: Network(Remote Port Connectivity)
+Requirement: 172.20.31.19:6667 18080 ,10.0.6.230:10311  need to be accessible
+Result: 
+The following server ports are inaccessible:
+IP: 10.0.6.230, Ports: 10311
+```
+
+## 6. 常见问题
+
+### 6.1 如何调整内存分配
+
+* 修改`confignode-env.sh`中的MEMORY\_SIZE
+* 修改`datanode-env.sh`中的MEMORY\_SIZE
+
+### 6.2 如何修改最大打开数文件
+
+* 设置系统最大打开文件数为 65535,以避免出现 "太多的打开文件 "的错误。
+
+```Bash
+#查看当前限制
+ulimit -n
+# 临时修改
+ulimit -n 65535
+# 永久修改
+echo "* soft nofile 65535" >>  /etc/security/limits.conf
+echo "* hard nofile 65535" >>  /etc/security/limits.conf
+#退出当前终端会话后查看,预期显示65535
+ulimit -n
+```
+
+### 6.3 如何禁用 Swap 及禁用原因
+
+* 禁用原因:IoTDB 使用 Swap 会导致性能下降,建议禁用。
+* 禁用方式:
+
+```Bash
+echo "vm.swappiness = 0">> /etc/sysctl.conf
+# 一起执行 swapoff -a 和 swapon -a 命令是为了将 swap 里的数据转储回内存,并清空 swap 里的数据。
+# 不可省略 swappiness 设置而只执行 swapoff -a;否则,重启后 swap 会再次自动打开,使得操作失效。
+swapoff -a && swapon -a
+# 在不重启的情况下使配置生效。
+sysctl -p
+# 检查内存分配,预期 swap 为 0
+free -m
+```

Reply via email to