Skip to Content
DocumentationExploitationAdministration systèmeOptimisation des performances

Optimisation des performances

Cet article couvre les outils de surveillance des performances et les techniques d’optimisation couramment utilisés dans Ubuntu 26.04 pour vous aider à tirer le meilleur parti de votre matériel.

Outils de surveillance du système

htop - Gestionnaire de processus interactif

# Install (usually pre-installed on Ubuntu 26.04) sudo apt install htop # Launch htop

Opérations htop courantes :

RaccourciFonction
F2Installation/Configuration
F3Processus de recherche
F4Processus de filtrage
F5Vue arborescente
F6Trier
F9Envoyer un signal (processus de destruction)
F10Quitter
uFiltrer par utilisateur
MTrier par mémoire
PTrier par processeur
TTrier par heure

Autres outils de surveillance

# top - basic process monitoring top # vmstat - virtual memory statistics vmstat 1 5 # once per second, 5 times # iostat - I/O statistics sudo apt install sysstat iostat -xz 1 # iotop - view per-process I/O sudo apt install iotop sudo iotop # nmon - comprehensive performance monitoring sudo apt install nmon nmon # glances - modern system monitoring sudo apt install glances glances # btop - visually appealing resource monitor sudo apt install btop btop

Affichage des informations sur les ressources système

# CPU information lscpu cat /proc/cpuinfo | grep "model name" | head -1 # Memory information free -h cat /proc/meminfo # Disk usage df -h # Load averages uptime cat /proc/loadavg # Network connections ss -tunapl

Optimisation du processeur

Gestion de la fréquence du processeur

# cpufrequtils is deprecated; use cpupower instead (provided by linux-tools) sudo apt install linux-tools-common linux-tools-generic # View current CPU frequency and governor cpupower frequency-info # View available frequency governors cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors # Set to performance mode sudo cpupower frequency-set -g performance # Set to power-saving mode sudo cpupower frequency-set -g powersave

Sur le bureau, vous pouvez également utiliser l’outil de gestion de l’alimentation de niveau supérieur power-profiles-daemon :

# List available power profiles powerprofilesctl list # Switch to performance mode powerprofilesctl set performance

Priorité du processus

# Use nice to start a process (-20 to 19, lower values = higher priority) nice -n 10 /path/to/task.sh # Change the priority of a running process renice -n 5 -p PID # Set real-time priority sudo chrt -f 50 /path/to/realtime-task # Pin a process to specific CPU cores taskset -c 0,1 /path/to/task.sh

Optimisation de la mémoire

Réglage d’échange

# View current swap usage swapon --show free -h # View current swappiness value (default is 60) cat /proc/sys/vm/swappiness

guide des paramètres d’échange :

ValeurCas d’utilisation
0-10Systèmes de bureau/serveurs avec suffisamment de mémoire, minimisent l’utilisation du swap
30-40Charges de travail générales du serveur
60Valeur par défaut
80-100Systèmes à mémoire limitée, utilisez le swap de manière agressive
# Temporarily change swappiness sudo sysctl vm.swappiness=10 # Permanently change swappiness echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.d/99-performance.conf sudo sysctl --system

Autres paramètres de mémoire

# Cache pressure (default 100; lower values retain more directory and inode caches) echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.d/99-performance.conf # Dirty page writeback policy echo "vm.dirty_ratio=15" | sudo tee -a /etc/sysctl.d/99-performance.conf echo "vm.dirty_background_ratio=5" | sudo tee -a /etc/sysctl.d/99-performance.conf # Apply all changes sudo sysctl --system

Vider le cache

# Free page cache sudo sync; echo 1 | sudo tee /proc/sys/vm/drop_caches # Free dentry and inode cache sudo sync; echo 2 | sudo tee /proc/sys/vm/drop_caches # Free all caches sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

Planificateur d’E/S

Affichage et modification du planificateur d’E/S

# View current I/O scheduler cat /sys/block/sda/queue/scheduler # Example output: [mq-deadline] kyber bfq none # Temporarily change echo "bfq" | sudo tee /sys/block/sda/queue/scheduler

Sélection du planificateur d’E/S

PlanificateurCas d’utilisation
mq-deadlineUsage général, adapté à la plupart des disques durs et SSD
bfqLes systèmes de bureau offrent une meilleure réactivité interactive
kyberSSD NVMe hautes performances
noneAccès direct au SSD NVMe, latence la plus faible

Paramètres persistants du planificateur d’E/S

Créez une règle udev :

sudo nano /etc/udev/rules.d/60-scheduler.rules
# HDD uses mq-deadline ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="mq-deadline" # SSD uses none or mq-deadline ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline" # NVMe uses none ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
sudo udevadm control --reload-rules

Optimisation SSD

Activation de TRIM

TRIM permet au système d’exploitation d’informer le SSD quels blocs de données ne sont plus utilisés, contribuant ainsi à maintenir les performances du SSD et à prolonger sa durée de vie.

# Check if the SSD supports TRIM sudo hdparm -I /dev/sda | grep TRIM # Manually run TRIM sudo fstrim -v / # Check the scheduled TRIM service systemctl status fstrim.timer # Enable scheduled TRIM (runs weekly) sudo systemctl enable --now fstrim.timer

Options d’optimisation SSD dans fstab

# Recommended SSD mount options UUID=xxxx / ext4 defaults,noatime,discard 0 1
OptionDescription
noatimeN’enregistre pas les temps d’accès aux fichiers, réduit les écritures
discardTRIM en temps réel (ou utilisez fstrim.timer à la place)
commit=60Prolonge l’intervalle de validation, réduit la fréquence d’écriture

Réduire les écritures inutiles sur disque

# Mount /tmp to memory # Add to /etc/fstab: # tmpfs /tmp tmpfs defaults,noatime,size=2G 0 0 # Reduce journal writes sudo nano /etc/systemd/journald.conf # Set: Storage=volatile (memory only, lost after reboot) # Or: SystemMaxUse=100M (limit journal size)

Optimisation du réseau

Réglage des paramètres TCP

sudo nano /etc/sysctl.d/99-network.conf
# TCP buffer sizes net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216 # TCP connection optimization net.ipv4.tcp_fastopen=3 net.ipv4.tcp_mtu_probing=1 net.ipv4.tcp_congestion_control=bbr # Connection queue net.core.somaxconn=65535 net.core.netdev_max_backlog=65535 # TIME_WAIT optimization net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=15
# Enable BBR congestion control echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.d/99-network.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.d/99-network.conf sudo sysctl --system # Verify BBR is active sysctl net.ipv4.tcp_congestion_control

Optimisation du système de fichiers

ext4 Optimisation

# View filesystem parameters sudo tune2fs -l /dev/sda2 # Reduce reserved space (default 5%, can be lowered for large partitions) sudo tune2fs -m 1 /dev/sda2

Limites des descripteurs de fichiers

# View current limit ulimit -n # Temporarily increase the limit ulimit -n 65535 # Permanently change sudo nano /etc/security/limits.conf
# /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535

Au niveau du système :

echo "fs.file-max=2097152" | sudo tee -a /etc/sysctl.d/99-performance.conf sudo sysctl --system

Optimisation du démarrage

# Analyze boot time systemd-analyze # View boot time per service systemd-analyze blame # View critical boot path systemd-analyze critical-chain # Disable unnecessary services sudo systemctl disable bluetooth.service # not using Bluetooth sudo systemctl disable cups.service # not using printing sudo systemctl disable ModemManager.service # not using modem # Check boot log for errors journalctl -b -p err

Analyse comparative des performances

# Disk performance test sudo apt install fio # Sequential read test fio --name=seqread --rw=read --bs=1M --size=1G --numjobs=1 --runtime=30 # Random read/write test fio --name=randreadwrite --rw=randrw --bs=4k --size=1G --numjobs=4 --runtime=30 # Simple disk write speed test dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct # Memory bandwidth test sudo apt install sysbench sysbench memory run # CPU benchmark sysbench cpu --threads=$(nproc) run # Network performance test sudo apt install iperf3 # Server: iperf3 -s # Client: iperf3 -c server_ip