精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Coolbpf 在perf 事件中的增強(qiáng)

Linux閱碼場 ? 來源:Linux閱碼場 ? 作者:Linux閱碼場 ? 2022-10-25 09:00 ? 次閱讀

1、perf 簡介

?Perf 是內(nèi)置于 Linux 內(nèi)核源碼樹中的性能剖析(profiling)工具。它基于事件采樣的原理,以性能事件為基礎(chǔ),支持針對處理器相關(guān)性能指標(biāo)與操作系統(tǒng)相關(guān)性能指標(biāo)的性能剖析。

1.1、perf 框架

89c4df62-53fa-11ed-a3b6-dac502259ad0.jpg

主要有兩部分組成

Perf Tools:用戶態(tài)的 Perf Tools 為用戶提供了一系列豐富的工具集用于收集、分析性能數(shù)據(jù)。

Perf Event Subsystem:Perf Event 子系統(tǒng)是內(nèi)核眾多子系統(tǒng)中的一員,其主要功能是和 Perf Tool 共同完成數(shù)據(jù)采集的工作。另外,Linux Hard Lockup Detector 也是通過 Perf Event 子系統(tǒng)來實(shí)現(xiàn)的。

?本文將重點(diǎn)圍繞 Perf Event 子系統(tǒng)展開介紹Coolbpf 在perf 事件中的增強(qiáng)。

1.2、perf 事件分類

perf的事件包括:

硬件事件:branch-instrctions / branch-miss / bus-cycles / cache-miss / cache-reference / cycles / instructions

硬件cache事件:d1-cached-miss

軟件事件:cpu-clocks / tasks-clock ....

tracepoint事件:sched_stat_runtime / syscalls...

probe事件:可用戶定義

8a04d2e8-53fa-11ed-a3b6-dac502259ad0.jpg

1.3、當(dāng)前perf 工具集中的不足

?當(dāng)前perf工具以命令行為主,缺乏完善的第三方應(yīng)用開發(fā)sdk,導(dǎo)致perf功能雖然強(qiáng)大,但是功能相對比較封閉,無法適應(yīng)特定場景的問題。比如說常見的CPU system 占用率高的問題,我們通常使用perf record 來記錄系統(tǒng)熱點(diǎn),再通過 FlameGraph 工具轉(zhuǎn)換成火焰圖進(jìn)行分析。該方法存在以下不足:

sys占用率高很有可能只是偶發(fā)性問題,通過監(jiān)控發(fā)現(xiàn)了以后再來執(zhí)行命令,現(xiàn)象很有可能已經(jīng)消失,持續(xù)性追蹤會導(dǎo)致樣本數(shù)太大,無法凸顯出熱點(diǎn)函數(shù);

sys占用率高只是部分cpu現(xiàn)象,具體cpu編號并不確定,導(dǎo)致定向抓取事件操作步驟會變得非常繁瑣;

perf 命令只能輸出中間文件,要生成常用的火焰圖數(shù)據(jù)還需要手工轉(zhuǎn)換;

2、Coolbpf 針對perf 增強(qiáng)

Coolbpf 是一個(gè)便捷高效的一站式eBPF開發(fā)編譯平臺,當(dāng)perf遇見Coolbpf后,會碰撞出什么樣的火花呢?Coolbpf 為perf提供了應(yīng)用開發(fā)的SDK,讓開發(fā)者可以借助eBPF快速開發(fā) perf 應(yīng)用。

2.1、Coolbpf perf 組織架構(gòu)

8a1b465e-53fa-11ed-a3b6-dac502259ad0.png

?大致流程和常規(guī)的Coolbpf 應(yīng)用開發(fā)過程基本一致。主要分為

libbpf 應(yīng)用、

perf 事件處理、

用戶態(tài)處理、 ?接下來我們以 testPerf.py為例,講解perf 典型應(yīng)用開發(fā)。

