@@ -4,6 +4,24 @@ title: Performance Tips
4
4
sidebar_label : Performance Tips
5
5
---
6
6
7
+ # 为 chunk 配置更多 cpu 核心
8
+
9
+ 在 chunk 内部,处理磁盘 IO 的组件为 LSM(Local Storage Manager)。 默认情况下,LSM 是以单线程的形态运行,当用户对 IO 延迟和性能上限有更高的要求,并且 k8s worker 节点上有足够的 cpu 资源时,可以考虑开启 LSM 多线程
10
+
11
+ ## 配置 LSM 多线程
12
+ 在 IOMesh Helm Values 文件中, 配置 ` iomesh.chunk.extraEnvs ` 字段
13
+
14
+ ``` yaml
15
+ iomesh :
16
+ chunk :
17
+ extraEnvs :
18
+ LSM_IO_THREAD_NUM : " 2" # 配置 LSM 使用的独立线程数量,取值范围为 0-2,如果为 0 则代表不开启 LSM 多线程
19
+ ` ` `
20
+
21
+ 对于新部署的 IOMesh 集群,修改完毕后可以使用 helm install 进行集群部署。
22
+
23
+ 对于已部署的 IOMesh 集群,修改完毕后可以使用 helm upgrade 对集群进行配置更新,chunk pod 会逐个重启并生效配置。
24
+
7
25
# cpu 核心绑定与独占
8
26
9
27
## 概述
@@ -73,7 +91,7 @@ iomesh:
73
91
74
92
在 grub 配置文件中添加`isolcpus`内核启动参数`GRUB_CMDLINE_LINUX_DEFAULT`,其值标识要隔离的 cpu,配置格式可参考 https://man7.org/linux/man-pages/man7/cpuset.7.html#FORMATS。配置文件路径为 /etc/default/grub
75
93
76
- 默认情况下,IOMesh 需要使用 4 个独占的 cpu 核心(其中 chunk 服务独占 3 cpu,meta 服务独占 1 cpu)。在以下示例中,我们假设系统总共有 16 个 CPU 核心,第 0,1,2,10 号 CPU 核心专用于 IOMesh,在 GRUB_CMDLINE_LINUX_DEFAULT 后追加如下配置
94
+ 默认情况下,IOMesh 需要使用 4 个独占的 cpu 核心(其中 chunk 服务独占 3 cpu,meta 服务独占 1 cpu,如果开启了 chunk lsm 多线程,则 chunk 需要独占的核心数为 `3 + lsm 线程数` )。在以下示例中,我们假设系统总共有 16 个 CPU 核心,第 0,1,2,10 号 CPU 核心专用于 IOMesh,在 GRUB_CMDLINE_LINUX_DEFAULT 后追加如下配置
77
95
78
96
` ` ` config
79
97
GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=0-2,10"
@@ -98,14 +116,12 @@ reboot
98
116
0-2,10
99
117
```
100
118
101
-
102
-
103
119
### 配置 IOMesh 绑定内核隔离的 cpu
104
120
105
121
在 IOMesh Helm values 文件中做如下配置:
106
122
107
123
1 . 将 ` iomesh.cpuExclusiveOptions.cpuExclusivePolicy ` 字段设置为 ` kernelCpuIsolation `
108
- 2 . 在 ` iomesh.cpuExclusiveOptions.exclusiveCpusets ` 字段中配置 chunk 和 meta 服务独占的 cpuset
124
+ 2 . 在 ` iomesh.cpuExclusiveOptions.exclusiveCpusets ` 字段中配置 chunk 和 meta 服务独占的 cpuset,chunk 服务独占 3 cpu,meta 服务独占 1 cpu,如果开启了 chunk lsm 多线程,则 chunk 需要独占的核心数为 ` 3 + lsm 线程数 `
109
125
110
126
``` yaml
111
127
iomesh :
@@ -141,3 +157,9 @@ iomesh:
141
157
# cat /sys/fs/cgroup/cpuset/zbs/others/cpuset.cpus
142
158
2
143
159
` ` `
160
+
161
+ 如果 chunk 开启了 lsm 多线程,通过如下命令验证 lsm 是否使用了独立的 cgroup 配置和核心
162
+ ` ` ` shell
163
+ # cat /sys/fs/cgroup/cpuset/zbs/lsm-io/cpuset.cpus
164
+ 2
165
+ ` ` `
0 commit comments