Tous les produits
Search
Centre de documentation

Alibaba Cloud Linux:Optimiser la lecture du fichier /proc/cpuinfo pour obtenir la fréquence CPU

Dernière mise à jour :Aug 12, 2026

Lorsque plusieurs threads ou processus lisent simultanément /proc/cpuinfo pour récupérer les données de fréquence CPU, le système envoie des requêtes d'interruption interprocesseur (IPI) à tous les cœurs CPU. En cas de forte concurrence, ces requêtes s'accumulent et provoquent une tempête d'IPI qui dégrade les performances du système. Alibaba Cloud Linux 3 intègre une optimisation du noyau qui empêche cette tempête d'IPI et réduit les réveils inutiles des CPU lors des lectures de fréquence.

Applicabilité

Attribut Valeur
Système d'exploitation Alibaba Cloud Linux 3
Version du noyau 5.10.134-17.al8 et ultérieures
Architecture x86

Fonctionnement de l'optimisation

Cette optimisation résout le problème de tempête d'IPI grâce à deux mécanismes complémentaires.

Cache partagé avec échange atomique

Plutôt que d'envoyer systématiquement une nouvelle requête IPI, les threads partagent une copie des données de fréquence récemment récupérées. Un échange atomique (atomic_xchg()) vérifie et met à jour les valeurs mises en cache. Ce cache reste valide pendant environ 20 millisecondes. Une fois ce délai écoulé, un nouvel appel à smp_call_function_single() peut récupérer des données actualisées. Ainsi, les threads ne submergent plus le même CPU de requêtes IPI répétées sur un court intervalle.

Gestion NOHZ pour les CPU inactifs

La lecture de /proc/cpuinfo force le réveil des CPU en état Idle par l'envoi de requêtes IPI. Ce processus de réveil peut modifier la fréquence du CPU selon l'algorithme d'ordonnancement dynamique. Grâce à la fonctionnalité NOHZ activée dans Alibaba Cloud Linux 3, les CPU inactifs retournent directement leur fréquence de base sans attendre de requête IPI. Cela élimine les écarts de fréquence induits par la transition de réveil.

Avantages

  • Réduction du trafic IPI : L'optimisation supprime les requêtes IPI inutiles et évite le réveil des CPU inactifs, ce qui diminue la charge de traitement.

  • Stabilité des performances multicœurs : La diminution des interruptions liées à la gestion des CPU, telles que l'ordonnancement des tâches, garantit un débit système plus régulier.

Limitation connue : baisse apparente de la fréquence CPU

Les CPU inactifs retournant leur fréquence de base plutôt que leur fréquence en temps réel, les valeurs affichées dans /proc/cpuinfo pour ces CPU sont inférieures à la fréquence réelle des CPU en état Idle. Il en résulte une « baisse de fréquence » apparente qui ne correspond pas à une diminution réelle des performances.

Pour obtenir des données précises sur la fréquence CPU en temps réel, utilisez l'outil turbostat ou tout autre outil permettant de lire les registres MSR.