《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應用 > 嵌入式系統(tǒng)的性能測試(1) – lmbench篇
嵌入式系統(tǒng)的性能測試(1) – lmbench篇
摘要: 要評價一個系統(tǒng)的性能,通常有不同的指標,相應的會有不同的測試方法和測試工具。既有比較成熟的商業(yè)測試軟件,也有許多優(yōu)秀的開源工具來完成這個任務。本文簡要介紹如何使用lmbench來完成系統(tǒng)綜合性能測試。&nbs
關(guān)鍵詞: 軟件 嵌入式系統(tǒng)
Abstract:
Key words :

要評價一個系統(tǒng)的性能,通常有不同的指標,相應的會有不同的測試方法和測試工具。既有比較成熟的商業(yè)測試軟件,也有許多優(yōu)秀的開源工具來完成這個任務。本文簡要介紹如何使用lmbench來完成系統(tǒng)綜合性能測試。

 

Lmbench用C語言編寫的,是一套具有較好可移植性的,簡易的,符合ANSI/C標準為UNIX/POSIX而制定的微型測評工具。一般來說,它衡量兩個關(guān)鍵特征:反應時間和帶寬。Lmbench旨在使系統(tǒng)開發(fā)者深入了解系統(tǒng)關(guān)鍵操作的基礎(chǔ)成本。

 

Lmbench是個多平臺軟件,因此能夠?qū)ν墑e的系統(tǒng)進行比較測試,反映不同系統(tǒng)的優(yōu)劣,通過選擇不同的庫函數(shù)我們就能夠比較庫函數(shù)的性能;更為重要的是,作為一個開源軟件,lmbench提供一個測試框架,假如測試者對測試項目有更高的測試需要,能夠通過少量的修改源代碼達到目的(比如現(xiàn)在只能評測進程創(chuàng)建、終止的性能和進程轉(zhuǎn)換的開銷,通過修改部分代碼即可實現(xiàn)線程級別的性能測試)。

 

lmbench是一個用于評價系統(tǒng)綜合性能的軟件,主要測試內(nèi)容包括:

    *存儲器延遲計算結(jié)果

          —存儲器延遲測試展示了所有系統(tǒng)(數(shù)據(jù))的緩存延遲,包括L1/L2 cache以及主內(nèi)存

    *帶寬測評工具

          —讀取緩存文件

          —拷貝內(nèi)存

          —讀內(nèi)存

          —寫內(nèi)存

          —管道

          —TCP

    *反應時間測評工具

          —上下文切換

          —網(wǎng)絡(luò): 連接的建立,管道,TCP,UDP和RPC hot potato

          —文件系統(tǒng)的建立和刪除

          —進程創(chuàng)建

          —信號處理

          —上層的系統(tǒng)調(diào)用

          —內(nèi)存讀入反應時間

    * 其他

          —處理器時鐘比率計算

 

Lmbench的測試內(nèi)容有很多,實在是benchmarking領(lǐng)域的“瑞士軍刀”啊。

 

Lmbench的成功應用案例包括:

   Sun公司和SGI公司已經(jīng)使用這種測評工具以尋找和補救存在于性能上的問題。

   Intel公司在開發(fā)P6的過程中,使用了它們。

   Linux在Linux的性能優(yōu)化中使用了它們。

 

1. 下載:

Lmbench當前的最新版本為3.0。

lmbench的主站:

http://www.bitmover.com/lmbench/

lmbench 3版本的下載鏈接:

http://www.bitmover.com/lmbench/lmbench3.tar.gz

 

2. 編譯:

下載解壓后運行make build后會出現(xiàn)以下錯誤:

make[2]: *** No rule to make target `../SCCS/s.ChangeSet', needed by `bk.ver'.  Stop.

make[2]: Leaving directory `/home/wave/xilinx/lmbench3/src'

make[1]: *** [lmbench] Error 2

make[1]: Leaving directory `/home/wave/xilinx/lmbench3/src'

make: *** [build] Error 2

 

問題來源:

SCCS是Sun的版本管理工具。lmbench這個項目是Sun資助的,而且作者Larry McVoy也曾經(jīng)是Sun的員工,就用了這玩藝。

 

