0
votes

MySQL RAM Utilisation sur la pod par défaut

im essayant d'exécuter une gousse de base MySQL 8 à Kubettes. J'ai fait un déploiement de base sans aucune limite de ressources ou que ce soit. Ce que je remarque que la consommation de mémoire est élevée. J'ai une base de données presque vide (je pense qu'il y a de 100 rangs max avec des données de base) et le POD prend une mémoire de 750 m.

Y a-t-il quelque chose que vous pouvez faire à ce sujet? P>

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


0 commentaires

3 Réponses :


1
votes

Je viens de courir un conteneur de docker avec MySQL et il consomme ~ 400m de RAM avec une base de données vide qui n'est même pas interrogée par une application.

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


3 commentaires

Je vois que, principalement le Performance_Schema, c'est la fois consommé beaucoup de mémoire. Est-il normal de le garder actif? Tout en désactivant le désactivation de 700 m à 200m


Pour autant que je sache, le schéma de performance est utilisé pour la surveillance de sorte que la décision dépend de la question de savoir si vous avez besoin des données de surveillance ou non. Je ne suis pas un dba mysql si je peux me tromper.


En ce qui concerne l'utilisation de Schema de performance, @vkozyrev est juste, c'est totalement facultatif. Il existe même une quantité raisonnable de surveillance des statistiques sans cela. Semble comme une bonne chose à couper.



1
votes

Dans le futur Veuillez ajouter plus d'informations sur votre environnement (local, kubeadm , minikube , cloud ) et scénario. Il serait plus facile de reproduire ou de dépanner.

Je ne dirais pas que 750m RAM est une consommation élevée. Pour le test, j'ai déployé mysql 8.0 sur mon groupe GKE à l'aide de Helm en fonction de Ce graphique . Je n'ai changé que la version d'image MySQL par défaut à 8.0 .

$ Helm Installez SQL Stable / MySQL

MySQL sur mon cluster sans aucune limite , Demandes ou données: xxx

donc si mysql Travaille avec des données réelles, il est normal de consommer plus de ressources.

Je dirais que c'est un comportement normal.

pour les ressources générales Utilisation dans mySQL Vous pouvez vérifier < un href = "https://dev.mysql.com/doc/refman/8.0/fr/memory-use.html" rel = "nOfollow noreferrer"> Comment MySQL utilise la mémoire .

Toutefois, si vous travaillez sur l'environnement local avec certaines ressources limitées, vous devez spécifier limites < / a> dans vos yamls.


0 commentaires

0
votes

Ce que j'ai fait pour réduire la consommation est principalement désactivé le schéma de performance. En outre, j'ai réduit la limite de connexion par défaut pour vous assurer qu'elle ne réserve pas la mémoire pour ceux qui ne sont pas utilisés.

Cela signifie effectivement qu'il peut s'effondrer s'il y a plus d'utilisateurs, mais je suppose que c'est une supposition dans une de ces

  • plus de RAM de cluster ou de ne pas l'exécuter en raison de l'épuisement de la RAM
  • Appuyez sur la limite de connexion maximale

    Une surveillance correcte sur tout va faire le tour


0 commentaires