5步掌握Intel性能监控工具PCM:从安装到可视化监控全攻略
5步掌握Intel性能监控工具PCM从安装到可视化监控全攻略【免费下载链接】pcmIntel® Performance Counter Monitor (Intel® PCM)项目地址: https://gitcode.com/gh_mirrors/pc/pcmIntel® Performance Counter MonitorIntel® PCM是一套功能强大的处理器性能监控工具集专门用于监控Intel® Core™、Xeon®、Atom™和Xeon Phi™处理器的性能与能耗指标。这套工具支持Linux、Windows、Mac OS X、FreeBSD、DragonFlyBSD和ChromeOS等多个操作系统为系统性能分析和优化提供了专业级的硬件级监控能力。 快速部署从源码到可执行文件获取项目代码与编译构建要开始使用PCM工具首先需要获取最新的项目代码并进行编译构建# 克隆PCM仓库包含子模块 git clone --recursive https://gitcode.com/gh_mirrors/pc/pcm # 进入项目目录 cd pcm # 创建构建目录并编译 mkdir build cd build cmake .. cmake --build . --parallel构建完成后所有工具都会在build/bin目录中生成。你可以选择增量构建重用现有build目录或完全重建删除build目录重新开始。多平台构建注意事项不同操作系统需要特定的配置和驱动程序Linux系统默认构建即可无需额外驱动Windows系统需要安装MSR驱动详细步骤参考doc/WINDOWS_HOWTO.mdmacOS系统需要内核扩展参考doc/MAC_HOWTO.txtFreeBSD/DragonFlyBSD特殊配置参考doc/FREEBSD_HOWTO.txt 核心监控工具详解PCM提供了一系列命令行工具每个工具专注于不同的性能监控维度基础处理器监控pcm这是最核心的工具提供全面的处理器性能数据# 运行基础监控 ./pcm # 监控特定时间间隔单位秒 ./pcm -t 2 # 输出到CSV文件 ./pcm -csvoutput.csv监控指标包括指令周期数IPC和核心频率含Intel® Turbo Boost技术内存和Intel® Quick Path Interconnect带宽缓存命中率和缓存未命中统计核心和CPU包睡眠C状态驻留时间热余量和能耗消耗数据内存性能深度分析pcm-memory专门监控内存子系统性能# 监控内存带宽使用情况 ./pcm-memory # 显示每个内存通道的详细数据 ./pcm-memory -p关键功能每个内存通道的带宽使用情况监控每个DRAM DIMM排名的性能数据分析本地和远程内存带宽对比统计PCIe接口性能追踪PCM提供了两个工具来监控PCIe性能# 按插槽监控PCIe带宽 ./pcm-pcie # 按PCIe总线/设备详细监控 ./pcm-iio应用场景GPU、NVMe SSD等高速外设性能分析PCIe交换机带宽利用率监控设备间数据传输瓶颈识别其他专业监控工具工具名称主要功能典型应用场景pcm-power监控处理器能耗状态和频率调节原因功耗优化、散热分析pcm-tsx监控Intel®事务同步扩展性能并发编程优化pcm-numa监控本地和远程内存访问NUMA架构性能调优pcm-latency监控L1缓存未命中和内存延迟内存子系统性能分析 非root用户执行配置在Linux系统中普通用户也可以运行PCM工具但需要进行适当配置系统级权限设置首先以root身份设置性能事件参数# 允许非特权用户访问性能计数器 sudo sh -c echo -1 /proc/sys/kernel/perf_event_paranoid环境变量配置为非root用户设置必要的环境变量# 禁用MSR寄存器访问非root用户无法访问 export PCM_NO_MSR1 # 保持NMI watchdog运行 export PCM_KEEP_NMI_WATCHDOG1 # 运行PCM工具 ./pcm或者使用单行命令PCM_NO_MSR1 PCM_KEEP_NMI_WATCHDOG1 ./pcm-sensor-server重要提示在非root用户模式下某些依赖MSRModel-Specific Register寄存器直接访问的指标可能不可用。 可视化监控方案Prometheus集成与Grafana仪表板PCM提供了完整的可视化监控方案通过pcm-sensor-server将指标导出为Prometheus格式# 启动传感器服务器默认端口9738 sudo ./pcm-sensor-server # 指定监听地址和端口 sudo ./pcm-sensor-server -l 192.168.1.10 -p 8080 # 后台运行模式仅Linux/macOS sudo ./pcm-sensor-server -dDocker容器化部署对于容器化环境PCM提供了完整的Docker支持# 从Docker Hub拉取镜像 docker pull intelpcm/pcm-sensor-server # 运行容器 docker run -d --name pcm-sensor \ -p 9738:9738 \ --privileged \ intelpcm/pcm-sensor-serverGrafana仪表板配置PCM项目包含了完整的Grafana配置位于scripts/grafana目录# 进入Grafana配置目录 cd scripts/grafana # 启动监控栈监控单个主机 sudo bash start.sh http://目标主机IP:9738 # 启动Prometheus版本 sudo bash start-prometheus.sh 目标主机IP:9738多主机监控配置创建targets.txt文件每行指定一个监控目标192.168.1.10:9738 192.168.1.11:9738 192.168.1.12:9738然后运行sudo bash start.sh targets.txt 高级功能与API使用编程接口API使用PCM提供了C/C API可以在自定义应用程序中集成性能监控功能// 示例使用PCM API监控CPU性能 #include cpucounters.h int main() { PCM *pcm PCM::getInstance(); pcm-program(); // 获取核心性能计数器 SystemCounterState before getSystemCounterState(); // 执行需要监控的代码 perform_computation(); SystemCounterState after getSystemCounterState(); // 计算性能指标 std::cout IPC: getIPC(before, after) std::endl; std::cout 内存带宽: getBytesReadFromMC(before, after) B std::endl; pcm-cleanup(); return 0; }自定义事件监控通过pcm-raw工具可以编程任意核心和非核心事件# 监控自定义核心事件 ./pcm-raw -e core -c 0x3c,umask0x01 # 监控自定义非核心事件 ./pcm-raw -e uncore -c 0x01,umask0x02Windows系统特殊配置在Windows环境下运行PCM需要额外步骤管理员权限要求所有PCM工具都需要以管理员身份运行MSR驱动安装需要安装专用驱动来访问模型特定寄存器以管理员身份运行PCM工具确保足够的系统权限️ 实用技巧与最佳实践性能监控策略建议实时监控与历史分析结合使用pcm进行实时问题诊断结合Grafana进行长期趋势分析设置Prometheus告警规则多维度监控CPU性能IPC、频率、缓存命中率内存性能带宽、延迟、NUMA效应I/O性能PCIe带宽、存储延迟监控数据存储优化# 定期采样并保存到文件 ./pcm -csvperf_data.csv -t 5 -i 60 # 监控特定进程 ./pcm -pid1234常见问题解决问题1权限不足错误Error: PCM driver not accessible解决方案确保以root或管理员身份运行检查/proc/sys/kernel/perf_event_paranoid设置验证MSR驱动是否正确安装问题2处理器不支持Unsupported processor解决方案检查处理器型号是否在支持列表中更新到最新PCM版本查看doc/FAQ.md获取详细信息问题3监控数据异常Counter values seem incorrect解决方案检查是否有其他监控工具冲突验证处理器微码版本尝试重置性能计数器./pcm-sensor-server -r 系统要求与兼容性支持的操作系统操作系统支持状态特殊要求Linux完全支持内核版本≥2.6.32Windows完全支持需要MSR驱动macOS完全支持需要内核扩展FreeBSD完全支持特殊配置ChromeOS实验性支持有限功能处理器架构支持Intel® Core™系列全系列支持Intel® Xeon®服务器处理器从Nehalem到最新架构Intel® Atom™低功耗处理器特定型号支持Intel® Xeon Phi™协处理器支持 实际应用场景场景1服务器性能调优# 监控服务器整体性能 ./pcm -t 2 -i 300 server_perf.log # 分析内存瓶颈 ./pcm-memory -csvmemory_analysis.csv # 监控PCIe设备性能 ./pcm-iio -p场景2应用程序性能分析# 监控特定应用程序 ./pcm -pid$(pgrep myapp) -t 1 # 生成性能报告 ./pcm -csvapp_profile.csv -pid1234 -i 30场景3容器化环境监控# Docker Compose配置示例 version: 3 services: pcm-sensor: image: intelpcm/pcm-sensor-server privileged: true ports: - 9738:9738 prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml grafana: image: grafana/grafana ports: - 3000:3000 未来发展与社区贡献PCM项目持续发展社区活跃。如果你遇到问题或有改进建议提交Issue通过GitHub Issues报告问题贡献代码参考CONTRIBUTING.md了解贡献指南参与讨论加入社区讨论性能监控最佳实践通过本指南你应该已经掌握了Intel PCM工具的核心使用方法。无论是基础的系统监控还是复杂的性能分析PCM都能提供专业级的硬件性能数据帮助你在系统优化和故障诊断中做出数据驱动的决策。记住有效的性能监控不仅仅是收集数据更重要的是理解数据背后的含义并将其转化为实际的优化行动。从今天开始用PCM深入洞察你的系统性能吧【免费下载链接】pcmIntel® Performance Counter Monitor (Intel® PCM)项目地址: https://gitcode.com/gh_mirrors/pc/pcm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