解決辦法1:

修改src/Makefile,將231行的bk.ver去掉就可以了。編譯完成后在bin下有benchmarking需要的的binary。

 

解決辦法2:

在lmbench3/SCCS目錄下創(chuàng)建一個工程要的文件s.ChangeSet,騙過make。

 

交叉編譯:

本人在Xilinx ZC706開發(fā)板上嘗試用PetaLinux 2013.04附帶的交叉編譯工具鏈進行了編譯,可以在lmbench3目錄下使用以下命令完成編譯:

make OS=armv7l-linux-gnu CC=arm-xilinx-linux-gnueabi-gcc AR=arm-xilinx-linux-gnueabi-ar build

如果使用其他pre-built的交叉編譯工具,需要修改CC和AR的內(nèi)容。編譯完成后,會在lmbench3\bin目錄下生成OS指定的目錄,可執(zhí)行文件放在這個目錄下。這個OS名稱適用于ZC706開發(fā)板,在其他嵌入式開發(fā)板上可能會不同。一個簡單的工程上取得合適名字的辦法:如果不是這個名字,在下一步配置完成后會提示無法保存配置文件到某個位置,看系統(tǒng)提示修改就好了。

注意:使用PetaLinux 2013.04交叉編譯工具鏈之前,要先’source settings.sh’初始化環(huán)境變量。

 

3. 配置:

把Host上編譯好的lmbench轉(zhuǎn)移到嵌入式Linux中有很多種辦法,本人采用以下辦法:

 

在Host上把lmbench3目錄打成一個tar ball,然后拷貝到SD卡中,嵌入式Linux從SD卡啟動。

 

Linux啟動后,將SD卡mount到文件系統(tǒng)中:

mount /dev/mmcblk0p1 /mnt

 

在嵌入式Linux中創(chuàng)建臨時文件系統(tǒng),這里假定開發(fā)者是用root帳號登錄到Linux的:

mkdir -p /home/root/ramfs

mount -t ramfs none /home/root/ramfs -o maxsize=32768

Note:缺省情況下,Ramfs被限制最多可使用內(nèi)存大小的一半。可以通過maxsize(以kbyte為單位)選項來改變。

 

用以下命令啟動配置過程:

cd /home/root/ramfs

tar xvf /mnt/lmbench3.tar

export PATH=$PATH:/home/root/ramfs/lmbench3/bin/armv7l-linux-gnu

cd lmbench3/scripts

./config-run

 

 

本人使用的配置為:

MULTIPLE COPIES [default 1]: 1

Job placement selection [default 1]: 1 > Allow scheduler to place jobs

MB [default 84]: 8

SUBSET (ALL|HARWARE|OS|DEVELOPMENT) [default all]: all

FASTMEM [default no]: yes

SLOWFS [default no]:

DISKS [default none]

REMOTE [default none]

Processor mhz [default 498 MHz, 2.0080 nanosec clock] 733

FSDIR [default /tmp]

Status output file [default /dev/tty]

Mail results [default yes] no

 

關(guān)于測試項的解釋:

1. 在多核CPU上并行多少個lmbench。作者說這個目前還是實驗性質(zhì)的,結(jié)果可能不正確并有隨機性。更重要的是,整個benchmark的速度會變得非常慢(100倍)。既然這樣,當然用缺省的數(shù)值1了。

2. 測試任務的分配方式。按回車選擇缺省的方案1。

3. 有些測試需要一段內(nèi)存。內(nèi)存至少是cache size的4倍,最大不超過物理內(nèi)存的80%。內(nèi)存越大,測試的結(jié)果越準確,不過需要的時間也越長。

4. 選擇測試項目。分別是全部測試、硬件測試、OS測試和操作系統(tǒng)開發(fā)階段的測試。缺省選擇為全部測試。

5. 內(nèi)存延遲測試。測試需要的時間可能比較長。在cache line size超過128字節(jié)并希望確定cache line size的時候比較有用。

