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
3 Réponses :
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
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.
Dans le futur Veuillez ajouter plus d'informations sur votre environnement (local, Je ne dirais pas que MySQL sur mon cluster sans aucune limite donc si Je dirais que c'est un comportement normal. p> pour les ressources générales Utilisation dans Toutefois, si vous travaillez sur l'environnement local avec certaines ressources limitées, vous devez spécifier limites < / a> dans vos yamls. p> p> kubeadm code>,
minikube code>,
cloud code>) et scénario. Il serait plus facile de reproduire ou de dépanner.
750m code> RAM est une consommation élevée. Pour le test, j'ai déployé
mysql 8.0 code> sur mon groupe GKE à l'aide de
Helm code> en fonction de Ce graphique . Je n'ai changé que la version d'image MySQL par défaut à
8.0 code>. P>
$ Helm Installez SQL Stable / MySQL CODE> P>
code>,
Demandes code> ou données: p>
mysql code > Travaille avec des données réelles, il est normal de consommer plus de ressources. P>
mySQL code> 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 . P>
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. P>
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 p>
Une surveillance correcte sur tout va faire le tour p>