GnuRAMage - Un outil bash qui transforme votre RAM en turbo pour vos fichiers
Si vous voulez transformer vos gigaoctets de RAM en machine de guerre pour accélérer l’accès à vos fichiers, et bien sachez qu’il y a un développeur qui s’appelle Mateusz Okulanis (alias FPGArtktic) qui vient de pondre sur GitHub un outil qui va changer votre façon d’utiliser des RAM disks.
Son truc s’appelle GnuRAMage, et c’est un outil bash qui fait le pont entre votre “rotating rust” (vos disques durs de paysans) et le “silicon heaven” de votre RAM ultra-rapide.
Ainsi, que vous ayez investi dans 64 Go, 128 Go ou même plusieurs téraoctets de RAM DDR5 qui coûte un rein, vous allez pouvoir stocker vos projets les plus lourds dessus pour avoir des temps d’accès déments MAIS SANS PERDRE vos données quand votre chat décide de débrancher l’alim ou qu’une coupure de courant vous tombe dessus.
Et ça c’est grâce à GnuRAMage qui fonctionne comme un garde du corps pour vos données. D’un côté, il copie intelligemment vos fichiers depuis votre stockage traditionnel vers votre RAM disk pour vous donner cette sensation de vitesse pure qu’on ressent quand on passe d’un HDD mécanique à du NVMe… mais en 10 fois mieux. Et de l’autre côté, il surveille constamment votre RAM disk et synchronise automatiquement tous les changements vers votre stockage persistant.
Ce n’est donc pas juste un simple rsync lancé dans un cron, non non… c’est un système complet avec gestion des erreurs, logs détaillés, patterns d’exclusion (pour pas synchroniser ses node_modules ou ses fichiers .tmp ?), et même un mode dry-run pour les paranos qui veulent tester avant de foncer tête baissée.
Et la config, c’est du bonheur puisque tout se passe dans un simple fichier INI lisible par l’humain plus que normal que vous êtes. Vous définissez votre répertoire source (le lent), votre répertoire RAM disk (le rapide), l’intervalle de synchronisation (par défaut 180 secondes, soit 3 minutes de procrastination), et hop, c’est parti. Vous pouvez même configurer le niveau de logs, si ça vous amuse.
Ce qui rend GnuRAMage vraiment intelligent, c’est surtout sa gestion des interruptions. Quand vous faites un Ctrl+C ou que le système reçoit un signal d’arrêt, il ne plante pas bêtement. Non, d’abord il effectue une dernière synchronisation vers le disque dur pour s’assurer que vous ne perdiez pas vos dernières modifications.
Et niveau perfs, les RAM disks avec tmpfs peuvent atteindre des vitesses de lecture/écriture séquentielle de plusieurs GB/s, avec des débits qui, je cite, “dépassent largement tout SSD NVMe” selon les benchmarks. On passe de 492 000 IOPS (nombre d’opérations de lecture/écriture par secondes) pour une queue depth de 1 (c’est la profondeur de file d’attente), à 2.2M d’IOPS pour une queue depth de 8.
C’est cool, non ?
Votre compilation de projet qui prenait 5 minutes va donc passer à 30 secondes. Et si vous avez une base de données de développement qui rame, et bien là, elle va partir dans l’espace.
Alors je sais que ça vous fait flipper de mettre des trucs en RAM mais Mateusz a pensé à tout, même aux plus paranos, puisqu’il y a dans cet outil une option de vérification par checksum pour les données critiques, afin d’être certain que nos bits sont arrivés intact plutôt que de jouer à la roulette russe. Et pour les environnements de production ou les setups complexes, GnuRAMage peut même générer des scripts standalone pour s’intégrer dans vos systèmes d’automatisation existants.
Pour l’installer et le tester, comme d’hab, vous clonez le dépôt depuis le GitHub officiel de FPGArtktic, vous rendez le script exécutable, vous copiez le fichier de config d’exemple, vous l’éditez selon vos besoins, et c’est parti. Les seules dépendances sont bash (version 4.0 minimum, on est pas des sauvages) et rsync (qui est installé partout de toute façon).
Bah oui parce que plutôt que de réinventer la roue avec un système complexe en C++ ou en Rust, Mateusz a choisi bash et rsync, deux outils éprouvés et universels et ça permet à cet outil de fonctionner partout et d’être facilement maintenable.
Et si votre système commence à manquer de RAM physique, tmpfs peut utiliser le swap (contrairement à ramfs qui vous ferait planter la machine).
Bref, que vous soyez développeur, sysadmin, ou juste quelqu’un qui en a marre d’attendre que ses fichiers se chargent, ce petit outil bash va bien vous aider surtout si vous avez de la RAM inutilisé qui dort dans votre machine.