当前位置: 首页 > ds >正文

解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题

解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题

在 Ubuntu 上使用 Intel VTune Profiler 时遇到无法收集 CPU 硬件性能计数器数据的问题,通常是由于权限和系统配置问题导致的。以下是解决方案:

1. 检查并加载性能监控模块

首先确保 Linux 内核性能监控模块已加载:

sudo modprobe msr

2. 设置正确的文件权限

VTune 需要访问以下文件,设置正确权限:

sudo chmod go+rw /dev/cpu/*/msr
sudo chmod go+rw /proc/sys/kernel/perf_event_paranoid

3. 调整 perf_event_paranoid 设置

临时降低安全限制(重启后失效):

sudo sh -c 'echo 0 > /proc/sys/kernel/perf_event_paranoid'

永久修改(编辑 /etc/sysctl.conf 或创建新配置文件):

echo "kernel.perf_event_paranoid = 0" | sudo tee /etc/sysctl.d/60-vtune.conf
sudo sysctl --system

4. 禁用 NMI 看门狗

sudo sh -c 'echo 0 > /proc/sys/kernel/nmi_watchdog'

永久禁用:

echo "kernel.nmi_watchdog = 0" | sudo tee -a /etc/sysctl.d/60-vtune.conf
sudo sysctl --system

5. 配置用户权限

将当前用户添加到 perf-users 组:

sudo groupadd perf-users
sudo usermod -aG perf-users $USER

然后配置 sysctl

echo "kernel.perf_event_mlock_kb = 512" | sudo tee -a /etc/sysctl.d/60-vtune.conf
echo "kernel.perf_cpu_time_max_percent = 25" | sudo tee -a /etc/sysctl.d/60-vtune.conf
sudo sysctl --system

6. 验证配置

重启系统后,运行以下命令验证:

vtune --collect performance-snapshot -- ./your_application

7. 其他可能的解决方案

如果问题仍然存在:

  1. 确保 BIOS 中启用了性能计数器
  2. 检查 VTune 版本是否支持您的 CPU
  3. 尝试使用 sudo 运行 VTune(不推荐长期使用)
  4. 查看 VTune 文档中关于 Linux 系统配置的具体要求

注意事项

  • 修改系统参数可能会影响安全性,建议仅在受信任的开发环境中进行
  • 某些云虚拟机可能无法访问硬件性能计数器
  • 不同版本的 Ubuntu 和 Linux 内核可能需要不同的配置
http://www.xdnf.cn/news/861.html

相关文章:

  • Android Kotlin+Compose首个应用
  • 服务器在国外国内用户访问慢会影响谷歌排名吗?
  • Python 写一个带参数的EXE函数
  • SystemVerilog语法之内建数据类型
  • 数字IC后端PR阶段Innovus,ICC,ICC2修复short万能脚本分享
  • 20.3 使用技巧9
  • Linux:权限相关问题
  • 实验六- Linux网络管理
  • 【MySQL】MySQL中的数据类型详解
  • 【React】获取元素距离页面顶部的距离
  • Spark(20)spark和Hadoop的区别
  • 数据赋能(203)——原则与原理——原则方法
  • 应用层核心协议详解:HTTP, HTTPS, RPC 与 Nginx
  • 健康养生,开启新生活
  • 随机深林算法是分类还是回归?
  • Selenium的ActionChains:自动化Web交互的强大工具
  • 棉花糖实验新解
  • 《数据结构之美--双向链表》
  • 第十四届蓝桥杯 2023 C/C++组 飞机降落
  • 快充协议芯片XSP04D支持使用一个Type-C与电脑传输数据和快充取电功能
  • c++_csp-j算法 (4)
  • 国防科大清华城市空间无人机导航推理!GeoNav:赋予多模态大模型地理空间推理能力,实现语言指令导向的空中目标导航
  • LeetCode 热题100题解(Java版本)
  • 设计模式 建造者模式
  • git比较不同分支的不同提交文件差异
  • Floyd算法求解最短路径问题——从零开始的图论讲解(3)
  • ubuntu 22.04 安装和配置 mysql 8.0,设置开机启动
  • 11-DevOps-Jenkins Pipeline流水线作业
  • [SpringMVC]请求响应参数传递
  • 机器学习 Day13 Boosting集成学习方法: Adaboosting和GBDT