Resumen: Como excelente software de base de datos distribuida de código abierto, TiDB ha recibido cada vez más atención y aplicaciones por parte de los usuarios. Sin embargo, en el proceso de aseguramiento de operación y mantenimiento, también enfrenta islas de operación y mantenimiento, dificultades de delimitación y posicionamiento, y problemas. gastos generales de obtención de datos observables Este artículo resume las mejores prácticas para que los usuarios de TiDB creen observabilidad de pila completa basada en DeepFlow, incluido cómo utilizar la tecnología de observabilidad de alto rendimiento y cero intrusiones de DeepFlow para eliminar los puntos ciegos del seguimiento de enlaces completos. El lado de TiDB y cómo utilizar la tecnología de observabilidad de alto rendimiento y cero intrusiones de DeepFlow para eliminar los puntos ciegos en el lado de TiDB .
01: Desafíos de operación y mantenimiento de bases de datos distribuidas
En la operación y el mantenimiento diarios, los DBA de bases de datos distribuidas suelen enfrentarse a tres desafíos:
- Rendimiento en tiempo real de los datos de observación : dado que el método de instrumentación tradicional traerá pérdidas de rendimiento obvias, el DBA solo habilitará la capacidad de seguimiento distribuido incorporada de TiDB después de que ocurra una excepción comercial, el manejo de fallas solo se puede realizar mediante un análisis posterior y una recurrencia repetida. y posicionamiento pasivo.
- Integralidad de los datos de observación : La operación y el mantenimiento de la base de datos tradicional se basa principalmente en los propios datos de la base de datos, y carece de datos en tiempo real de las aplicaciones del cliente, los recursos del sistema, la lectura y escritura de archivos de la base de datos, el rendimiento de la red del servidor y otras dimensiones, y el entorno circundante está en un Punto ciego de diagnóstico.
- Continuidad de observación y diagnóstico : las herramientas de monitoreo tradicionales tienen separación de datos entre sí. El diagnóstico de fallas a menudo debe transferirse entre diferentes equipos de operación y mantenimiento. El proceso de análisis a menudo requiere cambiar entre múltiples herramientas de monitoreo.
Los problemas anteriores han llevado a la desconexión entre la operación y el mantenimiento de la base de datos y otras operaciones y mantenimiento, formando una isla de operación y mantenimiento. Los riesgos de las operaciones comerciales son difíciles de detectar, las fallas son difíciles de demarcar, los ciclos de recuperación son largos y la comunicación y la colaboración son numerosas. y los conflictos de operación y mantenimiento son numerosos.
DeepFlow proporciona a TiDB capacidades de observación de pila completa, enlace completo y listas para producción a través de múltiples capacidades centrales, como intrusión cero, recopilación de datos de observación de alto rendimiento, acceso abierto a datos de observación y análisis de correlación de datos de observación unificados, lo que ayuda a DBA a desarrollar capacidades completas. -Monitoreo de enlaces, delimitación rápida de fallas, análisis de causa raíz y otras capacidades para mejorar efectivamente la eficiencia de la operación y el mantenimiento de la base de datos distribuida y resolver los puntos débiles de operación y mantenimiento mencionados anteriormente.
02: solución de implementación de observabilidad TiDB
En el plan de práctica de observabilidad de TiDB, implementamos automáticamente DeepFlow Agent en el nodo del clúster empresarial y en el clúster de base de datos distribuida TiDB para recopilar y recopilar datos de observación multidimensionales, los datos de observación estructurados se transmiten a través de la red y se procesan de manera uniforme (etiquetado de datos unificados); , datos asociados unificados y datos de análisis unificados) se almacenan centralmente en el servidor DeepFlow; a través de un diseño funcional que sigue de cerca el escenario de operación y mantenimiento, estos datos brindan capacidades flexibles y multidimensionales de observación y análisis de pila completa, desde macro hasta micro. .
DeepFlow Agent recopila y recopila datos de observación enriquecidos, que incluyen:
- Datos de intrusión cero de eBPF : seguimiento de la cadena de llamadas, indicadores de rendimiento de SQL, registros de llamadas de SQL, indicadores de rendimiento de la red, registros de flujo de red, eventos de lectura y escritura de archivos, rendimiento de la CPU y otros datos de observación
- Datos de instrumentación de OpenTelemetry : datos de seguimiento de la cadena de llamadas dentro de cada componente de TiDB
- Datos de Prometheus Exporter : indicadores del sistema K8s, indicadores de rendimiento TiDB
03: seguimiento de la cadena de llamadas
En la práctica de la observación completa de TiDB por parte de DeepFlow, hemos logrado capacidades de seguimiento de la cadena de llamadas de enlace completo que incluyen aplicaciones front-end, redes intermedias, TiDB-Proxy y TiDB a través de la tecnología eBPF. En comparación con la tecnología APM tradicional, la cadena de llamadas. implementado por DeepFlow Tracking tiene las siguientes características ventajosas:
- Sin puntos ciegos : Elimina los puntos ciegos de seguimiento en TiDB, middleware de puerta de enlace y redes intermedias;
- Alto rendimiento : El seguimiento de alto rendimiento y sin intrusiones logrado a través de la tecnología eBPF crea capacidades de observación y seguimiento sin muestreo listas para la producción para TiDB;
- Recarga en caliente : a través de la función de intercambio en caliente de código de la tecnología eBPF, las capacidades de seguimiento en línea están disponibles en aplicaciones y clústeres TiDB en cualquier momento . Incluso las pequeñas fluctuaciones en el rendimiento se pueden observar continuamente en un nivel detallado para descubrir y eliminar rápidamente los riesgos del sistema.
- Pila de tecnología cruzada : a través de la capacidad de seguimiento de pila completa, se realiza el seguimiento unificado y la colaboración unificada de múltiples pilas de tecnología de operación y mantenimiento, como DBA, desarrollo de bases de datos, operación y mantenimiento de sistemas, y operación y mantenimiento de aplicaciones para determinar rápidamente los límites de fallas y mejorar la eficiencia de la colaboración técnica.
1) Seguimiento de la cadena de llamadas sin puntos ciegos
Podemos responder a esta pregunta a través de un diagrama esquemático simple: ¿Por qué, en comparación con las soluciones de instrumentación tradicionales, la recopilación de intrusión cero de DeepFlow eBPF realmente logra el seguimiento de la cadena de llamadas sin puntos ciegos?
Instrumentación de aplicación
La tecnología APM tradicional rastrea la cadena de llamadas de la aplicación a través de la instrumentación del código de la aplicación. El alcance de la observación se limita al alcance de la aplicación que se puede instrumentar. La capacidad de seguimiento forma un punto ciego de observación en el lado de TiDB. Es imposible determinar rápidamente si TiDB es la fuente del problema.
Instrumentación de aplicaciones + instrumentación TiDB
Para extender la capacidad de seguimiento de la cadena de llamadas de la aplicación a TiDB, enviamos un PR a la comunidad de TiDB para la reparación del código e implementamos la capacidad de seguimiento en el lado de TiDB. Sin embargo, más tarde descubrimos que todavía hay tres problemas con la instrumentación en TiDB:
- La red en el entorno operativo TiDB se encuentra en un punto ciego de seguimiento y no se puede diagnosticar el impacto de la red en el rendimiento de SQL;
- TiDB-Proxy frente a TiDB se encuentra en un punto ciego de seguimiento y no puede diagnosticar el impacto de TiDB-Proxy en el rendimiento de SQL;
- El rendimiento de la respuesta después de la instrumentación TiDB disminuyó significativamente (consulte los datos específicos a continuación) y no se puede utilizar continuamente en un sistema de producción.
Colección de intrusión cero DeepFlow eBPF
La capacidad de seguimiento de la cadena de llamadas sin intrusión creada a través de la tecnología eBPF de DeepFlow elimina los puntos ciegos de seguimiento de TiDB y tiene capacidades de seguimiento completas para las siguientes ubicaciones en cualquier proceso de llamada de aplicación: 1) aplicación front-end 2) TiDB-Proxy 3) TiDB; 4) Red K8.
En este punto, podemos rastrear una determinada respuesta lenta en el gráfico de llamas de seguimiento de la cadena de llamadas de DeepFlow, observar intuitivamente la proporción de contribución de cada posición al retraso de la respuesta y, por lo tanto, determinar rápidamente la ubicación de origen de una determinada respuesta lenta:
Por ejemplo, en la siguiente figura, podemos determinar claramente en una parte de un gráfico de llamas de seguimiento de la cadena de llamadas de DeepFlow que la COM_QUERY COMMIT
llamada MySQL en un determinado proceso de negocios introduce un retraso de 480 ms en el procesamiento del proceso tidb-proxy:
2) Seguimiento de la cadena de llamadas de alto rendimiento
El problema más crítico que obstaculiza la implementación de la observabilidad de TiDB en sistemas de producción reales es el rendimiento de la recopilación de datos de observación.
Descubrimos que cuando se utilizan tecnologías como la instrumentación en la aplicación y la mejora del código de bytes del Agente Java para implementar la recopilación de la cadena de llamadas, pueden provocar un consumo de recursos adicional significativo y difícil de definir, y pueden introducir pérdidas significativas de rendimiento empresarial, lo que lleva a este tipo de Las soluciones técnicas no se pueden implementar en sistemas con requisitos de alta concurrencia, alto rendimiento y alta confiabilidad. Muchas empresas solo pueden habilitar tales capacidades de seguimiento en sistemas de prueba o sistemas de producción no importantes, mientras que los sistemas de producción más importantes solo pueden utilizar muestreo y seguimiento de alta proporción para reducir el impacto negativo en los negocios, en particular, los sistemas de producción centrales en el ámbito financiero. La industria renunciará por completo a las capacidades de seguimiento para garantizar que el rendimiento empresarial no se vea afectado, pero esto conducirá a capacidades de soporte operativo débiles y riesgos de operación y mantenimiento fuera de control.
DeepFlow utiliza la tecnología eBPF para lograr una observabilidad de intrusión cero (código cero), que resuelve muy bien estos problemas. El retraso empresarial (tiempo de respuesta) generalmente solo tiene un impacto de nivel inferior a un milisegundo y el consumo de recursos del agente es predecible y configurable. Gracias a la tecnología Just-in-Time (JIT), la eficiencia de ejecución del código eBPF del Agente DeepFlow puede ser comparable al rendimiento del código nativo del kernel y no afectará el proceso de procesamiento de la aplicación durante el proceso de recopilación, por lo que la aplicación puede Llame al proceso de procesamiento de intrusión cero.
En la práctica de observación de pila completa de TiDB de DeepFlow, probamos y verificamos el diferente rendimiento del rendimiento empresarial del clúster TiDB cuando utilizamos la instrumentación Jaeger y la tecnología de intrusión cero eBPF de DeepFlow para la práctica de observabilidad.
Retraso de respuesta SQL de TiDB durante la recopilación de instrumentación de Jaeger : activamos la función OpenTracing de TiDB y observamos el rendimiento de la respuesta de la ubicación de la instancia de la aplicación (orden svc) al acceder a tiproxy. Podemos ver que el retraso promedio de la respuesta SQL es estable en 300 ~ 400 ms. En algunos casos, el retraso máximo promedio supera los 1,5 segundos .
Retraso de la respuesta SQL de TiDB durante la recopilación de DeepFlow eBPF : utilizamos el Agente DeepFlow para recopilar datos de observación no muestreados en el clúster distribuido de TiDB y observamos el rendimiento de la respuesta de la ubicación de la instancia de la aplicación (orden svc) al acceder a tiproxy. Puede ver la respuesta SQL. El retraso promedio se reduce a 3 ~ 5 ms y el retraso máximo no supera los 38 ms .
A partir de los datos de comparación de rendimiento anteriores, encontramos que la observabilidad de intrusión cero lograda por DeepFlow a través de la tecnología eBPF resuelve los problemas de rendimiento empresarial causados por la solución de instrumentación, de modo que puede construir una solución sin complicaciones y lista para producción para TiDB distribuido. Base de datos del sistema central de producción de TI. Capacidades de muestreo y seguimiento.
3) Seguimiento de la cadena de llamadas con carga en caliente en cualquier momento
Debido a las pérdidas de rendimiento empresarial causadas por medios técnicos como la instrumentación en la aplicación y la mejora del código de bytes del Agente Java, los sistemas de producción centrales importantes básicamente desactivarán las capacidades de seguimiento en las operaciones diarias. Sin embargo, cuando se encuentran fallas o excepciones, se requiere un seguimiento detallado. , pero descubrió que el proceso de inicio de la instrumentación y el Agente Java requiere reiniciar las instancias de la aplicación y las instancias del componente TiDB del sistema de producción central. En este momento, se convierte en una decisión difícil y dolorosa si habilitar la función de seguimiento, lo que finalmente conduce a esto. Estado de funcionamiento y mantenimiento:
- Los fallos menores pasan desapercibidos , dejando el sistema funcionando con peligros ocultos.
- Se realiza una gran inversión para fallas intermedias , el entorno de prueba se prueba repetidamente y la causa raíz se determina por suerte.
- Se hicieron todos los esfuerzos posibles para solucionar las fallas importantes y todo el equipo trabajó 24 horas al día, 7 días a la semana, sin importar el costo, hasta que se restableció el negocio.
La Ley de Hayne nos dice que detrás de cualquier accidente grave hay 29 accidentes menores y 300 peligros potenciales ocultos. El mismo patrón existe en la operación y mantenimiento de los sistemas de TI. Es precisamente debido a las acciones de reinicio necesarias para que se inicien la instrumentación y el Agente Java que una gran cantidad de posibles peligros ocultos y fallas menores en el entorno de producción son difíciles de diagnosticar y localizar. La reubicación de fallas intermedias consume mucha mano de obra. siguen apareciendo fallos importantes.
La observabilidad de intrusión cero de DeepFlow resuelve perfectamente este problema. Cuando necesite habilitar la capacidad de seguimiento de la cadena de llamadas para un sistema de aplicación o TiDB, puede implementar el Agente DeepFlow en cualquier momento con un solo clic para comenzar a rastrear la recopilación de datos. Al implementar el Agente, no necesita invadir el POD de la aplicación ni TiDB. componente POD, ni es necesario reiniciar la aplicación, TiDB o el sistema operativo. El agente puede cargar instantáneamente en el núcleo del sistema operativo y comenzar a recopilar datos de seguimiento en cada ubicación solo a través de la tecnología eBPF del. Sistema operativo Linux. Incluso para sistemas comerciales con una carga muy alta, cuando desee desinstalar la capacidad de seguimiento, puede desactivar el interruptor de recopilación de eBPF del Agente en línea o desinstalar el Agente, y el código de recopilación de datos de seguimiento se puede desinstalar instantáneamente del kernel del sistema operativo . Durante todo este proceso, la aplicación de la capa superior y el programa componente TiDB no tienen conocimiento.
La capacidad de seguimiento de la cadena de llamadas del Agente DeepFlow se puede cargar en caliente en cualquier momento en el kernel del sistema operativo, lo que nos permite rastrear y observar capacidades en línea y fuera de línea en cualquier momento en el sistema de la aplicación y el clúster TiDB, sin preocuparnos por perturbaciones en la aplicación, y para detectar fallas menores y fallas intermedias en cualquier momento. Realice observaciones detalladas para descubrir y eliminar rápidamente los peligros del sistema para evitar fallas importantes.
4) Seguimiento de la cadena de llamadas para una colaboración unificada entre pilas de tecnología
El seguimiento APM de la tecnología de instrumentación tradicional es adecuado para desarrolladores de aplicaciones y desarrolladores de TiDB. La cadena de llamadas refleja más la relación de llamadas a funciones dentro del proceso, lo que es difícil de entender sin experiencia en desarrollo. Por lo tanto, durante el proceso de delimitación de fallas, DBA y otros. Las operaciones deben Los roles dimensionales son de poca ayuda práctica. La plataforma de observabilidad DeepFlow implementa la capacidad de seguimiento de pila completa de cualquier llamada de aplicación desde la aplicación al sistema operativo y la red subyacente, por lo que puede construir operación y mantenimiento de TiDB, desarrollo de TiDB, desarrollo de aplicaciones, operación y mantenimiento de K8 y operación de middleware. y mantenimiento Con las capacidades de colaboración de operación y mantenimiento de pila completa de cada pila de tecnología, podemos obtener información clara sobre el rendimiento de cada enlace de procesamiento en todo el proceso de cualquier llamada de aplicación y determinar rápidamente el límite de falla.
Tome la figura anterior como ejemplo, en la plataforma observable DeepFlow:
- Desarrollo, operación y mantenimiento de aplicaciones comerciales : diagnostique y descubra rápidamente peligros o fallas ocultos en las aplicaciones comerciales a través del retraso de llamadas de los microservicios de aplicaciones comerciales;
- Operación y mantenimiento de K8 : mediante el retraso de llamada de la tarjeta de red entre cada instancia de microservicio, se descubren peligros ocultos o fallas en la plataforma K8;
- Operación y mantenimiento del middleware : diagnostique y descubra rápidamente peligros ocultos o fallas en el middleware a través del retraso de llamada de la ubicación del Proxy TiDB;
- DBA : Utilice el retraso de llamada TiDB recopilado por eBPF para diagnosticar rápidamente peligros ocultos o fallas en el lado TiDB;
- Desarrollo de bases de datos : después de activar los datos de instrumentación OpenTelemetry de TiDB a pedido, los desarrolladores de bases de datos pueden diagnosticar rápidamente peligros ocultos o fallas en funciones internas clave de TiDB.
04: observación integral
Además del seguimiento de la cadena de llamadas, durante la operación y el mantenimiento diarios de TiDB, el panorama empresarial, el rendimiento de la red, el rendimiento de los recursos del sistema, el rendimiento de lectura y escritura de archivos del sistema operativo y el rendimiento de la función de la aplicación son dimensiones que deben observarse y analizarse exhaustivamente para Encuentre rápidamente el problema. La causa raíz es que la práctica de observabilidad debe abrir los silos de múltiples tipos de datos de observación, establecer conexiones entre los datos de observación y diseñar un flujo de operación de observación fluido, de modo que el personal de operación y mantenimiento completo pueda hacerlo de manera eficiente y eficiente. Realice sin problemas el proceso de operación y mantenimiento de observación. Observe los datos completos y encuentre conclusiones en los datos de forma más rápida y sencilla.
En la práctica de observabilidad de TiDB, hemos implementado la recopilación y el análisis unificados de múltiples tipos de datos en la plataforma DeepFlow y, a través de flujos operativos fluidos, podemos acceder de manera eficiente a varios tipos de datos y lograr una gama completa de capacidades de observación, que incluyen:
- Observación panorámica empresarial.
- Observación del rendimiento de la red.
- Rastreo de sentencias SQL
- Observación del rendimiento de los recursos del sistema.
- Observación del rendimiento de lectura y escritura de archivos.
- Observación del rendimiento de funciones (perfiles de CPU)
1) Observación panorámica empresarial
DeepFlow obtiene dinámicamente etiquetas de recursos y etiquetas comerciales a través del acoplamiento en tiempo real con interfaces API nativas de la nube y llama etiquetas de etiquetas de datos para aplicaciones recopiladas en tiempo real, logrando así la capacidad de crear un panorama empresarial que se automatiza y se actualiza dinámicamente con el negocio. .
En la práctica de observabilidad de TiDB basada en DeepFlow, construimos un panorama empresarial de un extremo a otro desde clústeres de aplicaciones nativas de la nube hasta clústeres de bases de datos distribuidas TiDB (como se muestra a continuación):
Al construir una topología panorámica empresarial de clústeres de aplicaciones nativas de la nube y clústeres de bases de datos TiDB, podemos observar la imagen general del sistema empresarial de TI desde una perspectiva macro. Cuando se encuentran anomalías en el rendimiento empresarial local en el panorama empresarial, podemos explorar gradualmente microscópicamente. encuentre rápidamente incógnitas desconocidas.
2) Observación del rendimiento de la red.
La pérdida de paquetes de red y el retraso de la red son a menudo problemas sospechosos en el proceso de diagnóstico de fallas del clúster de la base de datos TiDB. DeepFlow puede determinar rápidamente si una determinada falla comercial de la base de datos distribuida es causada por una falla de la red a través de la observación del rendimiento de la red.
En la observación del rendimiento de la red, podemos observar el rendimiento de la interacción de la red del acceso externo al clúster TiDB y el acceso mutuo de los componentes internos del clúster TiDB a través de los siguientes seis indicadores, y diagnosticar y determinar diferentes tipos de problemas de transmisión de la red:
- Bytes (tasa de rendimiento): observe la presión de rendimiento de la red
- Relación de retransmisión TCP: observe la pérdida de paquetes de red
- Relación de ventana cero de TCP: observación de la congestión de TCP
- Relación entre establecimiento y fallo de la conexión: observe las anomalías en el establecimiento de la conexión TCP
- Retraso promedio en el establecimiento de la conexión TCP: RTT de red observado
- Latencia promedio del sistema TCP/ICMP: observe la velocidad de respuesta del sistema operativo
Ejemplo 1: observe rápidamente el rendimiento de la interacción de red del cliente que accede al portal TiDB
Ejemplo 2: observe rápidamente el rendimiento de la interacción de la red entre los componentes internos de TiDB
3) rastreo de declaraciones SQL
Las declaraciones SQL irrazonables ocuparán una gran cantidad de recursos de CPU y memoria, aumentarán el retraso de respuesta de TiDB y reducirán el rendimiento general de TiDB. Por lo tanto, retroceder rápidamente las declaraciones SQL ineficientes es una parte importante de la operación y el mantenimiento de la base de datos. Las consultas que no utilizan índices, escaneos completos de tablas, consultas demasiado complejas y el uso de funciones o tipos de datos inadecuados son todos tipos de "SQL incorrecto" que requieren retroceder y centrarse en declaraciones SQL.
En la práctica de observabilidad de TiDB, DeepFlow utiliza capacidades de recopilación de omisión de intrusión cero para registrar completamente los detalles de cada declaración SQL, incluidas declaraciones SQL, retrasos de respuesta, tiempos de ocurrencia, nodos de origen, etc., que se pueden recuperar durante la recuperación del registro de llamadas. rastrear la frecuencia de aparición de SQL incorrecto en tiempo real y determinar el origen de SQL.
4) Observación del rendimiento de los recursos del sistema.
La utilización excesiva de CPU y memoria del sistema operativo, o la congestión del rendimiento de la interfaz de red durante el mismo período, puede provocar la aparición de SQL lento. Por lo tanto, para encontrar la causa raíz de los problemas de SQL lento de manera más rápida y precisa, analice rápidamente el TiDB. componentes durante el proceso de diagnóstico de fallas Los indicadores de CPU, memoria y interfaz de red de una instancia son una parte clave para mejorar las capacidades de observación, operación y mantenimiento, y la eficiencia de resolución de problemas de las bases de datos distribuidas.
En la práctica de la observabilidad de TiDB, recopilamos indicadores del sistema a través del Agente Grafana e importamos los datos de manera uniforme a la plataforma de observabilidad DeepFlow. Los datos se marcan, correlacionan y presentan de manera uniforme para lograr la capacidad de observar los datos del indicador POD del componente TiDB. Al descubrir el POD de origen de SQL lento en el seguimiento de la cadena de llamadas, puede ver la curva de cambio de uso de la CPU, la curva de cambio de uso de la memoria y la curva de cambio de rendimiento de la red del POD con un solo clic, y determinar fácilmente el evento de SQL lento a través de los valores del indicador. Durante el período del problema, se correlaciona con el rendimiento de los recursos de la interfaz de red, la memoria y la CPU del sistema.
5) Observación del rendimiento de lectura y escritura de archivos.
El rendimiento de la lectura y escritura de archivos tendrá un impacto significativo en el rendimiento de la respuesta SQL de TiDB. Aunque el uso de recursos de almacenamiento de alto rendimiento puede evitar la posibilidad de una lectura y escritura lenta de archivos tanto como sea posible, todavía es necesario responder dos preguntas con frecuencia durante el proceso. Operación y mantenimiento de TiDB:
- Cuando se produce SQL lento esporádico, ¿cómo determinar si la lectura y escritura lenta esporádica de archivos es la causa principal del problema?
- Cuando se produce alguna lectura o escritura de archivos grandes desconocidos o lecturas y escrituras frecuentes de archivos en el sistema, ¿cómo descubrir el proceso fuente de lectura y escritura de archivos?
DeepFlow realiza una recopilación y observación completa de los eventos de lectura y escritura de archivos del sistema operativo a través de la capacidad eBPF del kernel de Linux y admite múltiples modos de recopilación, como la recopilación completa y la recopilación parcial.
Cuando una aplicación experimenta una respuesta lenta, DeepFlow puede recuperar todos los eventos de lectura y escritura de archivos en el cliente y el servidor durante el período del problema con un solo clic, y bloquear rápidamente los eventos de operación de archivos y los procesos de origen en la lista. Cuando se produce una respuesta SQL lenta, el DBA puede determinar en segundos si hay un evento de IO lento asociado; cuando hay un comportamiento de lectura y escritura de archivos desconocido, la operación y el mantenimiento del sistema pueden bloquear la fuente de IO del archivo en segundos:
6) Observación del rendimiento de la función (perfiles de CPU)
Durante el proceso de solución de problemas de SQL lento, cuando se descubre que la CPU se ha convertido en el cuello de botella del rendimiento empresarial, lo siguiente que debe hacer es analizar la situación de programación de la CPU del POD del componente TiDB y descubrir las funciones activas en el componente TiDB. programa, y luego busque el programa El punto de entrada para la optimización. DeepFlow implementa las capacidades de observación y recopilación de datos de rendimiento de CPU del proceso de aplicación a través de la tecnología eBPF del kernel de Linux. Al analizar el rendimiento de la CPU del proceso de aplicación del componente TiDB, los desarrolladores pueden bloquear fácilmente las funciones del kernel, las funciones de la biblioteca y las funciones de la aplicación. cada programa componente TiDB.
En la práctica de observabilidad de TiDB, utilizamos DeepFlow para analizar el rendimiento de la CPU de los componentes TiDB, PD y TiKV. Entre ellos, en el siguiente gráfico de llama del análisis del rendimiento de la CPU del proceso TiDB, podemos observar claramente que la instrumentación de Jaeger aporta una importante sobrecarga de recursos de CPU al proceso TiDB :
05: resumen de valores
Las buenas capacidades de soporte de operación y mantenimiento son un requisito previo para el funcionamiento estable de la base de datos distribuida TiDB. En esta práctica de observabilidad, DeepFlow utiliza tecnología líder de recopilación de datos sin intrusión eBPF de alto rendimiento, tecnología de seguimiento de cadena de llamadas sin instrumentación y múltiples fuentes. La tecnología de observación unificada de datos crea una solución de observabilidad para la pila completa, el enlace completo, la carga en caliente en cualquier momento y la implementación de producción de TiDB, lo que mejora significativamente las capacidades integrales de operación y mantenimiento de TiDB, ayuda eficientemente al funcionamiento estable de la base de datos TiDB y ayuda a los usuarios a crear un servicio de base de datos más confiable y estable.
06: ¿Qué es DeepFlow?
DeepFlow es un producto de observabilidad desarrollado por Yunshan Network, cuyo objetivo es proporcionar una observabilidad profunda para infraestructuras de nube complejas y aplicaciones nativas de la nube. Basado en eBPF, DeepFlow realiza la recopilación de señales de observación de intrusión cero (código cero), como indicadores de rendimiento de aplicaciones, seguimiento distribuido y análisis de rendimiento continuo, y lo combina con la tecnología de etiqueta inteligente (SmartEncoding) para realizar la correlación Full Stack y Integración de todas las señales de observación. Acceso eficiente. Al utilizar DeepFlow, las aplicaciones nativas de la nube pueden tener automáticamente una observabilidad profunda, eliminando así la pesada carga de la instrumentación continua para los desarrolladores y brindando a los equipos de DevOps/SRE capacidades de monitoreo y diagnóstico desde el código hasta la infraestructura.
Dirección de GitHub: https://github.com/deepflowio/deepflow
Visite la demostración de DeepFlow para experimentar cero instrumentación, cobertura total y observabilidad totalmente relevante.
Decidí renunciar al software industrial de código abierto. Eventos importantes: se lanzó OGG 1.0, Huawei contribuyó con todo el código fuente y se lanzó oficialmente Ubuntu 24.04. El equipo de la Fundación Google Python fue despedido por la "montaña de código de mierda" . ". Se lanzó oficialmente Fedora Linux 40. Una conocida compañía de juegos lanzó Nuevas regulaciones: los obsequios de boda de los empleados no deben exceder los 100.000 yuanes. China Unicom lanza la primera versión china Llama3 8B del mundo del modelo de código abierto. Pinduoduo es sentenciado a compensar 5 millones de yuanes por competencia desleal. Método de entrada en la nube nacional: solo Huawei no tiene problemas de seguridad para cargar datos en la nube.