草图秒变艺术品:Style2Paints如何用AI颠覆你的创作流程

草图秒变艺术品:Style2Paints如何用AI颠覆你的创作流程

草图秒变艺术品:Style2Paints如何用AI颠覆你的创作流程 【免费下载链接】style2paints sketch style paints :art: (TOG2018/SIGGRAPH2018ASIA) 项目地址: https://gitcode.com/gh_mirrors/st/style2paints 你是否曾经为线稿上色感到烦恼?看着精…

2026/10/16 23:40:02 阅读更多 →
Trae AI多模型集成与第三方API中转配置指南

Trae AI多模型集成与第三方API中转配置指南

1. Trae AI多模型集成方案概述Trae AI作为新兴的AI开发工具链,其核心价值在于通过统一接口集成多个主流大语言模型。这种设计让开发者无需分别对接各家API,只需在Trae中配置一次即可灵活切换不同模型。我最近在实际项目中测试了Anthropic Claude、GPT-4o…

2026/10/17 0:32:39 阅读更多 →
HarmonyOS应用开发实战:猫猫大作战-`linearGradient` 的方向、色标、透明度、与纯色底切换的取舍

HarmonyOS应用开发实战:猫猫大作战-`linearGradient` 的方向、色标、透明度、与纯色底切换的取舍

前言 主菜单的「浅蓝渐变」背景是用户第一眼的高级感来源——从顶部 #E8F4F8 浅蓝过渡到底部 #C9E8F2 略深蓝,整屏铺色不刺眼。在 HarmonyOS 里,渐变背景靠 linearGradient(线性渐变)、sweepGradient(角度渐变&#x…

2026/10/17 0:32:40 阅读更多 →

最新新闻

JsLeakWatcher 报出一批对象,真的是内存泄漏吗:页面缓存、监听器和可达路径怎么分

JsLeakWatcher 报出一批对象,真的是内存泄漏吗:页面缓存、监听器和可达路径怎么分

JsLeakWatcher 报出一批对象,真的是内存泄漏吗:页面缓存、监听器和可达路径怎么分 页面退出后 JsLeakWatcher 报出几十个对象,团队立刻把所有缓存清掉,结果二次进入变慢,告警却仍然存在。工具发现“对象仍可达”&…

2026/10/18 15:00:54 阅读更多 →
Aspose.Slides 25.5 JDK 16 集成指南:License校验与模块化配置

Aspose.Slides 25.5 JDK 16 集成指南:License校验与模块化配置

简介:本资源是面向Java开发者的企业级PowerPoint文档处理解决方案,适用于需在Spring Boot、Servlet等后台架构中实现PPT/PPTX自动化生成、格式转换与深度编辑的中高级开发场景。压缩包共2个文件(1个JAR组件 1个XML许可证)&#x…

2026/10/18 15:00:54 阅读更多 →
2026批量查快递轨迹用什么工具好:从预算成本看,小中大团队各自该花多少钱

2026批量查快递轨迹用什么工具好:从预算成本看,小中大团队各自该花多少钱

先说结论:批量查快递轨迹这件事,预算从48元/天到1288元/年,覆盖了所有规模的团队。关键不是花多少钱,是花的钱能不能对应上你的业务规模。下面用需求对照矩阵,把不同预算档位该匹配什么业务量讲清楚。固乔快递批量查询…

2026/10/18 15:00:54 阅读更多 →
CentOS 8.2 手动编译 libssh 0.9.5 完整指南:独立安装与版本共存

CentOS 8.2 手动编译 libssh 0.9.5 完整指南:独立安装与版本共存

1. 为什么在 CentOS 8.2 上要手动编译 libssh 0.9.5CentOS 8.2 自带的 libssh 版本是 0.9.4,这个版本在功能上其实已经能满足大部分基础场景,比如简单的 SSH 客户端连接、SFTP 文件传输等。但如果你正在做安全审计、渗透测试工具链搭建,或者需…

2026/10/18 15:00:54 阅读更多 →
Linux 开发工具(三) 深入理解编译器: gcc / g++

Linux 开发工具(三) 深入理解编译器: gcc / g++

目录 一. 编译的四个阶段 1.1 预处理 1.1.1 代码示例 1.1.2 命令行宏定义 1.1.3 条件编译的用处 1.2 编译 1.2.1 代码示例 1.3 汇编 1.3.1 代码示例 1.4 链接 1.4.1 代码示例 二. 动态库和静态库 2.1 什么是库 2.2 库文件的命名规则 2.3 动静态库 2.4 动态链接…

2026/10/18 15:00:54 阅读更多 →
对话工具升级为生成式界面引擎:免费开放与交互范式切换

对话工具升级为生成式界面引擎:免费开放与交互范式切换

1. 这次升级到底改了什么:从“对话工具”到“生成式界面引擎”先把结论摆在前面:这次更新的核心不是“模型又聪明了一点”,而是交互范式的切换。过去的对话产品,本质上是一个文本进、文本出的黑盒,你问它答&#xff0c…

2026/10/18 14:59:53 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →