首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >默认吊舱上的MySQL内存使用

问默认吊舱上的MySQL内存使用
EN

Stack Overflow用户
提问于 2020-04-21 07:41:40
回答 3查看 1.3K关注 0票数 1

我试着在库伯奈特斯运行一个基本的MySQL 8舱。我在没有任何资源限制的情况下做了基本部署。我注意到内存消耗很高。我有一个几乎是空的数据库(我认为有最多100行的基本数据),而且这个pod占用了750米的内存。

你能做些什么吗?

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: db
  namespace: my-namespace
spec:
  replicas: 1
  selector:
    matchLabels:
      app: db
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: db
    spec:
      containers:
        - name: db
          image: mysql:8.0
          resources:
          env:
            - name: MYSQL_DATABASE
              value: mydb
            - name: MYSQL_USER
              value: myuser
            - name: MYSQL_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: secret
                  key: "DATABASE_PASSWORD"
          ports:
            - containerPort: 3306
              name: transport
              protocol: TCP
          volumeMounts:
            - name: db
              mountPath: /var/lib/mysql
              subPath: mysql
      volumes:
        - name: db
          persistentVolumeClaim:
            claimName: db

最佳皮姆

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-23 17:12:49

为了减少消耗,我所做的主要是禁用性能模式。此外,我还减少了默认连接限制,以确保它不会为那些未被使用的人保留内存。

这确实意味着,如果有更多的用户,它可能会崩溃,但我想这是对其中之一的猜测。

  • 更多的集群ram或由于内存耗尽而无法运行它。
  • 达到最大连接限制

对所有的人进行适当的监控就可以了。

票数 0
EN

Stack Overflow用户

发布于 2020-04-21 08:41:04

我刚刚用MySQL运行了一个码头容器,它消耗了大约400米的内存和一个没有被某些应用程序查询的空数据库。

代码语言:javascript
复制
docker run -itd -e MYSQL_ROOT_PASSWORD=password mysql
docker stats
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
a779ef705921        happy_lumiere       2.22%               373.4MiB / 1.943GiB   18.77%              1.05kB / 0B         0B / 0B             38

根据这一评估,在我看来,7.5亿似乎没有那么多。

您可以查看这些配置最佳MySQL内存使用的最佳实践。

票数 1
EN

Stack Overflow用户

发布于 2020-04-21 12:04:56

今后,请添加更多关于您的环境(本地、kubeadm、minikube、cloud)和场景的信息。这样可以更容易地复制或排除故障。

我不会说750M内存消耗很高。为了进行测试,我使用基于MySQL 8.0的HELM在GKE集群上部署了这张图表。我只将默认的MySql映像版本更改为8.0。

$ helm install sql stable/mysql

MySQL在我的集群上的纯实例,没有任何limits、requests或数据:

代码语言:javascript
复制
$ kubectl top pods
NAME                         CPU(cores)   MEMORY(bytes)
sql-mysql-6c9489d5b9-m8zmh   8m           376Mi

因此,如果MySQL与实际数据一起工作,那么消耗更多资源是正常的。

我会说这是正常行为。

对于在MySql中使用的一般资源,您可以检查MySQL如何使用内存。

但是,如果您在本地环境中使用有限的资源,则应该在YAML中指定限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61338318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档