Optimizing mysql/mariadb dolibarr database linux with 8Gb memory system

Optimizing mysql/mariadb dolibarr database linux with 8Gb memory system.
for mariadb server

'#'vi /etc/mysql/mariadb.conf.d/50-server.cnf

add these lines:
‹ # ›
tmp_table_size=512M
max_heap_table_size=512M
query_cache_size=512M

‹ # › InnoDB settings
innodb_buffer_pool_size=6G
innodb_log_file_size=512M

‹ # › Other
max-connections=500
innodb_flush_method=O_DIRECT
innodb_read_io_threads=64
innodb_write_io_threads=64
innodb_io_capacity=2000
'#i’nnodb_flush_neighbor_pages = none # MariaDB 5.5
innodb_flush_neighbors=0

Il faut ajouter la variable MAIN_FORUM_DOLIBARR_POLITESSE à Bonjour

Et puis elle est où la question ?

Bonjour y’a pas de question c’est une information.

Bonjour,

Alors pour votre information la valeur de innodb-buffer-pool-size doit être un multiple de innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances et dans votre exemple de configuration vous ne donnez aucune valeur pour ces deux dernières options.

Bonjour,
Alors il faut le spécifier, et mettre quand même des formules de politesse.
Être explicite, cela évite que les autres membres ne se posent des questions.
Donnez aussi le contexte : pourquoi ces informations …
Merci en tout cas pour ce partage.
Même si, pour ma part, je ne comprends pas où voulez en venir. A quoi sert cette information.

1 « J'aime »

oui en effet j’ai amélioré le paramétrage

max_connections = 500
tmp_table_size=512M
max_heap_table_size=512M
query_cache_size=512M

InnoDB settings

query_cache_size=128M
query_cache_type=DEMAND
innodb_buffer_pool_size=6G
innodb_log_file_size=512M

MyISAM tables

key_buffer_size=64K

Other

max-connections=500
innodb_flush_method=O_DIRECT
innodb_read_io_threads=64
innodb_write_io_threads=64
innodb_io_capacity=2000
'#i’nnodb_flush_neighbor_pages = none # MariaDB 5.5
innodb_flush_neighbors=0

Bonjour
oui j’avais pas précisé
De ce que je comprends de la doc Mariadb la valeur de innodb-buffer-pool-size est le maximum possible de innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances (chez moi j’ai laissé innodb_buffer_pool_instances =1)
donc je « joue » sur la valeur de innodb_buffer_pool_chunk_size pour que innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances <= innodb-buffer-pool-size

avec ce paramétrage « c’est le jour et la nuit » en terme de performance sur des requêtes dans la base de données de dolibarr (réponse à une recherche sur liste des prospects ou clients ~ 20 fois plus rapide. (par arpport à une configuration de ces paramètres par defaut.

Et pourquoi cela ?
Pouvez-vous nous expliquer pourquoi vous recommandez toutes ces valeurs que vous proposez ?
Est-ce pour un système de fichiers en particulier (ZFS, BTRFS…) ?

Je trouve ça étrange de mettre seulement 1 pour instance et que ce soit plus rapide.

innodb_buffer_pool_instances =1

C’est ce qui est recommandé sur les systémes avec « peu » de mémoire et c’est la valeur par defaut mariadb .dans la doc mariadb iest indiqué passer à 2 ou 4 si taille memoire systeme « importante ».

Donc possibilité de le modifier . toujours est-il qu’avec les paramètres indiqués c’est le jour et la nuit avec une base mariadb de presque 1G notamment sur les query (recherche dans la base) .

Bonjour @philrou
j’imagine que vous avez du passer pas mal de temps à creuser diverses pistes … mon expérience dans le domaine est qu’il est très délicat de trouver les bon paramètres, en particulier comme nous sommes obligés de relancer le serveur mariadb/mysql à chaque modification il faut ensuite laisser au moins 24h avant de commencer à vérifier/valider les conséquences des modifications apportées.

En effet, parfois un simple restart du serveur semble le rendre super véloce dans les premières heures (puisque buffer vide, cache vide tout se complète avec les données dont nous avons besoins) mais au bout d’un certain temps lorsque tous les utilisateurs bossent et font donc des requêtes très différentes le cache évolue dans son état « stable / définitif » et ce n’est qu’à ce moment là qu’il est possible de vérifier que les nouveaux paramètres apportent des choses …

Bonjour

Il y a des utilitaires pour optimiser comme GitHub - major/MySQLTuner-perl: MySQLTuner is a script written in Perl that will assist you with your MySQL configuration and make recommendations for increased performance and stability. mais comme le dit Éric, il faut attendre quelques heures pour voir le résultat mais aussi pour utiliser l’outil d’optimisation.

Bonne __AFTERNOON__

Fred

Il s’agit de la valeur par défaut pour la version 5.5, à partir de la version 10.0 la valeur par défaut est de 8, et à partir de la version 10.6 cette option de configuration n’existe plus car elle a été supprimée
https://jira.mariadb.org/browse/MDEV-23397

1 « J'aime »