Table des matières
info
* Le but de la manœuvre : il s'agit d'aller travailler en RAM directement, sans écrire sur le disque dur. Ceci pour gagner en rapidité.
* Date du tutoriel : septembre 2009.
* Fait par : Minimoineau, aidé par Youki.
* Mise en page : Olinuxx.
* Date du tutoriel : septembre 2009.
* Fait par : Minimoineau, aidé par Youki.
* Mise en page : Olinuxx.
Avant propos
Les ordinateurs actuels offrent une quantité de mémoire vive de plus en plus importante. Elle affiche, de plus, des prix de plus en plus attractifs ! L'un des impératifs en MAO étant d'avoir un débit de données constant important, je me suis dit qu'il serait peut-être possible de travailler directement sur la RAM. Petite recherche sur le net, et BINGO ! Notre système d'exploitation préféré permet tout à fait de monter un "lecteur" en RAM grâce à tmpfs ! Alors, si comme moi vous avez un débit trop limité pour vous laisser aller sur Ardour et que votre budget ne vous permet pas de vous offrir un super système RAID, suivez le guide !
Configuration
Allons-y ! Tout d'abord, le support de tmpfs doit être activé dans votre noyau (il l'est dans tous les noyaux récents). On crée un point de montage sur un nouveau dossier (chez moi /ramdisk) : mkdir /ramdisk On change ensuite les droits de ce dossier pour pouvoir y accéder à loisir : chmod 777 /ramdisk Et on monte notre "ramdisk" comme ceci : mount -t tmpfs -o size=3600M tmpfs /ramdisken précisant la taille avec -o size= (ici 3600M pour 3.6Go) |
le petit plusse Notez que la taille est gérée de manière dynamique par le noyau. C'est à dire que si le dossier n'est pas rempli, la RAM reste entièrement disponible pour le système. |
Peaufinage
Cette dernière commande peut être inscrite dans
/etc/rc.local
pour que le "ramdisk" se monte automatiquement au démarrage.Enfin, il suffira de spécifier ce dossier comme chemin pour les fichiers dans Ardour (Édition/Préférences/Chemin/fichiers).
attention
Tout ce qui sera dans ce dossier s'effacera à l'extinction de l'ordinateur ! Pensez bien à sauvegarder sur un vrai disque votre travail !
Script d'automatisation de la sauvegarde des données
Voila la solution simple que j'ai mis en œuvre et qui semble fonctionner. Mais des tests d'autres personnes seraient les bienvenus.
Il y aura peut être de la redite par rapport à ce qui se trouve dans les chapitres précédents. Tout est à taper dans un terminal en super utilisateur.
- Je crée un répertoire nomme
/ramdisk
et j'en change les permissions :mkdir /ramdisk chmod 777 /ramdisk
- J'ajoute le montage de la RAM dans ce répertoire au fichier
/etc/fstab
en y incluant la ligne suivante :tmpfs /ramdisk tmpfs rw,size=2890M 0 0
À la place de size=2890M mettez la valeur que vous voulez, 2890M c'est pour 2.89G de RAM. Notez que la taille est gérée de manière dynamique par le noyau. C'est à dire que si le dossier n'est pas rempli, la RAM reste entièrement disponible pour le système.
Le fichier/etc/fstab
permet de monter des partions automatiquement au démarrage de la machine.
- Je monte le tout :
mount -a
- Je crée un script que je nomme sauvegarde-ramdisk et que je sauve dans
/etc/init.d/
. Ce répertoire contient les scripts qui sont exécutés aux différents runlevels. Voir : http://www.gcolpart.com/howto/runlevel.php4 et http://www.tavuu.net/linux/utilisation-de-update-rcd-sous-debian-ou-comment-lancer-des-scripts-au-demarrage-du-systeme/.
Voici ce que contient ce script :
Bien sur je n'oublie pas de rendre exécutable le script :chmod +x /etc/init.d/sauvegarde-ramdisk
Donc quand ce script est exécuté au démarrage, tout ce qui se trouve dans le répertoire de sauvegarde est copie vers le répertoire/ramdisk/
, donc dans la RAM de l'ordinateur.
Et, vous vous en doutez, le script fait la même chose en sens inverse lors de l'extinction de la machine.
À chaque fois lechown -R user:user
remettra les permissions correctement pour l'utilisateur. Remplacez donc le terme user par votre nom d'utilisateur partout dans le script.
- Ensuite, il faut déterminer à quels runlevels /etc/init.d/sauvegarde-ramdisk s'exécutera ou non et à quelle priorité, pour ça on utilise la commande update-rc.d, j'ai fait ça :
update-rc.d sauvegarde-ramdisk start 99 2 3 4 5 . stop 01 0 1 6
Donc, il s'exécutera en position 99 sur les runlevels 2,3,4 et 5, il s'arrêtera en position 01 sur les runlevels 0, 1 et 6.
Ma logique est qu'il vaut mieux qu'il s'exécute tard lors du démarrage, mais tôt lors de l'extinction.
info
Le script peut être appelé à tout moment par les commandes suivantes : /etc/init.d/sauvegarde-ramdisk start ou invoke-rc.d sauvegarde-ramdisk start et /etc/init.d/sauvegarde-ramdisk stop ou invoke-rc.d sauvegarde-ramdisk stop
info
Il est possible de faciliter la sauvegarde en cours de sessions en créant un lanceur avec la commande gksu invoke-rc.d sauvegarde-ramdisk stop, ou un équivalent si vous n'utilisez pas gksu.
Commentaires
Note de Minimoineau : j'utilise ce petit truc depuis quelque temps sur une Ubuntu Hardy Heron optimisée pour la MAO. Je n'ai pas encore atteint les limites de débit sous Ardour avec 5Go de RAM !
info
Une architecture 64 bit est nécessaire pour que le système détecte plus de 4 Go de mémoire. L'autre solution consiste à activer l'option "highmem" dans un noyau 32 bit (comme sur les noyaux de serveurs), mais je ne l'ai jamais testée.
info
Il est désormais possible avec les noyaux "PAE" d'utiliser plus de 4 Go de RAM en architecture 32 bit ! (ce qui n'était pas le cas lors de la rédaction de cet article...).
À titre indicatif, le débit théorique d'une barrette de DDR2 PC2 6400 (800MHz) est de 6.4Go/s !!!
Plus de problème de débit de données ! La seule limite est la quantité de RAM dont on dispose.
Encore une petite précision (et non des moindres...!) : un autre avantage de l'utilisation du tmpfs est qu'il limite énormément les accès au disque dur. En d'autre termes, il permet d'économiser considérablement les batteries des portables et autres systèmes nomades ! La RAM étant bien évidemment beaucoup moins gourmande en énergie.
[+]