(文件:https://gitee.com/anolis/coolbpf/blob/master/lcc/pylcc/guide/testPerf.py)

2.2、bpf 應(yīng)用部分

? bpf 應(yīng)用和其它的kprobe/tp代碼實(shí)現(xiàn)并無明顯差別:

#include "lbc.h"

SEC("perf_event")
int bpf_prog(struct bpf_perf_event_data *ctx)
{
    bpf_printk("hello perf
");
    return 0;
}

char _license[] SEC("license") = "GPL";

2.3、perf event

?Coolbpf 對perf_attr 做了python 化處理,故使用在配置 perf attr的時(shí)候,只需要參考 perf 官方文檔中關(guān)于attr 配置說明進(jìn)行配置即可。下面的例子是追蹤 perf PAGE_FAULTS事件的方法。

    pfConfig = {
            "sample_freq": 50, 
            "freq": 1,
            "type": PerfType.SOFTWARE,
            "config": PerfSwIds.PAGE_FAULTS,
        }
        self.attachPerfEvent("bpf_prog", pfConfig)

?此時(shí)系統(tǒng)中的 perf PAGE_FAULTS 事件就可以跟2.2 節(jié)的libbpf 代碼關(guān)聯(lián)起來。

2.4、用戶態(tài)處理

?本示例是將捕捉到的事件輸出到 /sys/kernel/debug/tracing/trace_pipe。用戶可以根據(jù)自己的情況去執(zhí)行event 回調(diào)或者分析maps 信息

3、實(shí)戰(zhàn)應(yīng)用

?根據(jù)1.3 節(jié)的應(yīng)用場景,需要追蹤一個(gè)偶發(fā)性sys 沖高問題。在常規(guī)perf 使用存在困難的情況下,可以基于Coolbpf快速開發(fā)一個(gè)追蹤sys高問題的應(yīng)用程序,代碼總共不超過180行,具體實(shí)現(xiàn)可以參考:perfSys.py(https://gitee.com/anolis/surftrace/blob/master/tools/pylcc/pytool/perfSys.py)

?應(yīng)用實(shí)現(xiàn)流程圖如下:

8a2f2804-53fa-11ed-a3b6-dac502259ad0.png

?可以直接追蹤到對應(yīng)的sys高調(diào)用棧

8a3bdde2-53fa-11ed-a3b6-dac502259ad0.jpg

通過上述方法,可以將原本需要花費(fèi)多日守候才有可能捕捉到現(xiàn)場的疑難問題,縮短到完全無人值守,問題復(fù)現(xiàn)瞬間即可鎖定目標(biāo)的小case。

4、總結(jié)

?Coolbpf 融合了libbpf靈活、高效、安全的優(yōu)勢,結(jié)合perf強(qiáng)大的數(shù)據(jù)收集能力,并自身擁有快速部署、資源高效利用、結(jié)果直觀可視化輸出能力。如今兩兩聯(lián)合,應(yīng)用前景非常廣泛,如性能剖析、應(yīng)用觀測、系統(tǒng)調(diào)優(yōu)等。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19178

    瀏覽量

    229201
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11232

    瀏覽量

    208960
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6747

    瀏覽量

    123204

原文標(biāo)題:4、總結(jié)

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【每天學(xué)點(diǎn)AI】實(shí)戰(zhàn)圖像增強(qiáng)技術(shù)人工智能圖像處理的應(yīng)用

    圖像增強(qiáng)(ImageEnhancement)是人工智能和計(jì)算機(jī)視覺中一項(xiàng)重要的技術(shù),也是人工智能數(shù)據(jù)集預(yù)處理的一個(gè)重要步驟。它旨在提高圖像的質(zhì)量,使其視覺上更加清晰、細(xì)節(jié)更豐富。這項(xiàng)技術(shù)自動駕駛
    的頭像 發(fā)表于 11-22 17:14 ?402次閱讀
    【每天學(xué)點(diǎn)AI】實(shí)戰(zhàn)圖像<b class='flag-5'>增強(qiáng)</b>技術(shù)<b class='flag-5'>在</b>人工智能圖像處理<b class='flag-5'>中</b>的應(yīng)用

    VGA信號增強(qiáng)器的使用方法

    現(xiàn)代電子設(shè)備,VGA接口因其簡單、成本低廉而被廣泛應(yīng)用于電腦顯示器、投影儀等設(shè)備。然而,VGA信號長距離傳輸時(shí)容易受到干擾和衰減,導(dǎo)致圖像質(zhì)量下降。為了解決這一問題,VGA信號增強(qiáng)
    的頭像 發(fā)表于 11-08 10:06 ?231次閱讀

    增強(qiáng)現(xiàn)實(shí)抬頭顯示是啥意思

     增強(qiáng)現(xiàn)實(shí)抬頭顯示(AR-HUD, Augmented Reality Head-Up Display)是AR增強(qiáng)現(xiàn)實(shí)技術(shù)和HUD抬頭顯示功能的結(jié)合體。這種技術(shù)通過計(jì)算機(jī)生成的虛擬信息疊加在三維道路環(huán)境,使視覺特效與真實(shí)道路元
    的頭像 發(fā)表于 09-15 14:37 ?678次閱讀

    如何使用Intel Processor Trace工具查看任意函數(shù)執(zhí)行時(shí)間

    在上一篇文章 PT_PERF: 基于 Intel PT 的時(shí)延性能分析工具 ,我們介紹了 Intel Processor Trace 時(shí)延分析工具的背景,功能和實(shí)現(xiàn)。
    的頭像 發(fā)表于 08-07 14:24 ?435次閱讀
    如何使用Intel Processor Trace工具查看任意函數(shù)執(zhí)行時(shí)間

    增強(qiáng)模式下引導(dǎo)加載程序時(shí),OTA升級失敗了,為什么?

    我注意到,當(dāng)我增強(qiáng)模式下重新啟動以 0x81000 時(shí)手動啟動 user2 固件,然后運(yùn)行 OTA 升級以升級 user1,它看起來像開始升級固件,但它幾乎立即失敗(WDT 重新啟動),使
    發(fā)表于 07-18 07:12

    Dify中使用PerfXCloud大模型推理服務(wù)

    近日,Dify全面接入了Perf XCloud,借助Perf XCloud提供的大模型調(diào)用服務(wù),用戶可在Dify構(gòu)建出更加經(jīng)濟(jì)、高效的LLM應(yīng)用。
    的頭像 發(fā)表于 07-15 09:28 ?843次閱讀
    <b class='flag-5'>在</b>Dify中使用PerfXCloud大模型推理服務(wù)

    增強(qiáng)現(xiàn)實(shí)和虛擬現(xiàn)實(shí)的聯(lián)系和區(qū)別

    增強(qiáng)現(xiàn)實(shí)(AR)和虛擬現(xiàn)實(shí)(VR)是兩種不同的技術(shù),它們許多方面都有聯(lián)系和區(qū)別。 一、增強(qiáng)現(xiàn)實(shí)(AR)和虛擬現(xiàn)實(shí)(VR)的定義 增強(qiáng)現(xiàn)實(shí)(AR):
    的頭像 發(fā)表于 07-08 11:00 ?2069次閱讀

    增強(qiáng)現(xiàn)實(shí)是虛實(shí)結(jié)合嗎為什么

    們提供了一種全新的交互方式,使得虛擬世界與現(xiàn)實(shí)世界之間的界限變得模糊,實(shí)現(xiàn)了虛實(shí)結(jié)合。 增強(qiáng)現(xiàn)實(shí)技術(shù)是一種將計(jì)算機(jī)生成的虛擬信息與現(xiàn)實(shí)世界相結(jié)合的技術(shù)。它通過將虛擬信息疊加到現(xiàn)實(shí)世界增強(qiáng)用戶對現(xiàn)實(shí)世界的感知和理解。與傳統(tǒng)的虛
    的頭像 發(fā)表于 07-08 10:58 ?440次閱讀

    增強(qiáng)現(xiàn)實(shí)技術(shù)的特點(diǎn)有哪些

    增強(qiáng)現(xiàn)實(shí)技術(shù)(Augmented Reality,簡稱AR技術(shù))是一種將計(jì)算機(jī)生成的虛擬信息疊加到現(xiàn)實(shí)世界的技術(shù)。它通過實(shí)時(shí)地計(jì)算攝像機(jī)影像的位置及角度,將相應(yīng)的圖像、視頻、3D模型等虛擬信息
    的頭像 發(fā)表于 07-08 10:56 ?846次閱讀

    增強(qiáng)現(xiàn)實(shí)ar和全息投影的區(qū)別

    增強(qiáng)現(xiàn)實(shí)(AR)和全息投影是兩種不同的技術(shù),它們很多方面都有顯著的區(qū)別。 一、定義 增強(qiáng)現(xiàn)實(shí)(AR) 增強(qiáng)現(xiàn)實(shí)(Augmented Reality,簡稱AR)是一種將虛擬信息疊加到現(xiàn)
    的頭像 發(fā)表于 07-08 10:44 ?1186次閱讀

    想通過perf工具來檢查2段不同代碼的內(nèi)存占用率,但一直沒找到,怎么辦?

    想通過perf工具來檢查2段不同代碼的內(nèi)存占用率,但一直沒找到,怎么辦?
    發(fā)表于 05-17 13:33

    增強(qiáng)現(xiàn)實(shí)ar是什么

    增強(qiáng)現(xiàn)實(shí)(Augmented Reality,簡稱AR)是一種將虛擬信息融入到現(xiàn)實(shí)環(huán)境的技術(shù),使用戶能夠現(xiàn)實(shí)世界中看到并與虛擬物體互動。這種技術(shù)通過計(jì)算機(jī)視覺、圖像識別、傳感器融合等技術(shù)手段
    的頭像 發(fā)表于 05-02 15:18 ?760次閱讀

    N溝道,100 V,1.09 mOhm,具有增強(qiáng)SOA的MOSFET CCPAK1212i包目標(biāo)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《N溝道,100 V,1.09 mOhm,具有增強(qiáng)SOA的MOSFET CCPAK1212i包目標(biāo)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 02-20 10:57 ?0次下載
    N溝道,100 V,1.09 mOhm,具有<b class='flag-5'>增強(qiáng)</b>SOA的MOSFET  <b class='flag-5'>在</b>CCPAK1212i包<b class='flag-5'>中</b>目標(biāo)數(shù)據(jù)表

    如何在Aurix TC399測量DMIPS?

    我有一個(gè) Aurix TC399 控制器上運(yùn)行的算法,我想知道,我如何 CAN 測量 CPU 負(fù)載(以 DMIPS 為單位)? 根據(jù)我目前的理解和研究,我認(rèn)為我需要監(jiān)控指令的數(shù)量
    發(fā)表于 01-29 06:29

    modustoolbox正常編譯通過工程下增強(qiáng)了全局變量數(shù)組的長度后報(bào)錯(cuò)了怎么解決?

    客戶使用modustoolboxdevelpcy8c6245azi-s3D72,正常編譯通過工程下增強(qiáng)了全局變量數(shù)組的長度,結(jié)果編譯報(bào)導(dǎo)不錯(cuò),初始化是內(nèi)存超越了。通過對比發(fā)現(xiàn).bss的大小最小是25292,如附件描述,請幫忙
    發(fā)表于 01-25 06:58