Linux : créer un fichier d'échange (swap) pour optimiser un VPS photo

Linux : créer un fichier d’échange (swap) pour optimiser un VPS

De temps en temps, on me demande de configurer des serveurs dédiés ou des VPS. Dernièrement, j’ai travaillé sur un VPS qui n’avait pas de fichier swap et qui finissait par consommer toute la RAM disponible.

Ce tutoriel vous permet de mettre en place un fichier swap sous Ubuntu 16.04 Server.

Le fichier swap

Le moyen le plus simple d’avoir un serveur réactif et de le prémunir contre les erreurs out-of-memory des services est d’allouer un fichier swap.

Le swap est une zone du disque dur spécialement créée pour que le système d’exploitation y garde des données temporaires qu’il ne peut plus stocker dans la RAM.

Cet espace permet donc aux services du serveur de continuer de tourner même lorsque la RAM est épuisée et ne sera utilisé que dans ce cas de figure.

Les informations seront cependant écrites sur le disque beaucoup moins rapidement que via la RAM.

Vérification du swap sur le système

Commençons par vérifier si un fichier de swap est déjà en place :

swapon --show

Aucun résultat : le système n’a pas d’espace réservé pour le fichier d’échange.

On vérifie une nouvelle fois s’il existe un fichier de swap actif:

free -h

Résultat:

                        total        used        free      shared  buff/cache   available
Mem:           3.9G        517M        2.5G         76M        895M        3.0G
Swap:            0B          0B          0B

Pas de swap actif sur notre système, nous allons donc pouvoir en ajouter une.

Vérification de l’espace disponible

Il est très commun de créer une nouvelle partition qui contient le fichier d’échange mais comme il n’est pas toujours possible de changer le schéma de partition, nous allons créer un fichier d’échange qui résidera sur notre partition existante.

Vérifions l’espace disponible :

df -h

Résultat:

Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           396M  3.2M  393M   1% /run
/dev/vda1        59G   13G   45G  22% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           396M     0  396M   0% /run/user/0Langage du code : PHP (php)

Le disque dur se trouve sous /dev dans notre cas.

En ce qui concerne la taille de la partition swap : elle ne doit pas dépasser 4 Go (parce qu’au-delà, c’est inutile) et doit correspondre à peu près à la taille de votre RAM (ou le double de votre RAM suivant votre serveur).

Création du fichier d’échange

Nous allons donc créer un fichier d’échange nommé swapfile, d’une taille de 4 Go, à la racine du système (/).

sudo fallocate -l 4G /swapfile

Par souci de sécurité, ce fichier sera uniquement lisible par l’utilisateur root :

sudo chmod 600 /swapfile

Vérifions les permissions et l’espace réservé :

ls -lh /swapfile

Résultat:

-rw------- 1 root root 4.0G Jan 17 16:31 /swapfile

Lire la suite

La Dispute - King Park photo 1

La Dispute – King Park

La Dispute est un groupe de post-hardcore américain, originaire de Grand Rapids, dans le Michigan. Formé en 2004, les membres principaux sont Jordan Dreyer (chant), Brad Vander Lugt (batterie), Chad Morgan-Sterenberg (guitare) et Adam Vass (basse).

Dreyer n’était pas chanteur et n’avait jamais composé de musique lors de la création de La Dispute mais écrivait déjà à l’époque des poésies et de courtes fictions, ce qui se perçoit dans pas mal de morceaux.

L’origine du nom du groupe La Dispute est issue de la pièce éponyme écrite par le dramaturge français Pierre de Marivaux. En effet, le chanteur du groupe, Jordan Dreyer lut la pièce au lycée et fit de nombreux parallèles entre le travail de Marivaux et la musique qu’il composait à l’époque.

En voici un petit exemple avec King Park:

Lire la suite

BASH : supprimer les fichiers de session PHP obsolètes photo

Nettoyer les fichiers de session PHP obsolètes sous Debian et Ubuntu

Lorsque des milliers de fichiers sess_* occupent les inodes d’un serveur, vérifiez d’abord le service Debian phpsessionclean.timer. Il nettoie automatiquement les sessions PHP expirées selon leur chemin et leur durée de vie. Une suppression manuelle avec find ne doit intervenir qu’après avoir identifié le gestionnaire, le chemin et la valeur session.gc_maxlifetime réellement utilisés par PHP-FPM.

Les sessions PHP stockées sous forme de fichiers sont petites. Pourtant, un serveur peut en accumuler plusieurs centaines de milliers. Le volume occupé reste parfois modeste, mais chaque fichier consomme un inode.

Lorsque tous les inodes d’un système de fichiers sont utilisés, Linux ne peut plus créer de nouveaux fichiers. Le serveur renvoie alors l’erreur No space left on device, même si plusieurs gigaoctets restent disponibles.

Sous Debian et Ubuntu, le paquet php-common fournit normalement un script et un timer systemd chargés de nettoyer ces sessions. Avant d’ajouter une tâche cron personnelle, il faut donc vérifier pourquoi ce mécanisme ne fonctionne plus.

Lire la suite