PERF EVENT API篇

简介: 简介 perf_event 是内核对用户态提供软硬件性能数据的一个统一的接口,用户通过 perf_event 的句柄操作能获取到各式各样的性能数据,本文将介绍如何通过用户态实现对内核 perf_event 功能的使用 API 介绍 int perf_event_open(struct perf_e.

简介

perf_event 是内核对用户态提供软硬件性能数据的一个统一的接口,用户通过 perf_event 的句柄操作能获取到各式各样的性能数据,本文将介绍如何通过用户态实现对内核 perf_event 功能的使用

API 介绍

int perf_event_open(struct perf_event_attr *attr,
                    pid_t pid, int cpu, int group_fd,
                    unsigned long flags);

用于打开特定的 perf 事件

参数 attr 指定 事件类型以及参数 (attr.type attr.config)
参数 pid 指定 被监控的进程 或者 cgroup
参数 cpu 指定 cpu id
参数 group_fd 指定 perf 事件组
参数 flags man perf_event_open

man perf_event_open 去发现更多

对创建的 event 句柄控制

主要是通过 ioc 和 prctl

ioc(fd, PERF_EVENT_IOC_DISABLE, 0) # 暂停该事件的监控
ioc(fd, PERF_EVENT_IOC_RESET, 0) # 重置计数器

完整用例

# 创建 event 属性
cycle_perf_event_attr = pyperf.perf_event_attr()
cycle_perf_event_attr.type = pyperf.PERF_TYPE_HARDWARE # 通用 CPU 事件类型
cycle_perf_event_attr.config = pyperf.PERF_COUNT_HW_CPU_CYCLES # 记录 CPU cycle
cycle_perf_event_attr.inherit = 1

# 其他参数
cpu = -1 # 所有cpu
pid = 0 # 监控本进程

# 打开事件
fd = pyperf.perf_event_open(cycle_perf_event_attr, pid, cpu, -1, flag)

time.sleep(1)
ret = os.read(fd, 8) # 所有字段均为 64 bit
value = struct.unpack("L", ret)[0]

注意事项

  • counter 是每次累加,需要用户态自己算偏移量
  • 注意事件类型 core, uncore, offcore
  • 注意潜在可能产生的 multiplexing 情况

其他

PERF_EVENT 系列文章

  1. PERF EVENT API篇
  2. PERF EVENT 硬件篇
  3. PERF EVENT 内核篇
  4. PERF EVENT 硬件篇续
目录
相关文章
|
8天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
52 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
|
4天前
|
前端开发 API 数据库
Next 编写接口api
Next 编写接口api
|
10天前
|
XML JSON 缓存
阿里巴巴商品详情数据接口(alibaba.item_get) 丨阿里巴巴 API 实时接口指南
阿里巴巴商品详情数据接口(alibaba.item_get)允许商家通过API获取商品的详细信息,包括标题、描述、价格、销量、评价等。主要参数为商品ID(num_iid),支持多种返回数据格式,如json、xml等,便于开发者根据需求选择。使用前需注册并获得App Key与App Secret,注意遵守使用规范。
|
9天前
|
JSON API 开发者
淘宝买家秀数据接口(taobao.item_review_show)丨淘宝 API 实时接口指南
淘宝买家秀数据接口(taobao.item_review_show)可获取买家上传的图片、视频、评论等“买家秀”内容,为潜在买家提供真实参考,帮助商家优化产品和营销策略。使用前需注册开发者账号,构建请求URL并发送GET请求,解析响应数据。调用时需遵守平台规定,保护用户隐私,确保内容真实性。
|
9天前
|
搜索推荐 数据挖掘 API
淘宝天猫商品评论数据接口丨淘宝 API 实时接口指南
淘宝天猫商品评论数据接口(Taobao.item_review)提供全面的评论信息,包括文字、图片、视频评论、评分、追评等,支持实时更新和高效筛选。用户可基于此接口进行数据分析,支持情感分析、用户画像构建等,同时确保数据使用的合规性和安全性。使用步骤包括注册开发者账号、创建应用获取 API 密钥、发送 API 请求并解析返回数据。适用于电商商家、市场分析人员和消费者。
|
19天前
|
JSON API 开发工具
淘宝实时 API 接口丨淘宝商品详情接口(Taobao.item_get)
淘宝商品详情接口(Taobao.item_get)允许开发者获取商品的详细信息,包括基本信息、描述、卖家资料、图片、属性及销售情况等。开发者需注册账号、创建应用并获取API密钥,通过构建请求获取JSON格式数据,注意遵守平台规则,合理使用接口,确保数据准确性和时效性。
|
20天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
86 5
|
20天前
|
JSON 缓存 监控
淘宝商品详情接口(Taobao.item_get)丨淘宝API接口指南
淘宝商品详情接口(Taobao.item_get)允许开发者通过HTTP GET方法获取淘宝商品的详细信息,包括商品ID、价格、库存等。请求需包含key、secret、num_iid等必选参数,支持缓存及多种返回格式。此接口广泛应用于电商数据分析、商品选品、价格监控等领域,提升商家运营效率。
|
24天前
|
JSON 搜索推荐 API
LAZADA关键词搜索API接口的获取与应用
Lazada作为东南亚领先的电商平台,为满足开发者和商户需求,开放了关键词搜索API接口。本文详细介绍该接口的获取与应用,助力提升电商业务效率。接口支持关键词搜索、指定搜索范围和排序方式,提供精准、灵活且全面的数据支持,促进电商应用和服务的优化与创新。
24 3
|
1月前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。
下一篇
DataWorks