Page 1 sur 1

MySQL : myisam_use_mmap cause des crashs aléatoires (Debian 11)

Publié : ven. août 16, 2024 9:26 am
par le_zed38
Depuis qu'on a activé myisam_use_mmap=1 pour booster nos vieilles tables MyISAM, le serveur crash 1-2x/semaine. Stack trace pointe vers mysqld+0x2a5bc3. Quelqu'un a déjà vu ça ? Version MySQL 5.7.37 sur Debian 11.

Re: MySQL : myisam_use_mmap cause des crashs aléatoires (Debian 11)

Publié : ven. août 16, 2024 9:26 pm
par codeur1974
MyISAM en 2023... Courage ! Plus sérieusement, vérifie tes ulimit -v. Le mmap peut exploser si la table grossit pendant les opérations.

Re: MySQL : myisam_use_mmap cause des crashs aléatoires (Debian 11)

Publié : sam. août 17, 2024 5:26 am
par le_zed38
ulimit est à unlimited (serveur dédié). Et on ne peut pas passer en InnoDB : l'appli legacy utilise des FULLTEXT avec stopwords custom...

Re: MySQL : myisam_use_mmap cause des crashs aléatoires (Debian 11)

Publié : sam. août 17, 2024 11:26 am
par guillaume
J'ai eu exactement ça ! Solution : myisam_use_mmap=1 AVEC myisam_mmap_size=256M (à ajuster). Et obligé de réduire key_buffer_size à 1G max.

Re: MySQL : myisam_use_mmap cause des crashs aléatoires (Debian 11)

Publié : sam. août 17, 2024 1:26 pm
par le_zed38
Merci ! Je teste ça dès ce soir. Question bête : pourquoi key_buffer_size influence le mmap ?

Re: MySQL : myisam_use_mmap cause des crashs aléatoires (Debian 11)

Publié : sam. août 17, 2024 5:26 pm
par guillaume
Parce que MyISAM est une bête bizarre :) En vrai c'est lié à la gestion mémoire interne. Le mmap vient en plus du buffer classique, et si le système overcommit est activé... boom.

Re: MySQL : myisam_use_mmap cause des crashs aléatoires (Debian 11)

Publié : dim. août 18, 2024 2:26 am
par devjunkie.m
Sinon migratez vers MariaDB, leur implémentation MyISAM est plus stable sur ce point précis. Testé en prod depuis 18 mois sans crash.