개요: 뛰어난 오픈 소스 분산 데이터베이스 소프트웨어인 TiDB는 사용자로부터 점점 더 많은 관심과 응용을 받고 있습니다. 그러나 운영 및 유지 관리 보증 과정에서 운영 및 유지 관리의 어려움, 경계 및 위치 지정의 어려움, 관찰 가능한 데이터를 얻는 오버헤드 이 문서에서는 DeepFlow의 고성능, 무침입 관찰 기술을 사용하여 전체 링크 추적의 사각지대를 제거하는 방법을 포함하여 TiDB 사용자가 DeepFlow를 기반으로 전체 스택 관찰 가능성을 구축하는 모범 사례를 요약합니다. TiDB 측의 사각지대를 해소하기 위해 DeepFlow의 고성능, 무침입 관측 기술을 활용하는 방법 비즈니스 파노라마, SQL 트랜잭션의 전체 프로세스, 네트워크 성능, 시스템 리소스 성능, 파일을 균일하게 관찰할 수 있습니다 .
01: 분산 데이터베이스의 운영 및 유지 관리 과제
일상적인 운영 및 유지 관리에서 분산 데이터베이스의 DBA는 일반적으로 세 가지 문제에 직면합니다.
- 관찰 데이터의 실시간 성능 : 기존 계측 방법은 명백한 성능 손실을 가져오기 때문에 DBA는 비즈니스 예외가 발생한 후에만 TiDB에 내장된 분산 추적 기능을 활성화할 수 있으며 사후 분석, 반복 재발을 통해서만 수행할 수 있습니다. 및 수동적 위치 지정.
- 관찰 데이터의 포괄성 : 기존 데이터베이스 운영 및 유지 관리는 주로 데이터베이스 자체 데이터에 의존하며 클라이언트 애플리케이션, 시스템 리소스, 데이터베이스 파일 읽기 및 쓰기, 서버 네트워크 성능 및 기타 차원의 실시간 데이터가 부족하며 주변 환경은 진단 사각지대.
- 관찰 및 진단 연속성 : 기존 모니터링 도구에는 데이터가 서로 분리되어 있으며, 분석 프로세스에서 여러 모니터링 도구 간 전환이 필요한 경우가 많습니다.
위의 문제로 인해 데이터베이스 운영 및 유지 관리와 기타 운영 및 유지 관리 간의 단절이 발생하여 운영 및 유지 관리 섬이 형성되었습니다. 비즈니스 운영 위험을 감지하기 어렵고, 결함을 구분하기 어렵고, 복구 주기가 길고, 커뮤니케이션과 협업이 많습니다. , 운영 및 유지 관리 충돌이 많습니다.
DeepFlow는 무침입, 고성능 관찰 데이터 수집, 개방형 관찰 데이터 액세스, 통합 관찰 데이터 상관 분석 등 여러 핵심 기능을 통해 TiDB에 풀 스택, 풀 링크, 생산 준비 관찰 기능을 제공하여 DBA가 전체 구축을 돕습니다. -링크 모니터링, 신속한 결함 파악, 근본 원인 분석 및 기타 기능을 통해 분산 데이터베이스 운영 및 유지 관리의 효율성을 효과적으로 개선하고 위에서 언급한 운영 및 유지 관리 문제를 해결합니다.
02: TiDB 관측성 배포 솔루션
TiDB 관측 가능성 실천 계획에서는 비즈니스 클러스터의 노드와 TiDB 분산 데이터베이스 클러스터에 DeepFlow Agent를 자동으로 배포하여 다차원 관측 데이터를 수집하고, 구조화된 관측 데이터가 네트워크를 통해 전송되고 균일하게 처리됩니다(통합 데이터 라벨링). , 통합 관련 데이터 및 통합 분석 데이터)는 운영 및 유지 관리 시나리오를 밀접하게 따르는 기능 설계를 통해 DeepFlow Server에 중앙에 저장되며, 이러한 데이터는 매크로에서 마이크로까지 유연한 다차원 풀 스택 관찰 및 분석 기능을 제공합니다. .
DeepFlow Agent는 다음을 포함하여 풍부한 관찰 데이터를 수집하고 수집합니다.
- eBPF 무침입 데이터 : 호출 체인 추적, SQL 성능 지표, SQL 호출 로그, 네트워크 성능 지표, 네트워크 흐름 로그, 파일 읽기 및 쓰기 이벤트, CPU 성능 및 기타 관찰 데이터
- OpenTelemetry 계측 데이터 : TiDB의 각 구성 요소 내 호출 체인 추적 데이터
- Prometheus 수출업체 데이터 : K8s 시스템 지표, TiDB 성능 지표
03: 콜체인 추적
DeepFlow의 TiDB 풀스택 관찰을 통해 우리는 eBPF 기술을 통해 프런트 엔드 애플리케이션, 중간 네트워크, TiDB-Proxy 및 TiDB를 포함한 전체 링크 콜 체인 추적 기능을 달성했습니다. 콜 체인. DeepFlow Tracking으로 구현된에는 다음과 같은 장점이 있습니다.
- 사각지대 없음 : TiDB, 게이트웨이 미들웨어 및 중간 네트워크의 추적 사각지대를 제거합니다.
- 고성능 : eBPF 기술을 통해 달성된 고성능, 무침입 추적은 TiDB에 대한 프로덕션 준비 비샘플링 추적 및 관찰 기능을 구축 합니다 .
- 핫 리로딩 : eBPF 기술의 코드 핫 스와핑 기능을 통해 애플리케이션 및 TiDB 클러스터에서 언제든지 온라인 추적 기능을 사용할 수 있습니다 . 작은 성능 지터라도 세부적인 수준에서 지속적으로 관찰하여 시스템 위험을 신속하게 발견하고 제거할 수 있습니다.
- 교차 기술 스택 : 전체 스택 추적 기능을 통해 DBA, 데이터베이스 개발, 시스템 운영 및 유지 관리, 애플리케이션 운영 및 유지 관리 등 여러 운영 및 유지 관리 기술 스택의 통합 추적 및 통합 협업을 실현 하여 오류 경계를 신속하게 파악하고 기술 협업 효율성을 향상시킵니다.
1) 사각지대 없는 콜체인 추적
간단한 도식 다이어그램을 통해 이 질문에 답할 수 있습니다. 기존 계측 솔루션과 비교할 때 DeepFlow eBPF 제로 침입 수집이 실제로 사각지대 없이 호출 체인 추적을 달성하는 이유는 무엇입니까?
애플리케이션 계측
기존 APM 기술은 애플리케이션 코드 계측을 통해 애플리케이션 호출 체인을 추적합니다. 관찰 범위는 계측할 수 있는 애플리케이션 범위로 제한됩니다. 추적 기능은 비즈니스 액세스가 느린 응답을 보이는 경우 관찰 사각지대를 형성합니다. TiDB가 문제의 원인인지 신속하게 판단하는 것은 불가능합니다.
애플리케이션 계측 + TiDB 계측
애플리케이션 호출 체인 추적 기능을 TiDB로 확장하기 위해 우리는 코드 복구를 위해 TiDB 커뮤니티에 PR을 제출 하고 TiDB 측에서 추적 기능을 구현했습니다. 그러나 나중에 TiDB 계측에 여전히 세 가지 문제가 있음을 발견했습니다.
- TiDB 운영 환경의 네트워크는 추적 사각지대에 있으며 네트워크가 SQL 성능에 미치는 영향을 진단할 수 없습니다.
- TiDB 앞의 TiDB-Proxy는 추적 사각지대에 있으며 TiDB-Proxy가 SQL 성능에 미치는 영향을 진단할 수 없습니다.
- TiDB 계측 후 응답 성능이 크게 떨어졌으며(구체적인 데이터는 아래 참조) 생산 시스템에서 지속적으로 사용할 수 없습니다.
DeepFlow eBPF 무침입 수집
DeepFlow의 eBPF 기술을 통해 구축된 무침입 호출 체인 추적 기능은 TiDB의 추적 사각지대를 제거하고 모든 애플리케이션 호출 프로세스에서 다음 위치에 대한 완벽한 추적 기능을 제공합니다. 1) 프런트엔드 애플리케이션 3) TiDB; 4) K8s 네트워크.
이 시점에서 우리는 DeepFlow 콜 체인 추적 플레임 그래프에서 특정 느린 응답을 추적하고, 응답 지연에 대한 각 위치의 기여 비율을 직관적으로 관찰하여 특정 느린 응답의 소스 위치를 신속하게 결정할 수 있습니다.
COM_QUERY COMMIT
예를 들어 다음 그림에서는 특정 비즈니스 프로세스의 MySQL 호출로 인해 tidb-proxy 프로세스 처리 시 480ms 지연이 발생한다는 DeepFlow 호출 체인 추적 플레임 그래프의 일부를 명확하게 확인할 수 있습니다 .
2) 고성능 콜체인 추적
실제 생산 시스템에서 TiDB 관측성 구현을 방해하는 가장 중요한 문제는 관측 데이터 수집 성능입니다.
우리는 애플리케이션 내 계측 및 Java 에이전트 바이트코드 향상과 같은 기술을 사용하여 호출 체인 수집을 구현하는 경우 상당한 정의하기 어려운 추가 리소스 소비를 야기할 수 있으며 상당한 비즈니스 성능 손실을 초래할 수 있음을 발견했습니다. 높은 동시성, 고성능 및 높은 신뢰성 요구 사항이 있는 시스템에서는 기술 솔루션을 구현할 수 없습니다. 많은 회사에서는 테스트 시스템이나 중요하지 않은 생산 시스템에서만 이러한 추적 기능을 활성화할 수 있는 반면, 더 중요한 생산 시스템에서는 특히 금융 부문의 핵심 생산 시스템에 대한 부정적인 영향을 줄이기 위해 높은 비율의 샘플링 및 추적만 사용할 수 있습니다. 업계는 비즈니스 성과에 영향을 미치지 않도록 추적 기능을 완전히 포기할 것이지만 이로 인해 운영 지원 기능이 약해지고 통제할 수 없는 운영 및 유지 관리 위험이 발생합니다.
DeepFlow는 eBPF 기술을 사용하여 이러한 문제를 매우 잘 해결하는 제로 침입(Zero Code) 관찰성을 달성합니다. 비즈니스 지연(응답 시간)은 일반적으로 밀리초 미만 수준의 영향만 가지며 에이전트의 리소스 소비는 예측 가능하고 구성 가능합니다. JIT(Just-in-Time) 기술 덕분에 DeepFlow Agent eBPF 코드의 실행 효율성은 커널 네이티브 코드의 성능과 비슷할 수 있으며 수집 프로세스 중에 애플리케이션의 처리 프로세스에 영향을 미치지 않습니다. 침입 제로 처리 프로세스를 호출합니다.
DeepFlow의 TiDB 풀 스택 관찰 사례에서 우리는 관찰 가능성 사례를 위해 Jaeger 계측을 사용하고 DeepFlow의 eBPF 제로 침입 기술을 사용할 때 TiDB 클러스터의 비즈니스 성능에 대한 다양한 성능을 테스트하고 검증했습니다.
Jaeger 계측 수집 중 TiDB SQL 응답 지연 : TiDB의 OpenTracing 기능을 켜고 tiproxy에 액세스하는 애플리케이션 인스턴스 위치(svc-order)의 응답 성능을 관찰한 결과 평균 SQL 응답 지연이 300~400ms 로 안정적인 것을 확인할 수 있습니다 . 어떤 경우에는 평균 최대 지연이 1.5s 를 초과합니다 .
DeepFlow eBPF 수집 중 TiDB SQL 응답 지연 : DeepFlow Agent를 사용하여 TiDB 분산 클러스터에서 샘플링되지 않은 관찰 데이터를 수집하고, tiproxy에 액세스할 때 애플리케이션 인스턴스 위치(svc-order)의 응답 성능을 관찰합니다. 평균 지연은 3~5ms 로 줄어들고 최대 지연은 38ms를 초과하지 않습니다 .
위의 성능 비교 데이터에서 우리는 eBPF 기술을 통해 DeepFlow가 달성한 무침입 관측 가능성이 계측 솔루션으로 인해 발생하는 비즈니스 성능 문제를 해결하여 배포된 TiDB를 위한 프로덕션 준비가 된 번거로움 없는 솔루션을 구축할 수 있음을 확인했습니다. 핵심 IT 생산 시스템의 데이터베이스 샘플링 및 추적 관찰 기능.
3) 언제든지 핫 로딩을 통한 콜 체인 추적
애플리케이션 내 계측 및 Java 에이전트 바이트 코드 향상과 같은 기술적 수단으로 인한 비즈니스 성능 손실로 인해 중요한 핵심 생산 시스템은 기본적으로 일상 작업에서 추적 기능을 비활성화합니다. 그러나 오류나 예외가 발생하는 경우 세분화된 추적이 필요합니다. , 그러나 계측 및 Java 에이전트의 시작 프로세스에는 핵심 프로덕션 시스템의 애플리케이션 인스턴스 및 TiDB 구성 요소 인스턴스를 다시 시작해야 한다는 사실을 발견했습니다. 이때 추적 기능을 활성화할지 여부를 결정하는 것은 어렵고 고통스러운 결정이 되며 궁극적으로 이러한 문제가 발생합니다. 운영 및 유지보수 현황 :
- 사소한 결함은 눈에 띄지 않고 시스템이 숨겨진 위험을 안고 실행되도록 합니다.
- 중간 결함에 많은 투자를 하고 , 테스트 환경을 반복적으로 테스트하며, 근본 원인은 운에 의해 결정됩니다.
- 중대한 결함을 제거하기 위해 모든 노력을 기울였으며 , 사업이 복구될 때까지 팀 전체가 비용에 관계없이 24시간 365일 근무했습니다.
헤인의 법칙에 따르면 심각한 사고 뒤에는 29개의 경미한 사고와 300개의 잠재적인 숨겨진 위험이 있습니다. IT 시스템의 운영 및 유지 관리에도 동일한 패턴이 존재합니다. 계측 및 Java 에이전트를 시작하는 데 필요한 다시 시작 작업으로 인해 프로덕션 환경에서 수많은 잠재적인 숨겨진 위험과 사소한 오류를 진단하고 찾아내기가 어렵고 중간 오류를 재배치하는 데 많은 인력이 소모됩니다. 계속해서 심각한 오류가 발생합니다.
DeepFlow의 무침입 관찰 기능은 이 문제를 완벽하게 해결합니다. 애플리케이션 시스템 또는 TiDB에 대한 콜 체인 추적 기능을 활성화해야 하는 경우 언제든지 DeepFlow Agent를 배포하고 한 번의 클릭으로 데이터 수집 추적을 시작할 수 있습니다. 에이전트를 배포할 때 애플리케이션 POD 및 TiDB를 침범할 필요가 없습니다. 구성 요소 POD를 사용하거나 애플리케이션, TiDB 또는 운영 체제를 다시 시작할 필요 없이 에이전트는 추적 데이터 수집 코드 를 운영 체제의 커널에 즉시 핫 로드하고 eBPF 기술을 통해서만 각 위치에서 데이터 수집을 시작할 수 있습니다. 리눅스 운영 체제. 부하가 매우 높은 비즈니스 시스템의 경우에도 추적 기능을 제거하려는 경우 온라인으로 에이전트의 eBPF 수집 스위치를 끄거나 에이전트를 제거하면 추적 데이터 수집 코드가 운영 체제 커널에서 즉시 제거 될 수 있습니다 . 이 전체 프로세스 동안 상위 계층 애플리케이션과 TiDB 구성 요소 프로그램은 인식하지 못합니다.
DeepFlow Agent의 콜 체인 추적 기능은 언제든지 운영 체제 커널에 핫 로드될 수 있으므로 애플리케이션 방해에 대한 걱정 없이 애플리케이션 시스템 및 TiDB 클러스터에서 언제든지 온라인 및 오프라인으로 기능을 추적하고 관찰할 수 있습니다. 사소한 결함과 중간 결함을 언제든지 감지하여 세밀한 관찰을 수행하여 시스템 위험을 신속하게 발견하고 제거하여 심각한 결함을 방지합니다.
4) 기술 스택 전반에 걸친 통합 협업을 위한 콜 체인 추적
기존 계측 기술의 APM 추적은 애플리케이션 개발자와 TiDB 개발자에게 적합합니다. 호출 체인은 개발 배경 없이는 이해하기 어려운 프로세스 내의 함수 호출 관계에 대해 더 많은 것을 반영합니다. 작업을 수행해야 합니다. 차원적 역할은 실질적인 도움이 거의 되지 않습니다. DeepFlow 관찰 플랫폼은 애플리케이션에서 운영 체제 및 기본 네트워크에 이르는 모든 애플리케이션 호출의 전체 스택 추적 기능을 실현하므로 TiDB 운영 및 유지 관리, TiDB 개발, 애플리케이션 개발, K8s 운영 및 유지 관리, 미들웨어 운영을 구축할 수 있습니다. 각 기술 스택의 전체 스택 운영 및 유지 관리 협업 기능을 통해 모든 애플리케이션 호출의 전체 프로세스에서 각 처리 링크의 성능에 대한 명확한 통찰력을 얻고 오류 경계를 신속하게 결정할 수 있습니다.
DeepFlow 관찰 가능 플랫폼에서 위 그림을 예로 들어 보겠습니다.
- 비즈니스 애플리케이션 개발 및 운영 및 유지 관리 : 비즈니스 애플리케이션 마이크로서비스의 호출 지연을 통해 비즈니스 애플리케이션에 숨겨진 위험이나 결함을 신속하게 진단하고 발견합니다.
- K8s 운영 및 유지 관리 : 각 마이크로서비스 인스턴스 간의 네트워크 카드 호출 지연을 통해 K8s 플랫폼에 숨겨진 위험이나 결함을 발견합니다.
- 미들웨어 운영 및 유지 관리 : TiDB-Proxy 위치의 호출 지연을 통해 미들웨어에 숨겨진 위험이나 결함을 신속하게 진단하고 발견합니다.
- DBA : eBPF가 수집한 TiDB 호출 지연을 사용하여 TiDB 측의 숨겨진 위험이나 결함을 신속하게 진단합니다.
- 데이터베이스 개발 : 필요에 따라 TiDB의 OpenTelemetry 계측 데이터를 활성화한 후 데이터베이스 개발자는 TiDB의 주요 내부 기능에 숨겨진 위험이나 오류를 신속하게 진단할 수 있습니다.
04: 전방위 관찰
콜 체인 추적 외에도 TiDB의 일상적인 운영 및 유지 관리 중에 비즈니스 파노라마, 네트워크 성능, 시스템 리소스 성능, 운영 체제 파일 읽기 및 쓰기 성능, 애플리케이션 기능 성능 등을 모두 종합적으로 관찰하고 분석해야 하는 차원입니다. 근본 원인은 관측 가능성 실천이 여러 유형의 관측 데이터 사일로를 열고, 관측 데이터 간의 연결을 설정하고, 원활한 관측 작업 흐름을 설계하여 풀 스택 운영 및 유지 관리 담당자가 효율적으로 작업을 수행할 수 있어야 한다는 것입니다. 관측 작업 및 유지 관리 프로세스를 원활하게 수행하고, 데이터에서 결론을 더 빠르고 쉽게 찾아냅니다.
TiDB 관측 가능성 실무에서 우리는 DeepFlow 플랫폼에서 여러 유형의 데이터에 대한 통합 수집 및 분석을 구현했으며 원활한 작업 흐름을 통해 다양한 유형의 데이터에 효율적으로 액세스하고 다음을 포함한 광범위한 관측 기능을 달성할 수 있습니다.
- 비즈니스 파노라마 관찰
- 네트워크 성능 관찰
- SQL 문 추적
- 시스템 자원 성능 관찰
- 파일 읽기 및 쓰기 성능 관찰
- 기능 성능 관찰(CPU 프로파일링)
1) 비즈니스 파노라마 관찰
DeepFlow는 클라우드 네이티브 API 인터페이스와의 실시간 도킹을 통해 리소스 태그와 비즈니스 태그를 동적으로 획득하고, 실시간 수집된 애플리케이션에 대해 데이터 태그 태그를 호출함으로써 비즈니스와 함께 자동화되고 동적으로 업데이트되는 비즈니스 파노라마를 구축하는 기능을 실현합니다. .
DeepFlow를 기반으로 한 TiDB 관측 가능성 사례에서 우리는 클라우드 네이티브 애플리케이션 클러스터에서 TiDB 분산 데이터베이스 클러스터까지 엔드투엔드 비즈니스 파노라마를 구축했습니다(아래 참조).
클라우드 네이티브 애플리케이션 클러스터와 TiDB 데이터베이스 클러스터의 비즈니스 파노라마 토폴로지를 구축함으로써 거시적 관점에서 IT 비즈니스 시스템의 전체 그림을 관찰할 수 있습니다. 비즈니스 파노라마에서 로컬 비즈니스 성과 이상이 발견되면 점진적으로 미시적으로 탐색하고 알려지지 않은 미지의 항목을 빠르게 찾아보세요.
2) 네트워크 성능 관찰
네트워크 패킷 손실 및 네트워크 지연은 TiDB 데이터베이스 클러스터 장애 진단 프로세스에서 종종 의심되는 문제입니다. DeepFlow는 네트워크 성능 관찰을 통해 특정 분산 데이터베이스 비즈니스 장애가 네트워크 장애로 인해 발생하는지 여부를 신속하게 판단할 수 있습니다.
네트워크 성능 관찰에서는 다음 6가지 지표를 통해 TiDB 클러스터에 대한 외부 액세스와 TiDB 클러스터 내부 구성 요소의 상호 액세스의 네트워크 상호 작용 성능을 관찰하고 다양한 유형의 네트워크 전송 문제를 진단하고 결정할 수 있습니다.
- 바이트(처리량 속도) - 네트워크 처리량 압력 관찰
- TCP 재전송 비율 - 네트워크 패킷 손실 관찰
- TCP 제로 창 비율 - TCP 정체 관찰
- 연결 설정 실패 비율 - TCP 연결 설정 이상 현상을 관찰합니다.
- 평균 TCP 연결 설정 지연 - 관찰된 네트워크 RTT
- 평균 TCP/ICMP 시스템 대기 시간 - 운영 체제의 응답 속도를 관찰합니다.
예시 1: TiDB 포털에 접속하는 클라이언트의 네트워크 상호작용 성능을 빠르게 관찰
예시 2: TiDB 내부 구성 요소 간의 네트워크 상호 작용 성능을 빠르게 관찰
3) SQL 문 추적
불합리한 SQL 문은 많은 양의 CPU 및 메모리 리소스를 점유하고 TiDB의 응답 지연을 증가시키며 TiDB의 전반적인 성능을 저하시키므로 비효율적인 SQL 문을 신속하게 역추적하는 것은 데이터베이스 운영 및 유지 관리에 있어 중요한 부분입니다. 인덱스를 사용하지 않는 쿼리, 전체 테이블 스캔, 지나치게 복잡한 쿼리, 부적절한 함수나 데이터 유형의 사용은 모두 SQL 문에 집중하고 역추적해야 하는 "잘못된 SQL" 유형입니다.
TiDB 관찰 가능성 실행에서 DeepFlow는 무침입 우회 수집 기능을 사용하여 호출 로그 검색 중에 검색할 수 있는 SQL 문, 응답 지연, 발생 시간, 소스 노드 등을 포함하여 각 SQL 문의 세부 정보를 완벽하게 기록합니다. 불량 SQL 발생빈도를 실시간으로 추적하고, SQL의 출처를 파악합니다.
4) 시스템 자원 성능 관찰
운영 체제의 과도한 CPU 및 메모리 사용이나 동일한 기간 동안의 네트워크 인터페이스 처리량 정체로 인해 느린 SQL이 발생할 수 있으므로 느린 SQL 문제의 근본 원인을 더 빠르고 정확하게 찾으려면 TiDB를 빠르게 분석하십시오. 인스턴스의 CPU, 메모리, 네트워크 인터페이스 지표는 분산 데이터베이스의 관찰 기능, 운영 및 유지 관리 기능, 문제 해결 효율성을 향상시키는 핵심 부분입니다.
TiDB 관측성 실행에서는 Grafana Agent를 통해 시스템 지표를 수집하고 데이터를 DeepFlow 관측성 플랫폼으로 균일하게 가져옵니다. 데이터는 균일하게 표시되고 상관되며 제시되어 TiDB 구성 요소 POD 지표 데이터를 관찰할 수 있습니다. 콜 체인 추적에서 느린 SQL의 소스 POD를 발견하면 해당 POD의 CPU 사용량 변화 곡선, 메모리 사용량 변화 곡선, 네트워크 처리량 변화 곡선을 한 번의 클릭으로 확인할 수 있으며, 지표 값을 통해 느린 SQL 이벤트를 쉽게 판단할 수 있습니다. 문제 기간 동안 시스템 CPU, 메모리 및 네트워크 인터페이스 리소스 성능과의 상관 관계.
5) 파일 읽기 및 쓰기 성능 관찰
파일 읽기 및 쓰기 성능은 TiDB의 SQL 응답 성능에 상당한 영향을 미칩니다. 고성능 스토리지 리소스를 사용하면 파일 읽기 및 쓰기 속도가 느려질 가능성을 최대한 피할 수 있지만 여전히 두 가지 질문에 자주 대답해야 합니다. TiDB 운영 및 유지 관리:
- 산발적으로 느린 SQL이 발생하는 경우 산발적으로 느린 파일 읽기 및 쓰기가 문제의 근본 원인인지 확인하는 방법은 무엇입니까?
- 시스템에서 알 수 없는 대용량 파일 읽기 또는 쓰기 또는 빈번한 파일 읽기 및 쓰기가 발생하는 경우 파일 읽기 및 쓰기의 소스 프로세스를 찾는 방법은 무엇입니까?
DeepFlow는 Linux 커널의 eBPF 기능을 통해 운영 체제 파일 읽기 및 쓰기 이벤트의 완전한 수집 및 관찰을 실현하고 전체 수집 및 부분 수집과 같은 다중 수집 모드를 지원합니다.
애플리케이션의 응답 속도가 느려지면 DeepFlow는 문제 기간 동안 클라이언트와 서버의 모든 파일 읽기 및 쓰기 이벤트를 한 번의 클릭으로 검색하고 파일 작업 이벤트 및 소스 프로세스를 목록에서 신속하게 잠글 수 있습니다. 느린 SQL 응답이 발생하면 DBA는 관련된 느린 IO 이벤트가 있는지 몇 초 내에 확인할 수 있습니다. 알 수 없는 파일 읽기 및 쓰기 동작이 있는 경우 시스템 운영 및 유지 관리는 몇 초 내에 파일 IO 소스를 잠글 수 있습니다.
6) 기능 성능 관찰(CPU 프로파일링)
느린 SQL의 문제 해결 과정에서 CPU가 비즈니스 성능의 병목 현상이 된 것으로 확인되면 다음으로 해야 할 일은 TiDB 구성 요소 POD의 CPU 스케줄링 상황을 분석하고 TiDB 구성 요소의 핫 기능을 찾는 것입니다. 프로그램을 찾은 다음 프로그램을 찾습니다. 최적화를 위한 진입점입니다. DeepFlow는 Linux 커널의 eBPF 기술을 통해 응용 프로세스의 CPU Perf 데이터 수집 및 관찰 기능을 구현합니다. TiDB 구성 요소 응용 프로세스의 CPU 성능을 분석하여 개발자는 커널 기능, 라이브러리 기능 및 응용 프로그램 기능을 쉽게 잠글 수 있습니다. 각 TiDB 구성 요소 프로그램.
TiDB 관측 가능성 실습에서는 DeepFlow를 사용하여 TiDB, PD 및 TiKV 구성 요소의 CPU 성능을 분석했습니다. 그중 다음 TiDB 프로세스 CPU 성능 분석 플레임 그래프에서 Jaeger 계측이 TiDB 프로세스에 상당한 CPU 리소스 오버헤드를 가져오는 것을 명확하게 관찰할 수 있습니다 .
05: 가치 요약
TiDB 분산 데이터베이스의 안정적인 운영을 위해서는 우수한 운영 및 유지 관리 지원 기능이 전제 조건입니다. 이러한 관측 가능성 실행에서 DeepFlow는 선도적인 고성능 eBPF 무침입 데이터 수집 기술, 무계측 호출 체인 추적 기술 및 다중 소스를 사용합니다. 데이터의 통합 관측 기술은 TiDB의 전체 스택, 풀 링크, 상시 핫 로딩 및 생산 구현을 위한 관측 솔루션을 구축하여 TiDB의 전반적인 운영 및 유지 관리 기능을 크게 향상시키고 TiDB 데이터베이스의 안정적인 운영을 효율적으로 지원합니다. 사용자가 보다 안정적이고 안정적인 데이터베이스 서비스를 만들 수 있도록 도와줍니다.
06: DeepFlow란 무엇인가
DeepFlow는 복잡한 클라우드 인프라 및 클라우드 네이티브 애플리케이션에 대한 심층적인 관찰 가능성을 제공하는 것을 목표로 Yunshan Network에서 개발한 관찰 가능성 제품입니다. DeepFlow는 eBPF를 기반으로 애플리케이션 성능 지표, 분산 추적, 지속적인 성능 분석 등 관찰 신호에 대한 제로 침입(Zero Code) 수집을 구현하고 이를 스마트 라벨(SmartEncoding) 기술과 결합하여 Full Stack 상관 관계 및 모든 관측 신호의 효율적인 접근. DeepFlow를 사용하면 클라우드 네이티브 애플리케이션에 자동으로 깊은 관찰 기능이 제공되어 개발자의 지속적인 계측에 대한 무거운 부담을 없애고 DevOps/SRE 팀에 코드에서 인프라까지 모니터링 및 진단 기능을 제공할 수 있습니다.
GitHub 주소: https://github.com/deepflowio/deepflow
DeepFlow 데모를 방문하여 제로 계측, 전체 적용 범위 및 완전히 관련된 관찰 가능성을 경험해 보세요.
오픈 소스 산업용 소프트웨어를 포기하기로 결정했습니다 . 주요 이벤트 - OGG 1.0 출시, Huawei가 모든 소스 코드를 제공했습니다. Google Python Foundation 팀이 "코드 똥산"에 의해 해고되었습니다 . ". Fedora Linux 40이 정식 출시되었습니다. 유명 게임 회사가 출시했습니다. 새로운 규정: 직원의 결혼 선물은 100,000위안을 초과할 수 없습니다. China Unicom은 세계 최초로 오픈 소스 모델의 Llama3 8B 중국어 버전을 출시했습니다. Pinduoduo는 보상금을 선고 받았습니다 . 불공정 경쟁에 500만 위안 국내 클라우드 입력 방식 - 화웨이만 클라우드 데이터 업로드 보안 문제 없음