Tous les produits
Search
Centre de documentation

Alibaba Cloud Linux:Interface d'optimisation JBD2

Dernière mise à jour :Aug 12, 2026

Alibaba Cloud Linux fournit deux interfaces noyau, force_copy et stats, pour optimiser les performances de JBD2 sur les systèmes de fichiers ext4. Utilisez force_copy pour réduire la latence de journalisation induite par l'état BH_Shadow, et stats afin de déterminer si JBD2 est à l'origine des problèmes de qualité de service (QoS) du système de fichiers.

Fonctionnement

ext4 est un système de fichiers journalisé très répandu. Le thread noyau JBD2 gère le journal ext4 et constitue une ressource globale pour ce système de fichiers. Lorsque JBD2 accède à une page de cache en état BH_Shadow, il doit attendre sa réécriture sur le disque. Cette attente accroît la latence des E/S et dégrade les performances globales.

L'interface force_copy copie la page de cache au lieu d'attendre la libération de l'état BH_Shadow, réduisant ainsi le temps de blocage de JBD2 lors de l'écriture sur disque.

Versions prises en charge

Distribution

Version minimale du noyau

Alibaba Cloud Linux 2

4.19.81-17.al7

Alibaba Cloud Linux 3

Toutes les versions

Référence des interfaces

force_copy

Propriété

Valeur

Chemin

/proc/fs/jbd2/<device>-8/force_copy

Valeur par défaut

Désactivé (0)

Valeurs valides

1 (activer), 0 (désactiver)

Fonction

Force la copie de la page de cache pour éviter l'attente liée à BH_Shadow

Remplacez <device> par le nom du périphérique de stockage bloc, par exemple nvme0n1.

Important

L'activation de force_copy augmente la consommation mémoire. Vérifiez la mémoire disponible avant d'activer cette option sur des instances aux ressources mémoire limitées.

stats

Propriété

Valeur

Chemin

/proc/fs/jbd2/<device>-8/stats

Fonction

Affiche les statistiques de transaction JBD2 pour diagnostiquer les problèmes de QoS du système de fichiers

Remplacez <device> par le nom du périphérique de stockage bloc, par exemple nvme0n1.

Activer force_copy

Exécutez la commande suivante pour activer force_copy. Remplacez nvme0n1 par le nom de votre périphérique de stockage bloc.

echo 1 > /proc/fs/jbd2/nvme0n1-8/force_copy

Pour désactiver force_copy :

echo 0 > /proc/fs/jbd2/nvme0n1-8/force_copy

Lire la sortie de stats

Exécutez la commande suivante pour consulter les statistiques de transaction JBD2 :

cat /proc/fs/jbd2/nvme0n1-8/stats

Exemple de sortie :

337 336 65536 0 14837 1701504 16 0 20058 5 33082732 605 942 1000 1000

La sortie comprend 15 champs séparés par des espaces. Le tableau suivant décrit chaque champ.

Champ

Position

Description

ID de transaction

1er

Identifiant de la transaction en cours

Transactions demandées

2e

Nombre total de transactions sollicitées

Max transactions en cache

3e

Nombre maximal de transactions mises en cache

Temps d'attente

4e

Durée d'attente de la transaction avant traitement

Latence de requête

5e

Latence associée à la demande de transaction

Temps d'exécution

6e

Durée d'exécution effective de la transaction

Temps de verrouillage

7e

Durée pendant laquelle la transaction est restée verrouillée

Temps de vidage

8e

Durée nécessaire au vidage de la transaction

Temps de journalisation

9e

Temps requis pour enregistrer la transaction dans le journal

Temps moyen de validation

10e

Durée moyenne de validation (commit) de la transaction

Handles

11e

Nombre de handles contenus dans la transaction

Blocs

12e

Nombre de blocs impliqués dans la transaction

Blocs journalisés

13e

Total des blocs consignés pour cette transaction

Constante de temps (Hz)

14e

Constante temporelle du noyau (CONFIG_HZ). Unité : hertz

Constante de temps (ms)

15e

Constante temporelle du noyau exprimée en millisecondes

Les champs 14 et 15 permettent de convertir les valeurs temporelles des ticks vers l'unité souhaitée. Comparez la sortie de stats avant et après l'activation de force_copy afin d'évaluer l'amélioration de latence obtenue sur votre charge de travail.