1. 程式人生 > >系統技術非業餘研究 » ftrace和它的前端工具trace

系統技術非業餘研究 » ftrace和它的前端工具trace

最近在調查lockless的ring_buffer的時候,發現了ftrace.

ftrace是 Linux 核心中提供的一種除錯工具。使用 ftrace 可以對核心中發生的事情進行跟蹤,這在除錯 bug 或者分析核心時非常有用.

ftrace在2.6.28-rc2以後的Linux核心都支援的, 當然包括RHEL6(2.6.32), 我粗粗的演示下ubuntu 10.10下的使用:

$ sudo apt-get -y install trace-cmd
$ man trace-cmd-record #這個是最核心的功能,收集資料的
$ sudo trace-cmd record  -e sched_switch ls > /dev/null
disable all
enable sched_switch
offset=464000
offset=466000

$ trace-cmd report
version = 6
...
cpus=2
              ls-8588  [001] 16611.191996: sched_switch:         8588:120:R ==> 8587:120: trace-cmd
       trace-cmd-8587  [001] 16611.192040: sched_switch:         8587:120:S ==> 8588:120: ls
            Xorg-1360  [000] 16611.192868: sched_switch:         1360:120:R ==> 1979:120: alsa-sink
              ls-8588  [001] 16611.192979: sched_switch:         8588:120:R ==> 1909:120: pulseaudio
       ...

類似的功能,當然可以用systemtap來寫,但是有現成的工具總是更方便.

trace-cmd使用的模式總是先record收集資料,然後report.

trace-cmd目前支援以下外掛plugins:
blk function_graph mmiotrace wakeup_rt wakeup function sched_switch nop
對於大部分的系統調優是足夠的,更多的使用場景有待大家挖掘.

祝大家玩的開心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

No related posts.

相關推薦

系統技術業餘研究 » ftrace前端工具trace

最近在調查lockless的ring_buffer的時候,發現了ftrace. ftrace是 Linux 核心中提供的一種除錯工具。使用 ftrace 可以對核心中發生的事情進行跟蹤,這在除錯 bug 或者分析核心時非常有用. ftrace在2.6.28-rc2以後的Linux核心都支援

系統技術業餘研究 » Erlangport通訊的資料格式

erlang內建的port非常強大,是erlang通往外面世界的通道,所以port和erlang程式的通訊的資料格式影響了通訊的效率,和穩定性。我們在選擇格式的時候, 會優先考慮到erlang的特性和port程式編寫語言的特點,選出一種2者都容易處理的格式。 通訊通常有2種,基於行的文字和2進位制

系統技術業餘研究 » BufferedIODirectIO混用導致的髒頁回寫問題

今天曲山同學在線上問道: 我測試發現,如果cp一個檔案,然後direct io讀這個檔案,會消耗很長時間。 我猜測dio不能用page cache,而這個檔案cp以後都在cache裡面,要強制刷到磁碟,才能讀? 我cp這個檔案很大,超過256M 由於資料檔案預設是用bufferedio方式開啟的

系統技術業餘研究 » rebarcommon_test使用實踐疑惑澄清

rebar is an Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases. rebar is a self-contained Erla

系統技術業餘研究 » 未公開的erlang ports trace

erlang的trace機制非常強大, 在dbg, ttb模組的配合下, 可以非常清楚的瞭解系統的運作, 排錯, 和調優. 但是有個對於做網路程式重要的功能被忽視了, 沒有寫到文件. 那就是trace ports訊息. 我們的gen_tcp,file都是port實現的, 那麼瞭解這麼模組的運作其實

系統技術業餘研究 » Fio IO效能測試工具介紹

官網:http://freshmeat.net/projects/fio/ fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 13

系統技術業餘研究 » 新的工作研究方向

和大家更新下: 做了將近8年資料庫後,我的工作和研究方向將會延伸到虛擬化和計算相關的雲服務,希望能夠和大家一起進步,Happy New Year! 預祝大家玩得開心! Post Footer automatically generated by wp-posturl plugin for w

系統技術業餘研究 » 如何檢視節點的可用控制代碼數目已用控制代碼數

很多同學在使用erlang的過程中, 碰到了很奇怪的問題, 後來查明都是檔案控制代碼不夠用了, 因為系統預設的是每個程序1024. 所以我們有必要在程式執行的時候, 瞭解這些資訊, 以便診斷和預警. 下面的這個程式就演示了這個如何檢視節點的可用控制代碼數目和已用控制代碼數的功能. 首先確保你已經安

