Personalización de parámetros spinlock
De forma predeterminada, el sistema registra un evento de interbloqueo por cada 1000 adquisiciones no contendidas y un evento de interbloqueo para cada adquisición contendida. La recopilación de datos spinlock admite tres parámetros que permiten personalizar la recopilación de datos. Para establecer los parámetros de la colección spinlock, use el siguiente comando.
xperf -setspinlocksample [spin_threshold] [acquire_sample_rate] [contention_sample_rate]
Parámetros
spin_threshold
La instrumentación de bloqueo por subproceso proporciona una capacidad para realizar un seguimiento de bloqueos fuertemente contendidos. Esto se logra estableciendo un umbral de número alto. Si un bloqueo gira menos de este umbral, no se registrará ningún evento de interbloqueo. Por ejemplo, si este valor es 1, se adquiere un evento de interbloqueo para cada intento de adquirir un bloqueo. Si este valor es 10, se registra un evento de bloqueo por cada diez intentos de adquirir un bloqueo. El valor predeterminado es 1.
acquire_sample_rate
Velocidad de muestreo a la que se registran los eventos de interbloqueo durante un seguimiento. Por ejemplo, si este valor es 1000, se registra un evento de interbloqueo para cada 1000 adquisiciones de eventos que no son de colisión. El valor predeterminado es 1000.
contention_sample_rate
Velocidad a la que se registran los eventos de interbloqueo cuando se producen colisiones. Por ejemplo, si este valor es 100, se registra un evento de interbloqueo por cada colisión de interbloqueo de 100. El valor predeterminado es 1.
Comentarios
Los parámetros de la colección Spinlock vuelven a los valores predeterminados cuando se reinicia el sistema. Para garantizar la recopilación de datos válida, consulte siempre o establezca parámetros de interbloqueo antes de iniciar la recopilación de datos de eventos.
Ejemplo
En el ejemplo siguiente se muestra cómo consultar los valores actuales.
xperf -spinlock
En el ejemplo siguiente se establece el umbral de número en 1, la velocidad de muestreo de adquisición en 1000 y la frecuencia de muestreo de contención de interbloqueo en 100.
xperf -setspinlocksample 1 1000 100
Esta consulta devuelve el siguiente resultado para los valores establecidos en el ejemplo anterior.
Current Spinlock Spin Threshold = 1
Current Spinlock Acquire Sample Rate = 1000
Current Spinlock Contention Sample Rate = 100