系统集成MySQL容器

容器化的mysql数据如何配置资源如CPU、RAM?

生产环境中MySQL容器的cpu、内存配置原则是什么?对应的worker节点上配置如何规划?显示全部

生产环境中MySQL容器的cpu、内存配置原则是什么?对应的worker节点上配置如何规划?

收起
参与6

返回强哥之神的回答

强哥之神强哥之神架构师&技术经理上汽云计算中心(上海帆一尚行科技有限公司)

首先,在配置资源的时候,我们需要对可压缩资源有一个了解,那就是可压缩资源不会引起容器的自动销毁,不会异常退出。比如CPU这种通过时间片轮转的就是可压缩资源,MEM这种就是不可压缩资源,因为拿到的CPU时间片少了,只是影响算力,但MEM这种,一旦少了就会引起 outofmemory 异常,没法完成一个程序的正常加载,那自然就会引起容器的崩溃而重启。

回到话题,那具体配置多少CPU/MEM,甚至磁盘大小、网络IO,都是根据实际使用来规划的。一个比较好的做法是,分二步走。第一步,先不设置 limit,让他们跑一个星期左右,再来看看他们的CPU/MEM的使用率,这个kubelet的cadvisor 自带metrics数据,只要用 promethues或其他监控工具对接就可以看出来。然后取最高点的 1.25 倍,我觉得就可以的。如果资源富有,就可以设置更高一点。

对于 worker 中的配置,首先要预留一些系统资源给操作系统,还要预留一些资源给 K8S 组件,比如 kubelet 等,只有在保证他们的资源充足时,才不会影响到该 worker 节点上运行的容器的正常运行。这些都有参数进行配置,比如:

systemReserved:
  memory: 1536Mi
  cpu: 1536m
  pid: "1024"
  ephemeral-storage: 1Gi
kubeReserved:
  memory: 1536Mi
  cpu: 1536m
  pid: "1024"
  ephemeral-storage: 1Gi

具体参考 kubelet 参数列表。

互联网服务 · 2020-12-29
浏览1095

回答者

强哥之神
架构师&技术经理上汽云计算中心(上海帆一尚行科技有限公司)
擅长领域: 云计算容器服务器

强哥之神 最近回答过的问题

回答状态

  • 发布时间:2020-12-29
  • 关注会员:2 人
  • 回答浏览:1095
  • X社区推广