1. 程式人生 > >系統技術非業餘研究 » LMbench 實用的微觀效能分析工具

系統技術非業餘研究 » LMbench 實用的微觀效能分析工具

我們在做高效能服務的時候,通常需要避免7宗罪,比如說記憶體拷貝,昂貴的系統呼叫等等。 但是這些罪的代價是多少,我們並不清楚。 在設計的時候,我們會需要根據資料去做方案的取捨。但是這些測量資料哪裡來呢? google大神是個很好的地方,但是有很多缺點,首先你需要的知識是分散的,第二你需要的知識是二手的。 這時候LMbench來救助了。

LMbench – Tools for Performance Analysis
官方網站: http://www.bitmover.com/lmbench/

What is LMbench?
* Suite of simple, portable benchmarks
* Compares different systems performance
* Results available for most major vendors (SUN, HP, IBM, DEC, SGI, PCs including 200 Mhz P6’s)
* Free software, covered by the GNU General Public License.

* Bandwidth benchmarks
o Cached file read
o Memory copy (bcopy)
o Memory read
o Memory write
o Pipe
o TCP
* Latency benchmarks
o Context switching.
o Networking: connection establishment, pipe, TCP, UDP, and RPC hot potato
o File system creates and deletes.
o Process creation.
o Signal handling
o System call overhead
o Memory read latency
* Miscellanious
o Processor clock rate calculation

可以看出,他主要測量2個方面的東西: 頻寬和延時, 涉及到系統組成的很底層。不多說了,我們在ubuntu下實踐下:

# apt-get build-dep lmbench
# apt-get source lmbench
# cd lmbench-3.0-a9/
# tar xzvf lmbench-3.0-a9.tgz 
# cd lmbench-3.0-a9
# make  #如果不錯意外的話,編譯順利完成

我們這時候可以看到bin目錄有很多的工具程式,用於測量系統的方方面面. 這些工具可以單獨使用, 在doc目錄的文件裡面又每個工具的原理和設計思想以及如何使用.

#make results

這時候會問你很多問題, 回車預設就好, 當問到檔案的臨時目錄時,請確保你的目錄又足夠的空間,否則會失敗; 問到mail測試結果的時候選擇NO.不出意外的話,系統開始幹活, 測量的結果儲存在results目錄裡面.

還想再執行的話:

#make rerun

看測試的summary的話:

#make see

在results目錄下生成了個summary.out的文字檔案.

我摘錄了點:
Lmbench說記憶體操作還是很慢:
Local Communication bandwidths in MB/s – bigger is better
—————————————————————————–
Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem
UNIX reread reread (libc) (hand) read write
——— ————- —- —- —- —— —— —— —— —- —–
my174.cm4 Linux 2.6.18- 1282 2672 2707 3879.2 6664.8 2778.0 3014.8 4559 4408.

上下文切換也要命:
Context switching – times in microseconds – smaller is better
————————————————————————-
Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw
——— ————- —— —— —— —— —— ——- ——-
my174.cm4 Linux 2.6.18- 6.1100 7.0200 6.1100 8.7400 7.7200 8.96000 9.62000

系統呼叫快了很多,但是還是慢:
Processor, Processes – times in microseconds – smaller is better
——————————————————————————
Host OS Mhz null null open slct sig sig fork exec sh
call I/O stat clos TCP inst hndl proc proc proc
——— ————- —- —- —- —- —- —- —- —- —- —- —-
my174.cm4 Linux 2.6.18- 1593 0.09 0.16 1.01 1.64 5.48 0.20 1.86 184. 702. 2334

數學計算就是快:
Basic integer operations – times in nanoseconds – smaller is better
——————————————————————-
Host OS intgr intgr intgr intgr intgr
bit add mul div mod
——— ————- —— —— —— —— ——
my174.cm4 Linux 2.6.18- 0.6300 0.3100 0.2200 15.1 14.4

玩的開心.

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

相關推薦

系統技術業餘研究 » LMbench 實用微觀效能分析工具

我們在做高效能服務的時候,通常需要避免7宗罪,比如說記憶體拷貝,昂貴的系統呼叫等等。 但是這些罪的代價是多少,我們並不清楚。 在設計的時候,我們會需要根據資料去做方案的取捨。但是這些測量資料哪裡來呢? google大神是個很好的地方,但是有很多缺點,首先你需要的知識是分散的,第二你需要的知識是二手

