99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

Linux閱碼場(chǎng) ? 來(lái)源:Linux閱碼場(chǎng) ? 作者:Linux閱碼場(chǎng) ? 2022-10-25 09:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、perf 簡(jiǎn)介

?Perf 是內(nèi)置于 Linux 內(nèi)核源碼樹(shù)中的性能剖析(profiling)工具。它基于事件采樣的原理,以性能事件為基礎(chǔ),支持針對(duì)處理器相關(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 也是通過(guò) Perf Event 子系統(tǒng)來(lái)實(shí)現(xiàn)的。

?本文將重點(diǎn)圍繞 Perf Event 子系統(tǒng)展開(kāi)介紹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)用開(kāi)發(fā)sdk,導(dǎo)致perf功能雖然強(qiáng)大,但是功能相對(duì)比較封閉,無(wú)法適應(yīng)特定場(chǎng)景的問(wèn)題。比如說(shuō)常見(jiàn)的CPU system 占用率高的問(wèn)題,我們通常使用perf record 來(lái)記錄系統(tǒng)熱點(diǎn),再通過(guò) FlameGraph 工具轉(zhuǎn)換成火焰圖進(jìn)行分析。該方法存在以下不足:

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

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

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

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

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

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

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

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

libbpf 應(yīng)用、

perf 事件處理、

用戶態(tài)處理、 ?接下來(lái)我們以 testPerf.py為例,講解perf 典型應(yīng)用開(kāi)發(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)并無(wú)明顯差別:

#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 對(duì)perf_attr 做了python 化處理,故使用在配置 perf attr的時(shí)候,只需要參考 perf 官方文檔中關(guān)于attr 配置說(shuō)明進(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)起來(lái)。

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)用場(chǎng)景,需要追蹤一個(gè)偶發(fā)性sys 沖高問(wèn)題。在常規(guī)perf 使用存在困難的情況下,可以基于Coolbpf快速開(kāi)發(fā)一個(gè)追蹤sys高問(wèn)題的應(yīng)用程序,代碼總共不超過(guò)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

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

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

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

