인터넷 규모의 플릿에 대한 오픈 소스 프로파일러: gP... 노트

인터넷 규모의 플릿에 대한 오픈 소스 프로파일러: gProfiler에 대한 Pinterest와 Intel의 파트너십

6억 4천만 명의 사용자를 보유한 Pinterest는 프로파일링을 통해 인프라 효율성을 개선하기 위해 Intel과 협력했습니다. 초기에는 파편화된 프로파일링 도구와 통합되고 확장 가능한 솔루션의 필요성이라는 문제에 직면했습니다. 그들은 원래 Intel의 전 자회사인 Granulate에서 개발한 오픈 소스 gProfiler를 개선하기로 결정했습니다. 이 협력은 대규모 클라우드 환경을 위한 강력한 프로파일링 시스템을 만드는 것을 목표로 했습니다.Pinterest와 Intel은 동적 프로파일링을 추가하여 gProfiler를 확장하여 주문형 프로파일링 세션을 가능하게 했습니다. 그들은 캐시 동작 및 CPU 스톨과 같은 세부 정보를 캡처하는 하드웨어 원격 측정을 위해 Intel PerfSpect를 통합했습니다. CPU 플레임 그래프가 놓치는 I/O 또는 잠금 경합으로 인한 지연 시간을 감지하기 위해 월 타임 프로파일링이 도입되었습니다. 또한 함수를 하드웨어 이벤트에 연결하기 위해 PMC 플레임 그래프를 추가하고 대규모에서 효율성을 보장하기 위해 프로덕션 강화 수정 사항을 기여했습니다.파트너십은 공급업체 종속을 피하고 협업을 촉진하기 위해 오픈 소스 접근 방식에 중점을 두었습니다. gProfiler는 여러 언어별 프로파일러를 조정하여 통합된 플레임 그래프를 생성하여 시스템 활동에 대한 포괄적인 보기를 제공합니다. Pinterest가 파트너십을 결정한 이유는 이러한 복잡한 도구를 처음부터 구축하는 것이 엄청날 것이라는 인식과 Intel의 하드웨어 전문 지식이 심층적인 병목 현상 분석에 중요했기 때문입니다.gProfiler와 백엔드인 gProfiler Performance Studio의 오픈 소싱은 Pinterest에 기반을 제공했습니다. Pinterest는 이후 리소스 소비 및 데이터 수집과 관련된 안정성 문제를 해결하기 위해 전체 시스템에 gProfiler 에이전트를 배포했습니다. 그들의 상당한 기여에는 전체 시스템에 대한 주문형 프로파일링을 가능하게 하는 동적 프로파일링 기능이 포함됩니다.이러한 기여는 월별 시간 프로파일링 및 하드웨어 이벤트 기반 플레임 그래프와 같은 추가 기능을 잠금 해제했습니다. gProfiler 아키텍처는 각 노드에서 데이터 수집을 위한 에이전트와 집계 및 시각화를 위한 백엔드로 구성됩니다. 에이전트는 다양한 언어 프로파일러를 조정하여 애플리케이션 코드 수정 없이 통합된 보기를 제공하는 병합된 스택 추적을 생성합니다. 백엔드 마이크로서비스는 프로파일 수집, S3에 저장, ClickHouse에 인덱싱, React 프런트엔드를 통한 시각화를 처리합니다.
CdXz5zHNQW_4O814w3FCn.png