import de donnees avec tmpfs

Import de données avec tmpfs dans MariaDB et MySQL

L’import de données dans MariaDB et MySQL prend plusieurs heures voir jours pour les bases de données relativement volumineuses.
Ce temps d’import est un problème majeur pour les systèmes de productions. Nous allons voir ici une astuce pour fortement diminuer ce temps : import de données avec tmpfs.

L’import de donnée avec tmpfs : la méthode pour accélérer l’import dans MariaDB et MySQL

Cette méthode permet de diviser par deux, voir plus, le temps nécessaire à l’importation des données.

Il faudra tout d’abord disposer d’une grande quantité de mémoire pour permettre l’utilisation d’un volume de stockage de type « tmpfs« .
Ce type de stockage permet d’utiliser la mémoire vive et donc de bénéficier des très grandes performances en IO/s de celle-ci.

L’import d’une base de donnée génère une grande quantité d’entrées/sorties. L’astuce est donc d’utiliser temporairement un volume tmpfs, permettant un très grand nombre d’entrées/sorties, le temps de l’import des bases de données MariaDB puis de revenir à un stockage « standard » pour le fonctionnement normal.

Pour cela, il faut tout d’abord créer et monter un volume tmpfs suffisamment grand pour contenir l’ensemble de la base de donnée, ici 12Gio :

mount -t tmpfs -o size=12g tmpfs /var/lib/mysql.tmpfs

Puis après avoir éteint MariaDB, on copie l’ensemble de l’arborescence MariaDB existante sur ce volume de stockage :

cp -a /var/lib/mysql/* /var/lib/mysql.tmpfs/

On modifie alors la configuration de « mysqld » dans /etc/my.cnf pour utiliser ce nouvel emplacement :

-DataDir=/var/lib/mysql
+DataDir=/var/lib/mysql.tmpfs

On peut alors redémarrer « mysqld » et importer les bases de données avec la méthode habituelle.

Une fois l’importation terminée, il nous reste plus qu’à déplacer les données du volume tmpfs vers l’ancien DataDir.
Pour cela, on éteint « mysqld« , on déplace l’ensemble de la nouvelle l’arborescence MariaDB :

cp -a /var/lib/mysql.tmpfs/* /var/lib/mysql/

Enfin, on remet l’ancienne configuration dans /etc/my.cnf et on redémarre le serveur MariaDB.

Le volume tmpfs pourra alors être démonté.

Pour aller plus loin dans l’import de données avec tmpfs :

2 réflexions au sujet de « Import de données avec tmpfs dans MariaDB et MySQL »

  1. Article fort sympathique, une lecture agréable. Ce blog est vraiment pas mal, et les sujets présents plutôt bons dans l’ensemble, bravo ! Virginie Brossard

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *