Microsoft et Linux ne sont plus incompatibles et si l’on en croit le site ZDNET, 40% des sites hébergés sur Azure sont sur Linux. Mais loin des considérations marketing, nous allons aujourd’hui nous concentrer sur une partie technique : ajouter un fichier d’échange sur une VM Linux.

Sur tout système, la mémoire vive physique (RAM) est utilisée pour stocker vos données en cours de traitement. Si celle-ci se trouve être saturée suite à un pic d’activité, votre système d’exploitation peut déplacer temporairement des pages mémoire vers un espace d’échange défini dans votre disque dur afin de libérer des ressources mémoire. Sans cet espace d’échange, votre système peut très vite se bloquer avec des messages d’erreur signifiant une mémoire insuffisante.

Cet espace d’échange peut être soit un fichier, soit une partition dédiée. Dans le cas d’une VM Linux sur Azure, nous allons voir comment paramétrer un fichier d’échange. La première chose à faire est de définir sa taille. Il n’y a pas de règles à ce sujet mais en général on peut suivre les recommandations suivantes :

  • 6 Go de RAM ou plus : Allouez un espace d’échange égal à la taille de votre RAM ;
  • 1 Go de RAM a 4 Go : Allouez un espace d’échange de 1 à 1,5 fois la taille de votre RAM ;
  • Moins de 1 Go de RAM :  Allouez un espace d’échange de 1,5 à 2 fois la taille de votre RAM.

Pour illustrer notre exemple, nous avons créé une image de base A1 (1processeur, 1,75 Go RAM et 30 Go de disque) sur Azure :

Dans notre cas, nous allons donc créer un fichier d’échange de 2,6 Go soit 2688 Mo. Notre VM a été configurée avec la distribution UBUNTU 16.04.3 LTS. Une fois notre Linux déployé et sécurisé, nous pouvons y accéder via ssh. Cette image ne possède pas de fichier d’échange comme le montre le montre la commande « swapon -s » qui ne retourne rien. Pour ajouter notre fichier d’échange, la procédure est la suivante :

  • signez-vous en tant que Root ;
  • éditer le fichier /etc/waagent.conf via nano ou vi et modifier les valeurs suivantes :
    • ResourceDisk.Format=y
    • ResourceDisk.EnableSwap=y
    • ResourceDisk.SwapSizeMB=2688
  • Sauvegarder votre fichier ;
  • Redémarrez le service de WALinuxAgent :
    • service walinuxagent restart
  • Vérifier la présence de votre fichier swap :
    • swapon -s

Vous devriez obtenir le résultat suivant :

Filename Type Size Used Priority
/mnt/swapfile file 2752508 256076 -1

si ce n’est pas le cas, redémarrer simplement votre serveur.

Remarque : La taille du fichier d’échange est spécifiée en mégaoctet. Son emplacement est par défaut « /mnt » qui pointe sur un espace disque temporaire. Son emplacement est défini dans le fichier waagent.conf avec la variable ResourceDisk.MountPoint=/mnt. Il vaut mieux éviter de stocker des données applicatives ou personnelles dans cet espace car tout disparait à chaque redémarrage de votre serveur et il n’y a aucun moyen de récupérer les données, ce qui bien entendu est sans importance pou un fichier swap.

Nous contacter

Ylneo est partenaire et expert dans les solutions Azure et Linux. Nous sommes à votre service pour vous assister dans tous vos projets

Votre nom (obligatoire)

Votre email (obligatoire)

Votre téléphone

Sujet

Votre message

%d blogueurs aiment cette page :