4、總結(jié)

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

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

    關(guān)注

    68

    文章

    19887

    瀏覽量

    235090
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11509

    瀏覽量

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

    關(guān)注

    37

    文章

    7144

    瀏覽量

    125564

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    注入增強(qiáng)型IGBT學(xué)習(xí)筆記

    為了協(xié)調(diào)IGBT通態(tài)特性與關(guān)斷特性及短路特性之間的矛盾,提高器件的綜合性能和可靠性,IGBT引入了一種電子注入增強(qiáng)效應(yīng)(Injection Enhancement Effect,IE),既可
    的頭像 發(fā)表于 05-21 14:15 ?659次閱讀
    注入<b class='flag-5'>增強(qiáng)</b>型IGBT學(xué)習(xí)筆記

    振動(dòng)馬達(dá)VR設(shè)備的應(yīng)用優(yōu)點(diǎn)分析

    振動(dòng)馬達(dá)作為一種重要的觸覺(jué)反饋技術(shù),虛擬現(xiàn)實(shí)(VR)設(shè)備的應(yīng)用越來(lái)越廣泛。它通過(guò)模擬觸覺(jué)反饋,增強(qiáng)用戶虛擬環(huán)境的沉浸感。振動(dòng)馬達(dá)的應(yīng)
    的頭像 發(fā)表于 05-17 00:07 ?203次閱讀

    合科泰MOS管開(kāi)關(guān)電源的應(yīng)用

    隨著電子技術(shù)的飛速發(fā)展和環(huán)保意識(shí)的增強(qiáng),高效、節(jié)能的電源系統(tǒng)成為市場(chǎng)的主流需求。開(kāi)關(guān)電源以其高效率、小體積等優(yōu)點(diǎn)在眾多領(lǐng)域得到了廣泛應(yīng)用。而MOS管作為開(kāi)關(guān)電源的核心元件之一,電源轉(zhuǎn)換、控制和保護(hù)
    的頭像 發(fā)表于 03-24 14:10 ?629次閱讀
    合科泰MOS管<b class='flag-5'>在</b>開(kāi)關(guān)電源<b class='flag-5'>中</b>的應(yīng)用

    AN4254-24CS系列串行EEPROM中使用增強(qiáng)軟件寫(xiě)保護(hù)功能

    電子發(fā)燒友網(wǎng)站提供《AN4254-24CS系列串行EEPROM中使用增強(qiáng)軟件寫(xiě)保護(hù)功能.pdf》資料免費(fèi)下載
    發(fā)表于 01-22 15:43 ?0次下載
    AN4254-<b class='flag-5'>在</b>24CS系列串行EEPROM中使用<b class='flag-5'>增強(qiáng)</b>軟件寫(xiě)保護(hù)功能

    24CS系列串行EEPROM中使用增強(qiáng)軟件寫(xiě)保護(hù)功能

    電子發(fā)燒友網(wǎng)站提供《24CS系列串行EEPROM中使用增強(qiáng)軟件寫(xiě)保護(hù)功能.pdf》資料免費(fèi)下載
    發(fā)表于 01-15 15:21 ?0次下載
    <b class='flag-5'>在</b>24CS系列串行EEPROM中使用<b class='flag-5'>增強(qiáng)</b>軟件寫(xiě)保護(hù)功能

    DFT圖像處理的作用 DFT音頻信號(hào)處理的應(yīng)用

    處理的幾個(gè)主要作用: 頻域?yàn)V波 :DFT允許我們分析圖像的頻率成分,從而可以設(shè)計(jì)濾波器來(lái)增強(qiáng)或抑制特定頻率的信號(hào),例如低通濾波器可以減少圖像噪聲,而高通濾波器可以增強(qiáng)邊緣。 圖像壓縮 :
    的頭像 發(fā)表于 12-20 09:18 ?1252次閱讀

    傅立葉變換圖像處理的作用

    傅里葉變換圖像處理中發(fā)揮著至關(guān)重要的作用。以下是傅里葉變換圖像處理的幾個(gè)主要作用: 一、圖像增強(qiáng)與去噪 去噪 :圖像的噪聲通常表現(xiàn)為
    的頭像 發(fā)表于 12-06 16:55 ?2290次閱讀

    FSX技術(shù)消防救援行動(dòng)的作用

    其中FLIR獨(dú)有的靈活場(chǎng)景增強(qiáng)(FSX)技術(shù) 實(shí)際應(yīng)用起到了關(guān)鍵作用 火場(chǎng)救援實(shí)錄 FSX是一種先進(jìn)的非線性圖像處理算法,能在高動(dòng)態(tài)范圍圖像上保留細(xì)節(jié)。它能夠從原始圖像中提取并增強(qiáng)
    的頭像 發(fā)表于 12-04 10:36 ?470次閱讀
    FSX技術(shù)<b class='flag-5'>在</b>消防救援行動(dòng)<b class='flag-5'>中</b>的作用

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

    圖像增強(qiáng)(ImageEnhancement)是人工智能和計(jì)算機(jī)視覺(jué)中一項(xiàng)重要的技術(shù),也是人工智能數(shù)據(jù)集預(yù)處理的一個(gè)重要步驟。它旨在提高圖像的質(zhì)量,使其視覺(jué)上更加清晰、細(xì)節(jié)更豐富。這項(xiàng)技術(shù)自動(dòng)駕駛
    的頭像 發(fā)表于 11-22 17:14 ?1714次閱讀
    【每天學(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信號(hào)增強(qiáng)器的使用方法

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

    343x上支持增強(qiáng)現(xiàn)實(shí)(AR)和功耗敏感型應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《343x上支持增強(qiáng)現(xiàn)實(shí)(AR)和功耗敏感型應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 10:05 ?0次下載
    <b class='flag-5'>在</b>343x上支持<b class='flag-5'>增強(qiáng)</b>現(xiàn)實(shí)(AR)和功耗敏感型應(yīng)用

    增強(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ù)通過(guò)計(jì)算機(jī)生成的虛擬信息疊加在三維道路環(huán)境,使視覺(jué)特效與真實(shí)道路元
    的頭像 發(fā)表于 09-15 14:37 ?1562次閱讀

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

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

    增強(qiáng)型MOS管的結(jié)構(gòu)解析

    增強(qiáng)型MOS管(Enhancement MOSFET)是一種重要的場(chǎng)效應(yīng)晶體管,具有高輸入阻抗、低輸入電流、高速開(kāi)關(guān)和低噪聲等優(yōu)點(diǎn),被廣泛應(yīng)用于電子設(shè)備。以下是對(duì)增強(qiáng)型MOS管結(jié)構(gòu)的詳細(xì)解析。
    的頭像 發(fā)表于 07-24 10:51 ?2822次閱讀

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

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