instalación de prueba openresty-1.15.8.2 llama figura centos7.4

1, la instalación systemtap
hecho, la principal es la instalación de un sondeo de kernel systemtap herramienta. (Después de la carga SystemTap la escritura mediante la traducción de las declaraciones en lenguaje C, compilado en el módulo del núcleo. Módulo, basado en el mecanismo de procesamiento de tiempo para recopilar información sobre el sistema Linux se está ejecutando)

instalar yum yum-utils #
# yum install kernel-devel
# debuginfo-instalar el kernel
# yum install SystemTap
El tercer paso es la instalación falla, a continuación, instalar manualmente el paquete kernel desarrollo y el paquete de depuración:

Visualización del número de versión del kernel

 Descargar el paquete oficial

#wget "http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-($version).rpm"

#wget "http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-common-($version).rpm"

#rpm ivh kernel-debuginfo - (versión $) .rpm

#rpm ivh kernel-debuginfo común - ($ version) .rpm

Después de completar la prueba introduciendo el siguiente comando

#stap -ve 'comienzan sonda {log ( "hola mundo") exit ()}'
Si la instalación es correcta,

 

 

2, 下载 openresty-systemtap-toolkit

#git clon https://github.com/openresty/nginx-systemtap-toolkit.git

Para saber systemtap sólo una herramienta de sondeo del núcleo, no sólo se puede utilizar en openresty en, usted tiene que escribir su propio guión de trabajo enterrar puntos. Pero Chun ha sido proporcionada en openresty-systemtap-toolkit en una serie de secuencias de comandos se puede utilizar directamente, tomamos directamente sobre con el bien, después de todo, no voy a escribir.

3, descargar FlameGraph

#git clon https://github.com/brendangregg/FlameGraph.git
usando lo anterior openresty-systemtap-toolkit Después de estas secuencias de comandos, de hecho, ya podemos obtener la información que necesitamos, pero todavía no es intuitivo, por lo que tenemos que utilizar FlameGraph Figura herramienta de generación de llama para generar imágenes visuales.

4, utilizando el ejemplo de
un monitoreo nginx queremos encontrar un determinado proceso.
# Ps - ef | grep nginx

b.ngx-muestra bt-lua-información de pila de rastreo (esta herramienta se puede ver en el caso de un archivo que corresponde a la línea de la función)
aquí he descargado anteriormente openresty-systemtap-toolkit y FlameGraph añadido las variables de entorno para ir dentro de a. Así introducir comandos directamente en la línea

# NGX-muestra-trabajo-bt -p 12322 --luajit20 -t 20 -u> temp.bt

parámetro de proceso Identificación del -P indica al arrastre, -t es detectar el tiempo, en segundos, -u usuario indica espacio de rastreo, -k representa la salida correspondiente al espacio del núcleo, el resultado de la detección a temp.bt

c. Uso de la corrección-lua-bt obtenido anteriormente archivo en el punto más amigable (ver el correspondiente lua función directa)

temp.bt Lua-BT-FIX> a.bt
D. FlameGraph usando los siguientes dos comandos para convertir el archivo de imagen SVG

a.bt stackcollapse-stap.pl> a.cbt
flamegraph.pl a.cbt> a.svg
continuación a.svg abierta se puede ver las llamas de un plan.

5, etapa en la fosa;

$ ./Ngx-sample-lua-bt -p 12322 --luajit20 -t 5> temp.bt

ADVERTENCIA: no puede encontrar el módulo /usr/local/openresty/luajit/lib/libluajit-5.1.so.2.1.0 debuginfo: No hay información ENANO encontró [hombre advertencia :: debuginfo]

ADVERTENCIA: Bad variable $ contexto sustituidos con literal 0: identificador '$ L' a <input>: 17: 30

[Fuente: lua_states my_pid] = $ L

error semántico: definición de tipo 'TValue' no se encuentra en '/usr/local/openresty/luajit/lib/libluajit-5.1.so.2.1.0': operador '@cast' a: 62: 12

fuente: @cast retorno (TValue, "TValue", "/usr/local/openresty/luajit/lib/libluajit-5.1.so.2.1.0")->fr->tp->ftsz

Fase 2: análisis no. [Hombre error :: PASS2]

Número de mensajes de advertencia similares suprimida: 100.

Vuelva a ejecutar con -v para ver ellos.

La razón es que la nueva versión de openresty habilitado por GC-64 por defecto, y las herramientas son de 32 bits

Solución: Vuelva a compilar e instalar openresty, además de la opción de compilador --sin-luajit-gc64

#mv / usr / local / openresty / usr / local / openresty_bak

#cd / opt

#wget https://openresty.org/download/openresty-1.15.8.2.tar.gz

#tar zxvf openresty-1.15.8.2.tar.gz

#cd openresty-1.15.8.2

# / Configure --prefix = / usr / local / openresty --sin-luajit-with-gc64 pcre-jit --con-stream with-http_v2_module --sin-mail_pop3_module --sin-mail_imap_module. - sin mail_smtp_module-with-with-http_stub_status_module http_realip_module with-with-http_addition_module http_auth_request_module with-with-http_secure_link_module http_random_index_module with-with-http_gzip_static_module http_sub_module with-http_dav_module - con-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-hilos --with-dtrace sondas --con-stream --with-http_ssl_module

#hacer

#make instalar

Si el compilador aparece openssl, pcre que se basan en el error, la instalación de dependencias puede ser re trilogía.

 

Supongo que te gusta

Origin www.cnblogs.com/wuweidong/p/12468401.html
Recomendado
Clasificación