Comment surveiller et optimiser l’utilisation de la mémoire sur Ubuntu : guide complet pour les débutants et les utilisateurs intermédiaires

目次

1. Introduction

Ubuntu est largement adopté par les utilisateurs comme une distribution Linux légère et riche en fonctionnalités. Cependant, après de longues périodes d’utilisation, le système peut devenir lent. L’une des causes est l’augmentation de l’utilisation de la mémoire. Cela se remarque particulièrement dans des environnements où plusieurs processus s’exécutent simultanément, comme les tâches de développement ou le traitement de données. Comprendre et gérer correctement l’utilisation de la mémoire est essentiel.

Cet article explique comment vérifier l’utilisation de la mémoire sous Ubuntu, la gérer efficacement et résoudre les problèmes associés. Il couvre tout, des techniques pour débutants aux méthodes intermédiaires, alors n’hésitez pas à l’utiliser comme référence.

Pourquoi la gestion de la mémoire est importante sous Ubuntu

La mémoire est une ressource vitale qui affecte directement les performances du système. Si la mémoire devient insuffisante, les applications peuvent ralentir ou planter. De plus, une utilisation excessive du swap augmente les opérations de lecture/écriture sur le disque, entraînant une baisse notable des performances globales. Ainsi, surveiller l’utilisation de la mémoire aide à garantir un fonctionnement efficace du système.

Objectif de cet article

Cet article couvre les points suivants :

  • Commandes de base pour vérifier l’utilisation de la mémoire
  • Comment visualiser l’utilisation détaillée de la mémoire sur l’ensemble du système et par processus
  • Méthodes pour optimiser et utiliser la mémoire de façon efficace
  • Outils de dépannage et de surveillance à long terme

En comprenant ces concepts, vous pourrez maintenir un environnement de travail Ubuntu plus fluide.

2. Comment vérifier l’utilisation de la mémoire : commandes de base

Ubuntu fournit plusieurs commandes intégrées pour vérifier l’utilisation de la mémoire. Dans cette section, nous expliquerons comment utiliser ces commandes de base de manière claire et adaptée aux débutants.

Commande free

La commande free est un outil fondamental pour vérifier l’utilisation globale de la mémoire du système.

Exemple :

free -m

Options principales :

  • -m : Afficher l’utilisation de la mémoire en mégaoctets
  • -g : Afficher l’utilisation de la mémoire en gigaoctets
  • -h : Format lisible par l’homme (ajustement automatique Mo/Go)

Exemple de sortie :

              total        used        free      shared  buff/cache   available
Mem:           7989        2340         987         432        4661        5016
Swap:          2048          12        2036

Comment lire la sortie :

  • total : Mémoire totale du système
  • used : Mémoire actuellement utilisée
  • free : Mémoire inutilisée
  • buff/cache : Mémoire utilisée pour les tampons et le cache
  • available : Mémoire disponible pour les applications

Cette commande simple et intuitive est la première méthode à essayer.

Commande top

La commande top affiche l’utilisation de la mémoire en temps réel par processus.

Exemple :

top

Exemple de sortie :

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  1 root      20   0  225672   8956   5924 S   0.0  0.1   0:01.23 systemd
1234 user      20   0  135256  12320   8940 S   0.3  0.2   0:00.15 gnome-terminal

Indicateurs clés :

  • PID : Identifiant du processus
  • %MEM : Pourcentage d’utilisation de la mémoire
  • COMMAND : Nom du processus en cours d’exécution

Commande htop

htop est une version améliorée de top avec une interface plus visuelle et conviviale.

Installation :

sudo apt update
sudo apt install htop

Utilisation :

htop

Fonctionnalités :

  • Visualisation de la mémoire en couleur
  • Sélection des processus avec les touches fléchées
  • Filtrage et tri simples

Commande vmstat

La commande vmstat surveille les ressources du système en temps réel.

Exemple :

vmstat 5

Explication :

  • 5 : Met à jour toutes les 5 secondes

Exemple de sortie :

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0     12  98736  43256 467321    0    0     3     5   55   99  2  0 97  0  0

Éléments clés :

  • free : Mémoire libre
  • buff : Mémoire tampon
  • cache : Mémoire cache
  • si/so : Valeurs d’échange entrant/sortant (swap in/out)

Commande ps

La commande ps affiche des informations détaillées sur des processus spécifiques.

Exemple :

ps aux --sort=-%mem

Cela montre les processus triés par utilisation de la mémoire par ordre décroissant.

3. Analyse détaillée de l’utilisation de la mémoire

Ubuntu propose des méthodes pour obtenir des informations plus approfondies sur l’utilisation de la mémoire au-delà des commandes de base. Cette section explique les outils d’analyse de l’utilisation de la mémoire par processus, utiles pour les administrateurs système et les utilisateurs avancés.

Commande pmap

La commande pmap affiche les détails du mappage mémoire d’un processus.

Exemple :

pmap <ProcessID>

Exemple de sortie :

5600:   /usr/bin/python3
000055e45d7a2000   4K r-- /usr/bin/python3.8
000055e45d7a3000 124K r-x /usr/bin/python3.8
...

Lecture de la sortie :

  • La colonne de gauche montre les plages d’adresses mémoire.
  • La colonne de droite montre les détails d’utilisation tels que les bibliothèques partagées.

Vérification de /proc/[PID]/smaps

Le fichier /proc/[PID]/smaps stocke des informations détaillées sur l’utilisation de la mémoire pour chaque processus. Ceci est utile pour le dépannage avancé, y compris la détection de fuites de mémoire.

Exemple :

cat /proc/<ProcessID>/smaps

Principales métriques :

  • Size : Mémoire totale allouée
  • Rss : Mémoire réelle en RAM
  • Pss : Mémoire partagée répartie entre les processus

Vérification de /proc/meminfo

Ce fichier virtuel contient les statistiques de mémoire du système, y compris l’utilisation du swap et du cache.

Exemple :

cat /proc/meminfo

Analyse de l’historique avec sar

La commande sar enregistre et analyse l’historique de l’utilisation des ressources.

sudo apt install sysstat
sar -r

Elle vous permet d’identifier quand des problèmes liés à la mémoire se sont produits.

4. Comment optimiser l’utilisation de la mémoire

Pour maintenir un environnement de travail confortable sur Ubuntu, il est important de gérer et d’optimiser efficacement l’utilisation de la mémoire.

Arrêt des processus inutiles

Les processus inutiles peuvent consommer de la mémoire. Identifiez‑les et arrêtez‑les comme suit :

  1. Vérifier les processus avec top ou htop
  • Localisez les processus consommant beaucoup de mémoire.
  1. Arrêter un processus spécifique
    sudo kill <ProcessID>
    
    sudo kill -9 <ProcessID>
    
  1. Désactiver les services inutiles
    sudo systemctl disable <ServiceName>
    

5. Surveillance et automatisation de la mémoire à long terme

Surveiller régulièrement l’utilisation de la mémoire et comprendre les tendances d’utilisation est essentiel pour maintenir les performances du système. Cette section explique comment surveiller et automatiser le suivi de la mémoire sur de longues périodes sur Ubuntu.

Utilisation d’outils de surveillance

Glances

Glances est un outil de surveillance léger et complet qui affiche des informations en temps réel sur les ressources du système, le rendant adapté à la surveillance de la mémoire à long terme.

Installation :

sudo apt update
sudo apt install glances

Utilisation :

glances

Fonctionnalités :

  • Affiche l’utilisation de la mémoire, du CPU, du disque et du réseau d’un seul coup d’œil
  • Prend en charge une interface web pour la surveillance à distance

Nagios

Nagios est un puissant outil de surveillance d’infrastructure qui peut surveiller l’utilisation de la mémoire ainsi que d’autres ressources et vous alerter lorsqu’un problème survient.

Notes d’installation :
Référez‑vous à la documentation officielle pour les étapes détaillées d’installation.

Principales fonctionnalités :

  • Système d’alerte pour une utilisation anormale de la mémoire
  • Configurations personnalisables pour la surveillance de diverses ressources

Automatiser la surveillance de la mémoire avec des scripts

Surveillance à l’aide d’un script Bash

Vous pouvez utiliser un script Bash simple pour enregistrer l’utilisation de la mémoire à intervalles réguliers.

Script d’exemple :

#!/bin/bash
# Memory usage logging script

LOG_FILE="/var/log/memory_usage.log"
DATE=$(date "+%Y-%m-%d %H:%M:%S")
MEM_INFO=$(free -m)

echo "[$DATE]" >> $LOG_FILE
echo "$MEM_INFO" >> $LOG_FILE
echo "------------------------" >> $LOG_FILE

Comment configurer :

  1. Enregistrez le script sous le nom memory_monitor.sh
  2. Accordez la permission d’exécution
    chmod +x memory_monitor.sh
    
  1. Configurez une exécution périodique avec crontab
    crontab -e
    

Ajoutez la ligne suivante pour l’exécuter toutes les 5 minutes :

*/5 * * * * /path/to/memory_monitor.sh

Vérification des journaux et analyse des tendances

Examinez le fichier journal stocké pour analyser les schémas de consommation de mémoire. Cela vous permet d’identifier les pics récurrents ou les dégradations de performance à des moments précis.

Automatisation des notifications d’alerte

Si l’utilisation de la mémoire dépasse un seuil défini, vous pouvez configurer des notifications automatisées pour résoudre rapidement les problèmes.

Exemple : Script de notification par e‑mail

#!/bin/bash
# Memory monitoring and alert script

THRESHOLD=90
USED_MEMORY=$(free | awk '/^Mem:/ {printf "%.0f", $3/$2 * 100}')

if [ $USED_MEMORY -gt $THRESHOLD ]; then
  echo "Memory usage has reached $USED_MEMORY%!" | mail -s "Memory Alert" user@example.com
fi

Configuration :

  1. Enregistrez le script et accordez la permission d’exécution
  2. Planifiez l’exécution à l’aide de crontab

