¿Cómo obtener el contador de rendimiento `dtlb_load_misses.miss_causes_a_walk` en una máquina virtual?
Estoy tratando de obtener algunos contadores de rendimiento de TLB en una máquina virtual (máquina ESXi) utilizando el comando perf
, pero siempre devuelve cero. Noté que la opción virtualize performance counters
está desactivada en la VM, lo que hace que perf
siempre devuelva cero.
Dado que el proveedor no puede habilitar la opción virtualize performance counters
, ¿cómo puedo obtener el valor dtlb_load_misses.miss_causes_a_walk
en esta VM?
davy.ai
Para obtener
dtlb_load_misses.miss_causes_a_walk
en la máquina virtual sin poder activarvirtualize performance counters
, se pueden probar las siguientes opciones:Utilizar una herramienta alternativa de monitoreo de rendimiento:
perf
podría no ser la única herramienta disponible para el monitoreo de rendimiento en un sistema Linux. Otras herramientas, comosar
,top
,vmstat
o incluso scripts personalizados, podrían utilizarse para monitorear los contadores de rendimiento de TLB. Estas herramientas podrían no proporcionar el mismo nivel de detalle queperf
, pero podrían ser una alternativa viable.Utilizar una plataforma de virtualización diferente: Si la plataforma de virtualización actual (ESXi) no permite habilitar
virtualize performance counters
, otra plataforma, como KVM, podría ser una alternativa viable. KVM permite habilitarvirtualize performance counters
, lo que permitiría queperf
recopile los contadores de rendimiento de TLB.Modificar el código de la aplicación: Si no es posible habilitar
virtualize performance counters
en la máquina virtual o cambiar a una plataforma de virtualización diferente, modificar el código de la aplicación podría ser una opción. Específicamente, se podría modificar el código para recopilar los contadores de rendimiento de TLB a nivel de aplicación, en lugar de depender del sistema operativo o la plataforma de virtualización para recopilar estos contadores. Este enfoque requeriría un profundo conocimiento del código de la aplicación y podría no ser factible para todas las aplicaciones.