![linux性能調(diào)優(yōu)學(xué)習(xí)筆記_第1頁(yè)](http://file4.renrendoc.com/view/0c85d8e60764989344edab6fbd83d860/0c85d8e60764989344edab6fbd83d8601.gif)
![linux性能調(diào)優(yōu)學(xué)習(xí)筆記_第2頁(yè)](http://file4.renrendoc.com/view/0c85d8e60764989344edab6fbd83d860/0c85d8e60764989344edab6fbd83d8602.gif)
![linux性能調(diào)優(yōu)學(xué)習(xí)筆記_第3頁(yè)](http://file4.renrendoc.com/view/0c85d8e60764989344edab6fbd83d860/0c85d8e60764989344edab6fbd83d8603.gif)
![linux性能調(diào)優(yōu)學(xué)習(xí)筆記_第4頁(yè)](http://file4.renrendoc.com/view/0c85d8e60764989344edab6fbd83d860/0c85d8e60764989344edab6fbd83d8604.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Linux性能調(diào)優(yōu)Profiling幾種工具profiling包括幾種:cpuprofiling,即提到的性能分析。memoryprofiling,即分析程序性能。networkprofiling,即網(wǎng)絡(luò)流量的分析。另外,profiling又分兩種:1,sampling。即采樣方式。2,instruments,即插裝代碼技術(shù)。(包含:編譯期間,鏈接期間,運(yùn)行期間)。oprofile----屬于sampling方式,即不影響程序行為,也不需要重啟程序,它是對(duì)cpu進(jìn)行采樣分析。gprof
----屬于插裝技術(shù),需在編譯期間增加-pg選項(xiàng),屬于GNU部分,不需安裝,隨著gcc附帶。valgrind---屬于插裝技術(shù),需要在運(yùn)行期間增加valgrind選項(xiàng)。(其中massif工具用于內(nèi)存分析,callgrind用于性能分析)google-perftools----屬于插裝技術(shù),需要在鏈接期間增加-L/usr/lib-lprofiler選項(xiàng)。gprof分析linux程序性能瓶頸gcc-pg-otesttest.ctest運(yùn)行的時(shí)候會(huì)把搜集的信息保存在gmoun.out中fedora不能使用-lc_p選項(xiàng)的問(wèn)題
一般gprof只能查看用戶(hù)函數(shù)信息。如果想查看庫(kù)函數(shù)的信息,需要在編譯是再加入“-lc_p”編譯參數(shù)代替“-lc”編譯參數(shù),這樣程序會(huì)鏈接libc_p.a庫(kù),才可以產(chǎn)生庫(kù)函數(shù)的profiling信息。需要安裝glibc-profile,下載地址http://ftp.riken.jp/Linux/fedora/core/updates/2/i386/glibc-profile-2.3.3-27.1.i386.rp。gprofhellogmon.out-p得到每個(gè)函數(shù)占用的執(zhí)行時(shí)間gprofhellogmon.out-q得到callgraph,包含了每個(gè)函數(shù)的調(diào)用關(guān)系,調(diào)用次數(shù),執(zhí)行時(shí)間等信息。gprofhellogmon.out-A得到一個(gè)帶注釋的“源代碼清單”,它會(huì)注釋源碼,指出每個(gè)函數(shù)的執(zhí)行次數(shù)。這需要在編譯的時(shí)候增加-g選項(xiàng)。Oprofile性能調(diào)優(yōu)/news/要使用oprofile
首先得采用打開(kāi)oprofile支持的內(nèi)核啟動(dòng)。Oprofile需要重新編譯內(nèi)核,請(qǐng)確認(rèn):
.config文件中設(shè)置:
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
另外,還要在Processortypeandfeatures菜單中啟用LocalAPIC和IO-APIC:
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y查看處理起本身沒(méi)有集成APICoprofile.ko內(nèi)核模塊已經(jīng)被集成到linux2.6內(nèi)核中,所以只需要安裝前端工具,可以從oprofile官方網(wǎng)站下載源碼來(lái)進(jìn)行安裝,當(dāng)前最新版本為0.9.4。其支持兩種采樣(sampling)方式:基于事件的采樣(event
based)和基于時(shí)間的采樣(time
based)。
基于事件的采樣是oprofile只記錄特定事件(比如L2
cache
miss)的發(fā)生次數(shù),當(dāng)達(dá)到用戶(hù)設(shè)定的
定值時(shí)oprofile
就記錄一下(采一個(gè)樣)。這種方式需要CPU
內(nèi)部有性能計(jì)數(shù)器(performace
counter)。
現(xiàn)代CPU內(nèi)部一般都有性能計(jì)數(shù)器,龍芯2E內(nèi)部亦內(nèi)置了2個(gè)性能計(jì)數(shù)器?;跁r(shí)間的采樣是oprofile
借助OS
時(shí)鐘中斷的機(jī)制,每個(gè)時(shí)鐘中斷
oprofile
都會(huì)記錄一次(采一次樣)。
引入的目的在于,提供對(duì)沒(méi)有性能計(jì)數(shù)器
CPU
的支持。其精度相對(duì)于基于事件的采樣要低。因?yàn)橐柚?/p>
OS
時(shí)鐘中斷的支持,對(duì)禁用中斷的代碼oprofile不能對(duì)其進(jìn)行分析。
oprofile
在Linux
上分兩部分,一個(gè)是內(nèi)核模塊(oprofile.ko),一個(gè)為用戶(hù)空間的守護(hù)進(jìn)程(oprofiled)。前者負(fù)責(zé)訪(fǎng)問(wèn)性能計(jì)數(shù)器或者注冊(cè)基于時(shí)間采樣的函數(shù)(使用register_timer_hook注冊(cè)之,使時(shí)鐘中斷處理程序最后執(zhí)行profile_tick
時(shí)可以訪(fǎng)問(wèn)之),并采樣置于內(nèi)核的緩沖區(qū)內(nèi)。后者在后臺(tái)運(yùn)行,負(fù)責(zé)從內(nèi)核空間收集數(shù)據(jù),寫(xiě)入文件。
oprofile使用初始化
opcontrol--init加載模塊,mout/dev/oprofile創(chuàng)建必需的文件和目錄配置
//opcontrol
--setup
--event=CYCLES:1000::0:1
opcontrol--no-vmlinux或者opcontrol--vmlinux=/boot/vmlinux-`uname-r`決定是否對(duì)kernel進(jìn)行profilingopcontrol--event=CPU_CLK_UNHALTED:5000opcontrol--separate=kernel--separate=lib分開(kāi)記錄每個(gè)程序的性能開(kāi)銷(xiāo)opcontrol--reset清楚當(dāng)前會(huì)話(huà)中的數(shù)據(jù)啟動(dòng)
opcontrol--start開(kāi)始profiling運(yùn)行待分析之程序
./hello運(yùn)行應(yīng)用程序,oprofile會(huì)對(duì)它進(jìn)行profiling取出數(shù)據(jù)
opcontrol--dump把收集到的數(shù)據(jù)寫(xiě)入文件opcontrol--stop停止profilingopcotrol-h關(guān)閉守護(hù)進(jìn)程oprofiledopcontrol--shutdown停止oprofiledopcontrol--deinit卸載模塊oprofile的功能非常強(qiáng)大,可以對(duì)每個(gè)線(xiàn)程進(jìn)行單獨(dú)采樣,也可以對(duì)每個(gè)CPU單獨(dú)采樣,這些都是通過(guò)opcontrol的--separate選項(xiàng)來(lái)完成的。opcontrol
--init
該命令會(huì)加載oprofile.ko模塊,mount
oprofilefs。成功后會(huì)在/dev/oprofile/目錄下導(dǎo)出一些文件和目錄如:
cpu_type,
dump,
enable,
pointer_size,
stats/配置
主要設(shè)置計(jì)數(shù)事件和樣本計(jì)數(shù),以及計(jì)數(shù)的CPU模式(用戶(hù)態(tài)、核心態(tài))
opcontrol
--setup
--event=CYCLES:1000::0:1
則是設(shè)置計(jì)數(shù)事件為CYCLES,即對(duì)處理器時(shí)鐘周期進(jìn)行計(jì)數(shù)
樣本計(jì)數(shù)為1000,即每1000個(gè)時(shí)鐘周期,oprofile
取樣一次。處理器運(yùn)行于核心態(tài)則不計(jì)數(shù)
運(yùn)行于用戶(hù)態(tài)則計(jì)數(shù)
--event=name:count:unitmask:kernel:user
name:
event
name,
e.g.
CYCLES
or
ICACHE_MISSES
count:
reset
counter
value
e.g.
100000
unitmask:
hardware
unit
mask
e.g.
0x0f
kernel:
whether
to
profile
kernel:
0
or
1user:
whether
to
profile
userspace:
0
or
1
注意:opreport在虛擬機(jī)下不能使用,物理機(jī)上都是沒(méi)問(wèn)題的。--vmlinux指定的內(nèi)核必須是沒(méi)有被壓縮過(guò)的原始的文件
--vmliunx指定的內(nèi)核必須是當(dāng)前系統(tǒng)運(yùn)行的內(nèi)核在要對(duì)kernel以及modules進(jìn)行測(cè)試時(shí),--vmlinux必須要指定內(nèi)核初始化如果出現(xiàn)timermode說(shuō)明出現(xiàn)沖突,應(yīng)該調(diào)用rm/root/.oprofile/daemonrc刪除該文件即可。對(duì)于每一次測(cè)試過(guò)程中,如果需要進(jìn)行事件的重新設(shè)置,就必須重啟daemon,它是一個(gè)守護(hù)進(jìn)程。也就是說(shuō),收集數(shù)據(jù)完成后,要用--shutdown命令來(lái)停止daemon,而不是--stop(此命令只是停止profiling),這樣再次進(jìn)行—start命令就可以使用新的事件設(shè)置;/usr/bin/oprofiled
守護(hù)進(jìn)程
/usr/bin/opcontrol
控制前端,負(fù)責(zé)控制與用戶(hù)交互,用得最多/usr/bin/opannotate
根據(jù)搜集到的數(shù)據(jù),在源碼或者匯編層面上注釋并呈現(xiàn)給用戶(hù)
/usr/bin/opreport
生成二進(jìn)制鏡像或符號(hào)的概覽
/usr/bin/ophelp
列出oprofile支持的事件/usr/bin/opgprof
生成gprof格式的剖析數(shù)據(jù)
opstack:
產(chǎn)生調(diào)用圖profile,但要求x86/2.6的平臺(tái),并且linux2.6安裝了call-graphpatchoparchive:將所有的原始數(shù)據(jù)文件收集打包,可以到另一臺(tái)機(jī)器上進(jìn)行分析。op_import:將采樣的數(shù)據(jù)庫(kù)文件從另一種abi轉(zhuǎn)化成本地格式。最常用的是opreport,這個(gè)可以給出image和symbols的信息,比如我想得到每個(gè)函數(shù)的執(zhí)行時(shí)間占用比例等信息,用來(lái)發(fā)現(xiàn)系統(tǒng)性能瓶頸。opannotate可以對(duì)源碼進(jìn)行注釋?zhuān)赋瞿膫€(gè)地方占用時(shí)間比較多。常用命令如下:opreport-l/bin/bash--exclude-depand--threshold1,用來(lái)發(fā)現(xiàn)系統(tǒng)瓶頸。opannotate--source--output-dir=annotated/usr/local/oprofile-pp/bin/oprofiledopannotate--source--base-dirs=/tmp/build/libfoo/--search-dirs=/home/user/libfoo/--output-dir=annotated//lib/libfoo.so交叉運(yùn)程注意問(wèn)題內(nèi)核的profile選項(xiàng)是都選擇上的,注意另外還需要將eabi選項(xiàng)也選上才行l(wèi)ibpopt.so.0需要拷貝下去/etc/目錄下創(chuàng)建mtab并添加“nodev/dev/oprofileoprofilefsrw00”交叉編譯oprofile/nanjianhui/article/details/6454812/yuyin86/article/details/66714921.首先要下載OProfile的相關(guān)軟件包,如下:oprofile-0.9.6.tar.gz:/download/popt-1.14.tar.gz:/projects/popt/binutils-2.20.tar.gz:/gnu/binutils/
注意:在下載oprofile-0.9.6.tar.gz的時(shí)候,建議通過(guò)git來(lái)下載,否則可能不能支持ARM-CortexA9.gitclonegit:///gitroot/oprofile/oprofile首先確認(rèn)標(biāo)板上運(yùn)行的Linux是否支持下面的選項(xiàng):ProfilingSupportOProfilesystemprofilingKernelperformanceeventsandcounters$makegoldfish_defconfig
$makemenuconfig
修改內(nèi)核配置如下
Generalsetup--->
[*]Profilingsupport(EXPERIMENTAL)
[]Activatemarkers
[*]OProfilesystemprofiling(EXPERIMENTAL)
這是把OProfile直接編進(jìn)內(nèi)核,也可以選擇[M]OProfil
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場(chǎng)施工防臺(tái)風(fēng)災(zāi)害制度
- 施工現(xiàn)場(chǎng)安全管理制度的國(guó)際比較與借鑒
- 施工單位關(guān)于現(xiàn)場(chǎng)布置的工作聯(lián)系函
- 科技輔助小學(xué)語(yǔ)文教學(xué)的策略與實(shí)踐
- 飯店生產(chǎn)安全事故應(yīng)急預(yù)案
- 食品安全的應(yīng)急預(yù)案
- DB6528T 146-2024庫(kù)爾勒香梨雜交育種技術(shù)規(guī)程
- DB3702T 46.2-2024地理標(biāo)志產(chǎn)品 平度大花生 第2部分:質(zhì)量標(biāo)準(zhǔn)
- 專(zhuān)賣(mài)店員工聘用合同標(biāo)準(zhǔn)格式
- 個(gè)人信用抵押借款合同2025
- 北方、南方戲劇圈的雜劇文檔
- 燈謎大全及答案1000個(gè)
- 白酒銷(xiāo)售經(jīng)理述職報(bào)告
- 六年級(jí)英語(yǔ)上冊(cè)綜合測(cè)試卷(一)附答案
- 部編小學(xué)語(yǔ)文(6年級(jí)下冊(cè)第6單元)作業(yè)設(shè)計(jì)
- 洗衣機(jī)事業(yè)部精益降本總結(jié)及規(guī)劃 -美的集團(tuán)制造年會(huì)
- 2015-2022年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文/數(shù)學(xué)/英語(yǔ)筆試參考題庫(kù)含答案解析
- 2023年菏澤醫(yī)學(xué)專(zhuān)科學(xué)校單招綜合素質(zhì)模擬試題及答案解析
- 鋁合金門(mén)窗設(shè)計(jì)說(shuō)明
- 小學(xué)數(shù)學(xué)-三角形面積計(jì)算公式的推導(dǎo)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)同步練習(xí)(含答案)
評(píng)論
0/150
提交評(píng)論