RamDisk sur OSX

J'ai testé ces derniers jours le RamDisk sur Mac OSX. Le Ramdisk est ni plus ni moins un disque comme tous les autres, à la différence près qu'il ne repose pas sur un support persistant. En effet là ou les volumes reposent habituellement sur un disque mécanique, un disque Flash SSD, ou alors une clé USB, on va ici utiliser le support le plus rapide mais aussi le plus volatile qui soit : la mémoire vive. L'augmentation importante des quantités de mémoire disponibles sur nos système rend cette option intéressante.
Par contre il y a un certain nombre de points auxquels il faut rester vigilant : 
  • En cas de reboot, tout est perdu, il faut veiller à mettre en place des copies régulières des données.
  • Le RamDisk utilise la mémoire qui est paginée sur le disque, donc si le système a subitement besoin de mémoire il peut basculer nos données sur disque avec un impact très lourd sur les performances.
  • Comme tout disque d'OSX, ceux-ci sont cachés par le buffer unifié, avec le risque que la quantité de mémoire allouée au Ramdisk soit nécessaire de nouveau pour le buffer.
Pour créer le RamDisk il suffit de lancer la commande suivante dans un terminal :
     diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://2097152`
2097152 est le nombre de bloc de 512 octets qui sont à allouer sur le RamDisk pour faire un volume de 1 Go (2097152 x 512 = 1Go)

en utilisant la commande vm_stat on peut facilement contrôler la mémoire allouée lors de la création du RamDisk. 
Pour mesurer la performance on peut utiliser : 
time dd if=/dev/zero of=/Volumes/OSX/outputfile bs=1024k count=1024
Les ratios constatés sont de l'ordre de 6 tant en écriture qu'en lecture entre un disque physique et le RamDisk.