系統技術業餘研究 » oprofile抓不到取樣資料問題解決方法

最近有同學反映在某些新機器上做效能調優的時候, oprofile 有時抓不到資料,我之前也遇到這個情況,很是無語,今天特地驗證了下。 # 我們的作業系統和機器配置大概是這樣的: $sudo aspersa/summary # Aspersa System Summary Report ##

系統技術業餘研究 » Erlang match_spec引擎介紹應用

match_spec是什麼呢? A “match specification” (match_spec) is an Erlang term describing a small “program” that will try to match something (either the para

系統技術業餘研究 » Erlang虛擬機器基礎設施dtrace探測點介紹使用

最新的Erlang虛擬機器(R15B01)很大的一個改進就是加入了對dtrace探測點的支援了, 具體參見這裡, 主要目標是方便在生產實踐中定位複雜的效能問題。 目前Erlang的虛擬機器的探測點支援Linux的systemtap和freebsd的dtrace,我們剛好能夠享受的到。 作者Scot

系統技術業餘研究 » Erlang 網路密集型伺服器的瓶頸解決思路

最近我們的Erlang IO密集型的伺服器程式要做細緻的效能提升,從每秒40萬包處理提升到60萬目標,需要對程序和IO排程器的原理很熟悉,並且對行為進行微調,花了不少時間參閱了相關的文件和程式碼。 其中最有價值的二篇文章是: 1. Characterizing the Scalability of

系統技術業餘研究 » gen_tcp:send的深度解刨使用指南(初稿)

在大家的印象中, gen_tcp:send是個很樸素的函式, 一呼叫資料就喀嚓喀嚓到了對端. 這是個很大的誤解, Erlang的otp文件寫的很不清楚. 而且這個功能對於大部分的網路程式是至關重要的, 它的使用對否極大了影響了應用的效能. 我聽到很多同學在抱怨erlang的效能低或者出了很奇怪的問

系統技術業餘研究 » 計算機各系統元件的吞吐量延遲 看圖不說話

這個圖挺好的,就是比較粗線條,有些東西不太完整/準確,比如現有的USB實際上是480M/12M和1.5M三種速率(暫不算3.0和無線的) 另:幫樓主補充一下這類資料的意義:如果對各種匯流排的速率和IOPS如果沒有概念和預估,寫程式時就只能Compile & Pray了。 Reply:O

系統技術業餘研究 » 如何在TILEPro64多核心板卡上編譯執行Erlang

美國Tilera公司的眾核伺服器,單顆核心包含64顆CPU。硬體架構圖: 卡長這樣的: Erlang已經可以在這款CPU上成功執行,我們可以參考Ulf Wiger在Multicore ☺ Message-passing Concurrency 文件中關於Erlang在Tilera上的效能圖

系統技術業餘研究 » erlang的profile工具原理優缺點

erlang的tools application下包含了一系列的profile工具, 包括 eprof cprof fprof, 具體的使用可以參看文件和<< erlang effective guide>>. 我這裡要說的是他們的工作原理。 這些模組的核心都是根據erla

系統技術業餘研究 » 轉:CPU密集型計算 erlangC 大比拼

原文地址:http://pseudelia.wordpress.com/2009/08/23/erlang-native-code-benchmark/ Normalerweise compiliert Erlang Bytecode (heißt das so in Erlang?). Das

系統技術業餘研究 » 區域性性原理在計算機分散式系統中的應用課程PPT

這個課程最主要focus在資料的區域性性原理,從硬體到作業系統到應用程式這樣的順序過來的,對於我們提高核心系統軟體的效能非常有啟發意義. 課件下載點選這裡 修正:由於原連結已經不存在了,特地在這裡放了一份。 以下是教程的介紹: 課程簡介 ___________________________

系統技術業餘研究 » erlang高階原理應用PPT

公司培訓用的 湊合看吧 主要講erlang系統的特點,分佈叢集以及mnesia的使用, 從比較高的角度來看erlang, 讓你有了大體觀. Post Footer automatically generated by wp-posturl plugin for wordpress. No

系統技術業餘研究 » erlang:send_aftererlang:start_timer的使用解釋

前段時間arksea同學提出這個問題, 因為文件裡面寫的很不明白. erlang:send_after(Time, Dest, Msg) -> TimerRef Time = int() 0 <= Time <= 4294967295 Dest = pid() | RegName