系統技術業餘研究 » Linux檔案預讀分析以及評估對系統的影響

Linux系統很重要的一個性能提升點就是它的Pagecache, 因為記憶體比IO快太多了,所以大家都想進辦法來利用這個cache。 檔案系統也不例外,為了達到高效能,檔案讀取通常採用預讀來預測使用者的行為,把使用者可能需要的資料預先讀取到cache去,達到高效能的目的。 Linux各個發行版re

系統技術業餘研究 » iozone檔案系統性能測試工具

IOzone官網: http://www.iozone.org/ IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has

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

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

系統技術業餘研究 » Erlang Shell實用小技巧

Erlang Shell下有很多內建的命令,在平時互動的時候很好用,文件裡面都是一行帶過,大家可能沒什麼感覺。 我來重點講解和演示下: $ erl Erlang R14B04 (erts-5.8.5) [/source] [smp:2:2] [rq:2] [async-threads:0] [h

系統技術業餘研究

ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼

系統技術業餘研究 » MySQL資料庫架構的演化觀察

MySQL資料庫架構的演化觀察 December 14th, 2017 Categories: 資料庫 Tags: mysql

系統技術業餘研究 » inet_dist_connect_options

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 推薦工作機會

最後更新時間:2014/11/28 請賜簡歷至:[email protected], 感謝您對加入我們公司有興趣,我們希望能早日和您共事。 以下幾個職位1年內有效,歡迎內部轉崗:
 資深資料工程師 公司:阿里(核心系統資料庫組) 工作地點:杭州(西溪園區) 崗位描述: 分析雲服務產生的海

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

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

系統技術業餘研究 » 叢集引入inet_dist_{listen,connect}_options更精細引數微調

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 2017升的最快的幾個資料庫無責任點評

ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼

系統技術業餘研究 » Erlang 17.5引入+hpds命令列控制程序預設字典大小

Erlang 17.5釋出引入控制程序預設字典大小的命令列引數: Erlang/OTP 17.5 has been released Written by Henrik, 01 Apr 2015 Some highlights of the release are: ERTS: Added co

系統技術業餘研究 » inet_dist_listen_options

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 老生常談: ulimit問題及其影響

ulimit最初設計是用來限制程序對資源的使用情況的,因為早期的系統系統資源包括記憶體,CPU都是非常有限的,系統要保持公平,就要限制大家的使用,以達到一個相對公平的環境。以下是典型的機器預設的限制情況: $ ulimit -a core file size (blocks,

系統技術業餘研究 » 求賢帖

原創文章,轉載請註明: 轉載自系統技術非業餘研究 本文連結地址: 求賢帖 作為一個優秀的工程師,你其實不缺少才華,你缺少的是神一樣的隊友、充滿挑戰的世界級技術難題,和一個可以施展自己才華的大舞臺。加入阿里核心系統資料庫開發團隊吧,你缺的這裡都有。來吧,戳這裡,給我們見識你的機會:http://b

系統技術業餘研究 » Erlang R16B03釋出,R17已發力

Erlang R16B03釋出了,通常03版本是bug fix版本,進入生產版本,官方的說明如下: OTP R16B03 is a service release with mostly a number of small corrections and user contributions. B

系統技術業餘研究 » Erlang R13B04 Installation

R13B04後erlang的原始碼編譯為了考慮移植性,就改變了編譯方式,以下是官方wiki上的安裝文件: 1. Cloning Here are the basic steps to build Erlang/OTP in the Git repository. Start by cloning:

系統技術業餘研究 » Understanding Linux CPU Load 資料彙總

最近關注線上CPU load的人挺多,很多人覺得load太高系統就有問題,就想各種辦法來折騰。其實在我看來load只是系統CPU執行佇列的在執行程序數的近似值, 如下圖: 對於Unix發展的初期,機器的效能比較差,CPU核數也少,參考意義比較大。現在的機器都是非常強悍的,CPU,記憶體,IO各個

系統技術業餘研究 » Erlang R15的記憶體delayed dealloc特性對訊息密集型程式的影響

在新的NUMA體系結構下,每個CPU都有自己的本地記憶體,如果要訪問其他CPU的記憶體,那算remote了,要走CPU之間的QPI通道,通常這樣速度會有40%的下降。 那麼對於多執行緒的程式來講,這個硬體的變化對軟體也有很大的影響。在多執行緒程式裡面,通常一個執行緒會為一個物件分配記憶體,然後把這