Personnalisation des paramètres spinlock
Par défaut, le système enregistre un événement spinlock pour chaque 1 000 acquisitions non faisant l’objet d’une demande, et un événement spinlock pour chaque acquisition en attente. La collecte de données Spinlock prend en charge trois paramètres qui vous permettent de personnaliser la collecte de données. Pour définir les paramètres de la collection spinlock, utilisez la commande suivante.
xperf -setspinlocksample [spin_threshold] [acquire_sample_rate] [contention_sample_rate]
Paramètres
spin_threshold
L’instrumentation spinlock permet de tracer les verrous fortement en concurrence. Pour ce faire, définissez un seuil de rotation élevé. Si un verrou tourne moins que ce seuil, aucun événement spinlock n’est journalisé. Par exemple, si cette valeur est 1, un événement spinlock est acquis pour chaque tentative d’acquisition d’un verrou. Si cette valeur est 10, un événement spinlock est enregistré pour chaque dix tentatives d’acquisition d’un verrou. La valeur par défaut est 1.
acquire_sample_rate
Taux d’échantillonnage auquel les événements spinlock sont enregistrés pendant une trace. Par exemple, si cette valeur est 1 000, un événement spinlock est consigné pour chaque 1000 acquisitions d’événements sans collision. La valeur par défaut est 1000.
contention_sample_rate
Vitesse à laquelle les événements spinlock sont consignés lorsque des collisions se produisent. Par exemple, si cette valeur est 100, un événement spinlock est consigné pour chaque 100 collisions spinlock. La valeur par défaut est 1.
Notes
Les paramètres de la collection Spinlock retournent aux valeurs par défaut lors du redémarrage du système. Pour garantir la validité de la collecte des données, interrogez ou définissez toujours les paramètres spinlock avant de commencer la collecte de données d’événement.
Exemple
L’exemple suivant montre comment interroger les valeurs actuelles.
xperf -spinlock
L’exemple suivant définit le seuil de rotation sur 1, le taux d’échantillonnage d’acquisition sur 1000 et le taux d’échantillonnage de contention spinlock sur 100.
xperf -setspinlocksample 1 1000 100
Cette requête retourne le résultat suivant pour les valeurs définies dans l’exemple précédent.
Current Spinlock Spin Threshold = 1
Current Spinlock Acquire Sample Rate = 1000
Current Spinlock Contention Sample Rate = 100