Stockage de données à long terme et visualisation

En intégrant des outils de surveillance puissants, vous pouvez visualiser graphiquement les métriques de mémoire au fil du temps.

  • Prometheus : Collecte les données d’utilisation de la mémoire sous forme de séries temporelles
  • Grafana : Se connecte à Prometheus pour visualiser les métriques de mémoire avec des tableaux de bord en temps réel

En utilisant ces outils, vous pouvez automatiser le suivi de la mémoire à long terme et identifier les tendances efficacement.

6. FAQ (Foire aux questions)

Cette section répond aux questions courantes concernant la gestion de la mémoire sous Ubuntu, en proposant des solutions pratiques pour les opérations quotidiennes.

Q1 : Que dois‑je vérifier en premier si l’utilisation de la mémoire semble élevée ?

R1 :
Utilisez les commandes suivantes pour examiner l’utilisation de la mémoire au niveau du système et des processus :

  • free -m : Vérifier l’utilisation globale de la mémoire
  • top ou htop : Identifier les processus consommant beaucoup de mémoire

Puis arrêtez les processus inutiles ou videz les caches si nécessaire.

Q2 : L’augmentation de l’utilisation du swap est‑elle un problème ?

R2 :
Pas toujours, mais une utilisation fréquente du swap indique une mémoire physique insuffisante. Pour y remédier :

  1. Vérifiez l’utilisation du swap avec free -m
  2. Envisagez d’augmenter la RAM physique ou d’étendre l’espace swap
  3. Arrêtez les processus gourmands en mémoire ou inutiles

Q3 : Existe‑t‑il des moyens de détecter les fuites de mémoire ?

R3 :
Oui. Utilisez ces outils :

  • valgrind : Détecte les fuites de mémoire dans les applications
  • /proc/<PID>/smaps : Affiche l’utilisation détaillée de la mémoire par processus

Q4 : Comment puis‑je surveiller l’utilisation de la mémoire sur de longues périodes ?

R4 :
Utilisez l’une des options suivantes :

  • Outils de surveillance : Glances ou Nagios
  • Scripts de journalisation : Stocker périodiquement les résultats de free ou vmstat

Q5 : Puis‑je détecter automatiquement une utilisation élevée de la mémoire et recevoir des alertes ?

R5 :
Oui. Utilisez un script pour détecter une utilisation élevée et envoyer des notifications par e‑mail.

#!/bin/bash
THRESHOLD=80
MEMORY_USAGE=$(free | awk '/^Mem:/ {printf "%.0f", $3/$2 * 100}')

if [ $MEMORY_USAGE -gt $THRESHOLD ]; then
  echo "Memory usage has reached $MEMORY_USAGE%!" | mail -s "Memory Alert" user@example.com
fi

Q6 : Le nettoyage du cache comporte‑t‑il des risques ?

R6 :
Vider le cache peut temporairement réduire les performances, le cache aidant à accélérer l’accès aux données fréquemment utilisées. Ne le videz que lorsque la mémoire est faible :

sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

Q7 : Que faire si les applications plantent à cause de problèmes de mémoire ?

R7 :

  1. Identifier et arrêter les processus consommant beaucoup de mémoire
  2. Augmenter la mémoire physique si nécessaire
  3. Réviser les configurations de ressources des applications

Q8 : Puis‑je réinitialiser complètement l’utilisation de la mémoire ?

R8 :
Il n’existe pas de « réinitialisation » directe, mais vous pouvez :

  1. Arrêter les processus et services inutilisés
  2. Vider le cache
  3. Redémarrer le système si nécessaire

7. Conclusion

Cet article offre un aperçu complet de la gestion de la mémoire sous Ubuntu — de la surveillance de base à l’analyse détaillée, en passant par les méthodes d’optimisation et l’automatisation à long terme. Voici un résumé des points clés :

Résumé des concepts clés

  • Utilisez free, top et htop pour vérifier l’utilisation de la mémoire
  • Analysez les détails avec vmstat, pmap et /proc/[PID]/smaps
  • Arrêtez les processus inutiles, gérez le swap et videz les caches si nécessaire
  • Utilisez des outils comme Glances, Nagios, Prometheus et Grafana pour la surveillance automatisée

L’importance de la gestion de la mémoire

Une gestion correcte de la mémoire assure des performances stables et empêche les ralentissements du système, notamment lorsque :

  • Le système devient lent
  • L’utilisation du swap augmente fréquemment
  • Certaines applications consomment une mémoire excessive

Prochaines étapes

Mettez en pratique ce que vous avez appris :

  • Utilisez régulièrement les commandes de base pour examiner l’utilisation de la mémoire
  • Introduisez des outils de surveillance si vous gérez plusieurs serveurs
  • Automatisez les tâches à l’aide de scripts pour améliorer l’efficacité

Réflexions finales

Avec les bonnes connaissances et une stratégie de surveillance, vous pouvez améliorer considérablement la productivité et la stabilité du système dans votre environnement Ubuntu. Utilisez ce guide comme référence pour garder votre système en bon fonctionnement.

侍エンジニア塾