6. 測試文件系統(tǒng)的延遲。在一些老的文件系統(tǒng)(UFS, FFS等)上會比較慢,在Linux ext2fs和Sun tmpfs上會比較快。可以用來測試ramdisk的性能,間接測試RAM的性能。

7. 測試磁盤的性能。需要提供磁盤的位置,例如:/dev/sda。同時需要提供一行磁盤的文字描述。

8. 網(wǎng)絡(luò)測試。需要有另外一臺中間不經(jīng)過網(wǎng)關(guān)的機器,需要rsh訪問權(quán)限。

9. 軟件會自動分析CPU的工作頻率。如果軟件無法檢測,需要提供CPU的工作頻率。

10. 需要一個位置保存臨時文件。要求不能是內(nèi)存駐留文件系統(tǒng)。

11. lmbench的輸出設(shè)備。缺省為/dev/tty,在大多數(shù)場合都適用。

12. 是否將結(jié)果上傳給作者。

 

4. 運行

首先要確認Embedded Linux已經(jīng)配置了合適的hostname,這個hostname將作為測試結(jié)果raw文件的文件名。

 

用以下命令開始性能測試:

./results

 

在本人的計算機上,大約運行了9分鐘后結(jié)束。生成的結(jié)果在lmbench3/results/$OS目錄里面。

 

如果Embedded Linux root fs里面有perl,可以直接在開發(fā)板上看測試結(jié)果的summary。如果沒有也不打緊,可以把生成的測試結(jié)果raw文件拷貝到host上,在host上生成summary。

./getsummary ./zynq.0

 

