yandex/perforator
GitHub: yandex/perforator
Perforator 是一个开源的集群级持续性能分析工具,用于在不影响生产环境的情况下监控和优化CPU使用。
Stars: 3402 | Forks: 160
[](https://github.com/yandex/perforator/blob/main/LICENSE) [](https://github.com/yandex/perforator/tree/main/perforator/agent/collector/progs/unwinder/LICENSE) [](https://t.me/perforator_ru) [](https://t.me/perforator_en) # Perforator [文档](https://perforator.tech/docs/) | [Medium 上的文章](https://medium.com/yandex/yandexs-high-performance-profiler-is-now-open-source-95e291df9d18) | [Habr 上的文章](https://habr.com/ru/companies/yandex/articles/875070) Perforator 是一款生产就绪、开源的持续性能分析应用,能够从您的生产环境中收集 CPU 性能分析数据而不影响其性能,由 Yandex 开发,并受到 [Google-Wide Profiling](https://research.google/pubs/google-wide-profiling-a-continuous-profiling-infrastructure-for-data-centers/) 的启发。Perforator 已在 Yandex 的数万台服务器上部署,并已帮助许多开发者修复了他们服务中的性能问题。 ## 主要功能 - 通过 eBPF 高效且高质量地收集内核和用户空间堆栈信息。 - 可扩展的存储系统,用于存储性能分析数据和二进制文件。 - 支持在没有帧指针和主机调试符号的情况下进行堆栈展开。 - 提供便捷的查询语言和用户界面,通过火焰图检查应用程序的 CPU 使用情况。 - 支持 C++、C、Go 和 Rust,并对 Java 和 Python 提供实验性支持。 - 生成 sPGO 配置文件,用于通过 [AutoFDO](https://github.com/google/autofdo) 构建带有配置文件引导优化(PGO)的应用程序。 ## 最低系统要求 Perforator 运行在 x86 64 位 Linux 平台上,消耗 512MB 内存(在拥有大量 CPU 的大型主机上会消耗更多)以及低于 1% 的主机 CPU 资源。 ## 快速开始 您可以使用本地的 [perforator record CLI 命令](https://perforator.tech/docs/en/tutorials/native-profiling) 来分析您的笔记本电脑。 您也可以使用我们的 [Helm chart](https://perforator.tech/docs/en/tutorials/kubernetes/helm-chart) 在开发/生产 Kubernetes 集群上部署 Perforator。 ## 如何构建 - 从源代码构建的说明位于 [此处](https://perforator.tech/docs/en/guides/build)。 - 如果您希望使用预构建的二进制文件,可以在 [此处](https://github.com/yandex/perforator/releases) 找到它们。 ## 许可证 本项目根据 Apache 2.0 许可证(Apache-2.0)获得许可。[Apache 2.0 许可证](https://github.com/yandex/perforator/tree/main/LICENSE) 注意:以前,我们使用 MIT 许可证为 Perforator 授权。我们切换到 Apache 2.0 是为了免除自定义 CLA 签名要求并简化贡献流程。 部分代码根据 GPL 2.0 许可证获得许可。[GPL 2.0](https://github.com/yandex/perforator/tree/main/perforator/agent/collector/progs/unwinder/LICENSE) 这些部分包括: * eBPF 程序源代码(perforator/agent/collector/progs/unwinder) * OpenJDK 性能分析支持(perforator/internal/linguist/jvm 中的部分代码)
标签:AutoFDO, CPU配置文件, C++分析, C语言分析, DevOps工具, Docker镜像, eBPF技术, Go语言分析, IPv6支持, Java分析, JS文件枚举, Linux工具, PGO优化, Python分析, Rust分析, sPGO配置文件, x86平台, 二进制发布, 云原生监控, 优化工具, 低影响性能, 可扩展存储, 可视化分析, 可视化界面, 命令控制, 多语言支持, 大数据中心, 威胁情报, 子域名突变, 存储系统, 安全测试框架, 应用分析, 开发者工具, 开源工具, 性能优化, 性能分析, 故障排查, 数据库接管, 数据采集, 日志审计, 查询语言, 检测绕过, 火焰图, 生产环境监控, 用户界面, 端口探测, 系统工具, 资源监控, 连续分析, 逆向工具, 集群监控, 高可扩展性