最近发现 master 节点上的组件运行都不正常,最后查到了是磁盘 I/O 性能不行导致 etcd 落盘变慢从而影响了其他组件的运行。我们的 etcd 是运行在虚机机上的,可能有其他的机器 I/O 高影响了 etcd 的机器。
有三个问题问问大家:
1 、你们的 etcd 是运行在和其他 master 节点组件一起部署的吗?
2 、etcd 是运行在虚机上还是物理机?如果是虚机的话会避免和其他虚机部署在同一个物理机吗?
3 、etcd 的数据目录是单独挂盘吗?是机械硬盘还是 SSD 呢?因为我看了 etcd 官网是推荐 etcd 部署在 SSD 上的?
1
suifengdang666 2021-06-11 11:02:34 +08:00
其实很简单,看(资源)钱办事,你的项目有多重要,能拿到多少资源,决定了服务器性能的上限。如果上限已经明确,那就只能从软件层面尽力去优化了。
|
2
zhoudaiyu OP @suifengdang666 硬件资源在协调,软件上用了 etcd 官方推荐的 ionice 调整 etcd 的 io 优先级,从结果来看不是很明显
|
3
huweic 2021-06-11 11:26:36 +08:00
普通虚机,具体隔离性也看做的好不好吧,Master 节点会申请比较高一档的配置,ETCD 直接放在 Master 节点上,单独挂 SSD 给 ETCD 用,然后会禁止调度不跑普通任务
|
4
asilin 2021-06-11 11:35:17 +08:00
如果对可用性要求不高,可以调大"--snapshot-count" 参数的值,让数据尽量不落盘,减少磁盘 IO 。
该值默认为 100000,kubernetes 为了安全起见,减小到了 10000,你可以设置为 100000 以上观察下效果。 |
5
zhoudaiyu OP @asilin 目前没有 SSD 资源了,虚机已经迁移到磁盘 IO 压力小的机器上了,但是还是不好使。您说的这个参数我试试,谢谢啦
|