Summary是對測試結(jié)果的高度精簡。如果感興趣,開發(fā)者可以用Text Editor打開測試結(jié)果raw文件,找到更多更細致的有用信息。

 

 

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品欧美一区喷水| 国内久久精品| 久久琪琪电影院| 欧美亚洲专区| 亚洲女性喷水在线观看一区| 一区二区三区不卡视频在线观看| 亚洲激情电影在线| 亚洲国产成人精品久久| 久久精品免费看| 欧美中文字幕久久| 欧美一区二区三区视频免费播放 | 亚洲黄色成人久久久| 欧美一区久久| 久久精品国产第一区二区三区| 欧美一区在线看| 久久精品国产综合| 亚洲国产精品久久精品怡红院| 亚洲高清在线播放| 亚洲激情视频在线| 99精品欧美一区二区三区| 99热在线精品观看| 亚洲网站视频福利| 亚洲欧美美女| 先锋a资源在线看亚洲| 欧美一区91| 久久天堂成人| 欧美大尺度在线| 欧美激情中文字幕一区二区| 欧美日韩国产成人在线| 国产精品video| 国产精品永久免费视频| 国产专区欧美专区| 亚洲福利一区| 99精品免费| 香蕉av777xxx色综合一区| 亚洲春色另类小说| 99成人免费视频| 亚洲欧美国产毛片在线| 久久久久久一区二区三区| 免费久久99精品国产自在现线| 欧美成年人网站| 欧美无砖砖区免费| 国产嫩草一区二区三区在线观看| 狠狠狠色丁香婷婷综合久久五月 | 欧美成人一品| 欧美午夜精品| 国产色综合网| 91久久香蕉国产日韩欧美9色 | 亚洲免费一在线| 亚洲乱码国产乱码精品精| 老色鬼久久亚洲一区二区| 欧美成人午夜激情在线| 麻豆精品传媒视频| 欧美日韩123| 国产精品永久在线| 亚洲国产女人aaa毛片在线| 99精品热视频| 欧美在线视频网站| 99av国产精品欲麻豆| 亚洲欧美在线视频观看| 蜜桃久久av一区| 国产精品www| 精品福利av| 亚洲午夜免费视频| 久久精品夜色噜噜亚洲a∨| 一区二区三区产品免费精品久久75 | 亚洲国产高潮在线观看| 一本不卡影院| 亚洲高清在线视频| 亚洲欧美99| 欧美大片网址| 国产欧美日韩高清| 亚洲免费黄色| 久久精品国产一区二区三| 亚洲视频一区在线| 老司机久久99久久精品播放免费 | 国产精品第2页| 亚洲激情在线| 欧美在线观看网站| 亚洲午夜一级| 欧美不卡视频一区| 国产欧美精品久久| 日韩小视频在线观看| 亚洲高清成人| 性欧美在线看片a免费观看| 欧美精品一区在线| 狠狠色丁香久久婷婷综合丁香| 一本色道久久综合狠狠躁篇怎么玩| 亚洲第一黄色网| 亚洲欧美怡红院| 欧美日韩三级视频| 尤物yw午夜国产精品视频明星| 国产精品99久久久久久久女警| 亚洲欧洲精品一区二区三区 | 亚洲精选一区| 久久综合九色综合久99| 国产精品视频九色porn| 亚洲最快最全在线视频| 亚洲乱码精品一二三四区日韩在线 | 亚洲色图在线视频| 欧美aaaaaaaa牛牛影院| 国产一级久久| 亚洲专区一区| 亚洲一级电影| 欧美日韩激情网| 亚洲国产一区二区三区a毛片| 久久xxxx| 久久久亚洲一区| 国精品一区二区| 翔田千里一区二区| 欧美一区二区三区四区视频 | 国产婷婷色综合av蜜臀av| 亚洲午夜精品一区二区| 亚洲一区二区三| 欧美特黄a级高清免费大片a级| 亚洲精选久久| 亚洲视频一二三| 国产精品videosex极品| 亚洲午夜精品久久久久久浪潮 | 欧美韩国日本一区| 亚洲第一主播视频| 亚洲精品久久久久久一区二区| 免费成人你懂的| 亚洲黄色毛片| 99精品久久免费看蜜臀剧情介绍| 欧美国产欧美综合| 亚洲日本aⅴ片在线观看香蕉| 亚洲精选视频在线| 欧美日韩视频在线观看一区二区三区| 91久久精品国产91久久| 日韩亚洲在线观看| 欧美日韩国产成人| 在线视频日本亚洲性| 午夜久久电影网| 国产视频观看一区| 久久精品国语| 欧美成人精品不卡视频在线观看| 亚洲国产高清在线观看视频| 亚洲免费精彩视频| 欧美日韩三级一区二区| 亚洲一级黄色片| 久久精品国产精品亚洲| 国产在线播精品第三| 亚洲人午夜精品| 欧美三级资源在线| 亚洲欧美韩国| 久久中文精品| 亚洲精品在线三区| 亚洲男人的天堂在线| 国产嫩草一区二区三区在线观看| 欧美在线视频免费| 欧美精品自拍| 亚洲在线1234| 老司机67194精品线观看| 亚洲精品在线电影| 欧美一进一出视频| 亚洲第一网站| 亚洲欧美电影在线观看| 国内久久婷婷综合| 一区二区三区免费看| 国产毛片精品国产一区二区三区| 亚洲电影一级黄| 欧美日韩免费观看一区| 亚洲欧美一级二级三级| 欧美+亚洲+精品+三区| 一区二区欧美日韩视频| 久久久999精品| 亚洲三级免费观看| 欧美中文字幕第一页| 亚洲国产精品一区制服丝袜| 亚洲欧美在线视频观看| 亚洲福利一区| 欧美一区二区在线视频| 亚洲韩国精品一区| 欧美在线看片| 亚洲精品视频在线播放| 久久不射电影网| 亚洲精品欧美日韩| 久久精品视频导航| 日韩视频免费观看高清在线视频| 久久成人羞羞网站| 日韩视频一区二区在线观看| 久久久久国产精品麻豆ai换脸 | 一级成人国产| 久热精品视频在线观看| 一区二区不卡在线视频 午夜欧美不卡'| 久久精品国产77777蜜臀| 日韩写真视频在线观看| 久久一区二区三区四区| 亚洲视频欧美在线| 欧美大片在线观看一区| 午夜精品av| 欧美日韩亚洲一区二区三区在线| 久久xxxx| 国产乱码精品一区二区三| 一本色道88久久加勒比精品| 狠狠色综合网站久久久久久久| 亚洲一区二区精品在线观看| 在线观看国产成人av片| 欧美在线免费一级片|