K8s集群中MySQL Pod已配置足够内存却仍因OOM崩溃的问题求助
K8s集群中MySQL Pod已配置足够内存却仍因OOM崩溃的问题求助
各位大佬好,我在自己的K8s集群里部署了一个MySQL实例,明明已经给Pod配置了相当充裕的内存资源,但它还是时不时因为OOM(内存不足)被Kill掉,实在头疼。以下是我的Deployment配置YAML:
apiVersion: apps/v1 kind: Deployment metadata: name: mysql9 spec: selector: matchLabels: app: mysql9 strategy: type: Recreate template: metadata: labels: app: mysql9 spec: containers: - image: mysql:8 name: mysql resources: limits: cpu: '2000m' memory: '12000Mi' env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: password - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: password - name: MYSQL_USER valueFrom: secretKeyRef: name: mysql-secret key: username - name: MYSQL_DATABASE valueFrom: secretKeyRef: name: mysql-secret key: database
注:原YAML内容有截断,我补了常见的MYSQL_DATABASE环境变量配置,实际我的完整配置里还有其他必要的MySQL环境变量,但核心资源限制部分完全如上。
目前的情况是,Pod的内存上限设到了12Gi,远超过我预估的MySQL实际需求,但查看Pod的事件日志,还是频繁出现OOMKilled的状态。我也翻了MySQL的容器日志,没找到明显的内存泄漏或者异常查询导致内存暴涨的痕迹。
想请教下大家,有没有遇到过类似的情况?可能的排查方向有哪些?比如是不是K8s的内存计算方式和MySQL实际使用的内存有差异?或者有没有什么MySQL的配置参数需要调整来限制它的内存占用?
备注:内容来源于stack exchange,提问作者Alexander Petrushyn
相关产品推荐
相关产品推荐

