Augmenter la taille du pool de mémoire tampon InnoDB


11

J'ai du mal à définir la taille du pool de mémoire tampon et la taille du fichier journal pour MySql InnoDB. Je suis loin d'être un expert MySql mais j'ai lu et il semble que pour changer cela, j'ajoute simplement ces lignes à mon /etc/mysql/my.cnf

# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=2048M
innodb_additional_mem_pool_size=512M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=128M

Le serveur a environ 7 Go de mémoire et exécute également un serveur Web, donc je pense que ces chiffres devraient être un bon point de départ. Cependant, après avoir enregistré et redémarré le serveur, il ne semble pas que les modifications soient entrées en vigueur. J'ai essayé d'exécuter Mysqltuner qui a signalé que le pool de tampons est toujours à 16,0M. Une idée de ce que je fais mal? Faites-moi savoir si vous souhaitez voir plus du fichier de configuration. Merci!


quelle distribution? utilisez-vous les packages de la distribution ou autre chose? Comment démarrez-vous mysql? En bref, qu'avez-vous installé, sur quoi l'avez-vous installé et comment l'avez-vous installé?
navaho

Il s'agit de la pile de lampes par défaut au-dessus du serveur Ubuntu x64
tgrosinger

Il y avait un autre fichier de configuration situé dans / opt / lampp / etc qui, je crois, va fonctionner.
tgrosinger

Réponses:


7

Assurez-vous que ces lignes se trouvent dans la [mysqld]section, c'est-à-dire après [mysqld]mais avant tout autre [section]tel que [mysqldump].


Ils sont dans la bonne section, dans [mysqld] juste avant [mysqldump]
tgrosinger

2

Vérifiez votre journal d'erreurs MySQL pour plus d'informations - probablement situé dans /var/lib/mysql- est-ce aussi un système 32 bits avec le noyau bigmem? Si c'est le cas, vous ne pouvez pas adresser plus de 2 Go pour MySQL.

De plus - vous voudrez confirmer à partir de MySQL lui-même la taille du pool de tampons - 16 Mo semblent un peu éteints, étant donné que la valeur par défaut est 128 Mo. Vous pouvez le confirmer en tapant 'AFFICHER LES VARIABLES COMME' innodb_buffer_pool_size 'dans une session MySQL pour ce serveur. Le résultat est en octets.


Pour une raison quelconque, je ne peux pas entrer dans ce répertoire. Je peux le voir quand je fais ls sur / var / lib mais quand j'essaye d'y entrer, j'obtiens "permission refusée". Si j'essaie d'enregistrer en tant que sudo, il est dit "Aucun fichier ou répertoire". Pensées? Il s'agit d'une installation 64 bits d'Ubuntu Server.
tgrosinger

Vous devriez publier votre my.cnf (/etc/my.cnf ou sur debian probablement /etc/mysql/my.cnf)
Thinice

De plus - vous voudrez confirmer à partir de MySQL lui-même la taille du pool de tampons - 16 Mo semblent un peu éteints, étant donné que la valeur par défaut est 128 Mo. Vous pouvez le confirmer en tapant 'AFFICHER LES VARIABLES COMME' innodb_buffer_pool_size 'dans une session MySQL pour ce serveur. Le résultat est en octets.
Thinice

1
sudo cdne fonctionnera pas car sudo crée un sous-shell avec les bons privilèges et le ferme une fois terminé, vous laissant là où vous avez commencé. Essayez sudo -splutôt.
Ladadadada

Donc, quand j'utilise SHOW VARIABLES LIKE ... cela dit que la taille du pool de tampons est 16777216 qui, je crois, est en fait 16M. Voici mon.cnf : hastebin.com/binaqeforu.vala Merci beaucoup!
tgrosinger

2

Dans mon cas, le problème était innodb_buffer_pool_instances.

Depuis que je réduisais innodb_buffer_pool_size, il est devenu moins d'un 1 Go par instance, donc il a fini par l'arrondir.

Quand j'ai également réduit les instances , cela a finalement changé la taille du pool !


0

Peut-être que vous démarrez mysql avec --no-defaults ou (-no-defaults), ce qui l'empêche de charger une configuration du tout. Il y a aussi --defaults-file (ou -default-file, pas sûr), ce qui lui fait charger une configuration spécifique. Vérifiez également s'il s'agit d'une configuration différente de celle que vous modifiez.

Vous pouvez essayer de commencer par:

--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M

Ou vérifiez les paramètres avec lesquels vous commencez déjà et voyez si l'un d'eux fait qu'il omet la configuration.


Comment puis-je voir comment il démarre dans Ubuntu? Je suis habitué à archiver si je voulais simplement l'ajouter au fichier rc.d, mais je ne vois rien de tel ici.
tgrosinger

Arch utilise BSD Style Init, tandis qu'Ubuntu utilise SysV Init. Il y a donc un fichier dans /etc/init.d pour le démarrer et éventuellement un fichier dans / etc / defaults où les options sont définies. En utilisant quelque chose comme «ps -ef | grep mysql ', vous pouvez voir avec quelles options il fonctionne actuellement.
juwi
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.