Skip to main content

Historique: Tuto Utilisez la RAM comme disque de travail

Aperçu de cette version: 58



 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.

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 3 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):
Copy to clipboard
mkdir /ramdisk


On change ensuite les droits de ce dossier pour pouvoir y accéder à loisir :
Copy to clipboard
chmod 777 /ramdisk


Et on monte notre "ramdisk" comme ceci :
Copy to clipboard
mount -t tmpfs -o size=3600M tmpfs /ramdisk

en 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.


Paufinage

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 3 (É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 !
À noter qu'il doit être possible d'automatiser cette sauvegarde.


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 3 avec 5Go de RAM!

REMARQUE une architecture 64 bit est nécessaire pour que le système détecte plus de 4 Go de memoire. 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.

REMARQUE2 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.


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.

À essayer d'abord avant de l'utiliser sur des projets importants!

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 root. Si vous êtes sous Ubuntu, il faut taper sudo avant la commande.

- 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 boot 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 ceci :
http://www.gcolpart.com/howto/runlevel.php4
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 :

  1. ! /bin/bash
  2. Le switch case ci-dessous permet de savoir si le système souhaite lancer ou arrêter le script (on le lance au démarrage et l'arrête à la fermeture du système)
case "$1" in
start)
  1. copie le contenu du répertoire de sauvegarde sur le disque dur vers /ramdisk
cp -R /chemin/vers/votre/repertoire/de/sauvegarde/* /ramdisk/
chown -R user:user /ramdisk/
;;

stop)
  1. copie de /ramdisk vers un répertoire de sauvegarde sur le disque dur
cp -R /ramdisk/* /chemin/vers/votre/repertoire/de/sauvegarde/
chown -R user:user /chemin/vers/votre/repertoire/de/sauvegarde/
;;

  • )
  1. On indique ici comment utiliser le script, c'est dans le cas où le script est appelé sans argument ou avec un argument invalide
echo 'Usage: /etc/init.d/repertoire-sauvegarde-ramdisk {start|stop}'
exit 1
;;
esac


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 le chown -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 à quel 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 ca :


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 boot, mais tôt lors de l'extinction.

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


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.


[+]REDIRECT plugin: The redirection to 'Tuto Utilisez la RAM comme disque de travail&structure=Accueil+Tutos' is disabled in preview mode.

Historique

Information Version
Fri 06 Nov 2015 14:47 olinuxx Recherche et remplacement en masse 66
Afficher
Thu 05 Mar 2015 21:45 olinuxx mise en page 65
Afficher
Thu 05 Mar 2015 21:44 olinuxx 64
Afficher
Thu 05 Mar 2015 21:43 olinuxx mise en page 63
Afficher
Thu 05 Mar 2015 21:42 olinuxx mise en page 62
Afficher
Thu 05 Mar 2015 21:41 olinuxx 61
Afficher
Thu 05 Mar 2015 21:40 olinuxx corrections + drapeaux + mise en page 60
Afficher
Thu 05 Mar 2015 21:21 olinuxx suppression du truc jaune moche + meilleur lien interne 59
Afficher
Fri 05 Sep 2014 16:41 olinuxx Recherche et remplacement en masse 58
Afficher
Fri 05 Sep 2014 16:41 olinuxx Recherche et remplacement en masse 57
Afficher
Wed 03 Jul 2013 15:29 pianolivier structure par défaut 56
Afficher
Tue 02 Apr 2013 07:06 utilisateur_anonyme2 55
Afficher
Tue 02 Apr 2013 02:52 utilisateur_anonyme2 54
Afficher
Tue 02 Apr 2013 02:51 utilisateur_anonyme2 53
Afficher
Tue 02 Apr 2013 02:50 utilisateur_anonyme2 52
Afficher
Tue 02 Apr 2013 02:49 utilisateur_anonyme2 51
Afficher
Tue 02 Apr 2013 02:49 utilisateur_anonyme2 50
Afficher
Tue 02 Apr 2013 02:48 utilisateur_anonyme2 49
Afficher
Tue 02 Apr 2013 02:40 utilisateur_anonyme2 48
Afficher
Tue 02 Apr 2013 02:40 utilisateur_anonyme2 47
Afficher
Tue 02 Apr 2013 02:39 utilisateur_anonyme2 46
Afficher
Tue 02 Apr 2013 02:39 utilisateur_anonyme2 45
Afficher
Tue 02 Apr 2013 02:36 utilisateur_anonyme2 44
Afficher
Wed 27 Feb 2013 22:37 utilisateur_anonyme2 43
Afficher
Sat 05 Jan 2013 14:05 minimoineau Nouvelle remarque concernant l'utilisation de plus de 4 Go de ram en 32 bit avec les noyaux PAE 42
Afficher
Sat 19 mai 2012 19:56 pianolivier renommage de la page +alias(Utilisez la RAM comme disque de travail) 41
Afficher
Mon 09 Apr 2012 17:01 pianolivier 40
Afficher
Mon 09 Apr 2012 16:59 pianolivier +BOX 39
Afficher
Wed 21 Mar 2012 19:48 pianolivier +fil d'ariane 38
Afficher
Tue 22 Nov 2011 19:20 pianolivier mise en page 37
Afficher
Sun 24 Oct 2010 16:57 olinuxx (mode stylo rouge) 36
Afficher
Sun 24 Oct 2010 16:48 olinuxx (mode stylo rouge) 35
Afficher
Sun 24 Oct 2010 16:48 olinuxx (mode stylo rouge) 34
Afficher
Sun 24 Oct 2010 16:40 olinuxx (mode stylo rouge) 33
Afficher
Sun 24 Oct 2010 16:39 olinuxx (mode stylo rouge) 32
Afficher
Tue 08 Dec 2009 00:45 olinuxx (mode stylo rouge) 31
Afficher
Mon 23 Nov 2009 19:09 youki 30
Afficher
Mon 23 Nov 2009 19:07 youki un peu de mise en page 29
Afficher
Mon 23 Nov 2009 19:04 youki ajout du script experimental 28
Afficher
Sat 21 Nov 2009 09:40 olinuxx mise en forme 27
Afficher
Thu 29 Oct 2009 19:41 minimoineau Précision pour pouvoir profiter de plus de 4Go de ram 7
Afficher
Thu 22 Oct 2009 01:01 olinuxx (mode stylo rouge sur moi même) 6
Afficher