SYSTEM junto con comandos de cuatro letras (4LW) en Keeper.
Muestreo de asignaciones y vaciado de perfiles de heap
jemalloc, debes iniciar ClickHouse/Keeper con el perfilado habilitado mediante la variable de entorno MALLOC_CONF:
jemalloc muestreará las asignaciones y almacenará la información internamente.
Puede indicarle a jemalloc que vuelque el perfil actual ejecutando:
- ClickHouse
- Keeper
/tmp/jemalloc_clickhouse._pid_._seqnum_.heap, donde _pid_ es el PID de ClickHouse y _seqnum_ es el número de secuencia global del perfil de heap actual.
Para Keeper, el archivo predeterminado es /tmp/jemalloc_keeper._pid_._seqnum_.heap y sigue las mismas reglas.
Se puede definir una ubicación distinta añadiendo la opción prof_prefix a la variable de entorno MALLOC_CONF.
Por ejemplo, si desea generar perfiles en la carpeta /data, donde el prefijo del nombre de archivo será my_current_profile, puede ejecutar ClickHouse/Keeper con la siguiente variable de entorno:
Análisis de perfiles de heap
jemalloc llamada jeprof. Puede instalarse de varias formas:
- Usando el gestor de paquetes del sistema
- Clonando el repositorio de jemalloc y ejecutando
autogen.shdesde la carpeta raíz. Esto le proporcionará el scriptjeprofdentro de la carpetabin
jeprof usa addr2line para generar trazas de pila, lo que puede resultar muy lento.
Si es así, se recomienda instalar una implementación alternativa de la herramienta.jeprof, pueden generarse muchos formatos distintos a partir del perfil de heap.
Se recomienda ejecutar jeprof --help para obtener información sobre su uso y las distintas opciones que ofrece la herramienta.
En general, el comando jeprof se usa así:
base:
Ejemplos
- si quieres generar un archivo de texto con cada procedimiento en una línea:
- si quieres generar un archivo PDF con un grafo de llamadas:
Generación de un flame graph
jeprof permite generar stacks colapsados para crear flame graphs.
Debe usar el argumento --collapsed:
flamegraph.pl:
Controlar el perfilador de asignaciones en tiempo de ejecución
- ClickHouse
- Keeper
- ClickHouse
- Keeper
prof_active, que está activada de forma predeterminada.
Por ejemplo, si no desea muestrear asignaciones durante el inicio, sino solo después, puede activar el perfilador. Puede iniciar ClickHouse/Keeper con la siguiente variable de entorno:
Opciones adicionales para el perfilador
jemalloc dispone de muchas opciones relacionadas con el perfilador. Se pueden controlar modificando la variable de entorno MALLOC_CONF.
Por ejemplo, el intervalo entre las muestras de asignación puede controlarse con lg_prof_sample.
Si desea volcar el perfil de heap cada N bytes, puede habilitarlo con lg_prof_interval.
Se recomienda consultar la página de referencia de jemalloc para ver la lista completa de opciones.
Otros recursos
jemalloc de muchas maneras distintas.
Tabla del sistema asynchronous_metrics
Tabla del sistema jemalloc_bins
bins), agregada a partir de todas las arenas.
Referencia
Prometheus
jemalloc de asynchronous_metrics también se exponen a través del endpoint de Prometheus tanto en ClickHouse como en Keeper.
Referencia
Comando 4LW jmst en Keeper
jmst, que devuelve estadísticas básicas del asignador: