日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

LTP介紹

系統(tǒng) 2673 0
1.LTP介紹
??? LTP--linut test project ,ltp套件是由Linux Test Project所開發(fā)的一套系統(tǒng)測試套件。它基于系統(tǒng)資源的利用率統(tǒng)計開發(fā)了一個測試的組合,為系統(tǒng)提供足夠的壓力。
??? 通過壓力測試來推斷系統(tǒng)的穩(wěn)定性和可靠性。
??? 壓力測試是一種破壞性的測試,即系統(tǒng)在非正常的、超負荷的條件下的執(zhí)行情況 。用來評估在超越最大負載的情況下系統(tǒng)將怎樣執(zhí)行,是系統(tǒng)在正常的情況下對某種負載強度的承受能力的考驗 。
??? 使用 LTP 測試套件對 Linux 操作系統(tǒng)進行超長時間的測試,重點在于 Linux 用戶環(huán)境相關(guān)的工作負荷(參閱 參考資料 以深入了解 LTP)。而并非致力于證明缺陷。
??? 重點: 測試選擇,評價系統(tǒng)資源利用率,分析內(nèi)核代碼覆蓋率,評價終于壓力測試
??? 更加詳細的參考: http://www.linuxeden.com/html/front/20060728/24305.html
??????????????????? http://www.ibm.com/developerworks/cn/linux/l-rel/index.html
?????????????????????????? 或者網(wǎng)上相關(guān)信息
??? 在這里,主要介紹LTP結(jié)構(gòu),測試方法,測試組合的選擇,工具介紹,環(huán)境搭建,須要改動地方,分析測試結(jié)果,LTP操作流程
?
2.LTP結(jié)構(gòu)
??? 從 http://ltp.sourceforge.net/ 下載LTP測試源代碼包
???
LTP的文件夾結(jié)構(gòu)基本上分為文檔文件夾(doc)、測試驅(qū)動程序文件夾(pan)、測試腳本文件夾(testscripts)、測試用例庫(testcase)、測試命令文件文件夾(runtest)、頭文件文件夾(include)、庫文件夾(lib)等。
Doc:該文件夾是說明文件和幫助文檔的所在地,這個文件夾中對LTP的內(nèi)容和每一個工具都有具體的說明。
Pan:該文件夾存儲的是LTP測試套件的測試驅(qū)動程序pan。
Testscripts:該文件夾中存儲的是可運行的測試腳本,不同方面的測試腳本的集合。
Testcase:該文件夾存儲了全部LTP測試套件中所使用的測試用例的源代碼。
Runtest:該文件夾中的每一個文件都是要運行的測試用例的命令集合,每一個文件針對測試的不同方面。
Include:LTP測試套件的頭文件文件夾,定義了LTP自身的數(shù)據(jù)結(jié)構(gòu)和函數(shù)結(jié)構(gòu)。
Lib:LTP測試套件運行時自身須要的庫文件,定義了LTP自身的各種函數(shù)。
各個文件結(jié)構(gòu)之間的聯(lián)系:
---->testscripts中l(wèi)tpstress.sh
---->runtest(stress.part1,stress.part2,stress.part3)
---->pan后臺執(zhí)行
---->終于執(zhí)行Testcase中的各個測試案例
?????? 當中runtest中 stree.part1,stree.part2,stree.part3中的測試命令或腳本? 如 mmstress;來源于testcase/bin 中mmstress;而testcase/bin 中mmstress 可運行腳本或命令來源于/testcase中如 kernel,network,?? pounder21, commands 等源碼編譯生成的,
mmstress:kernel/mem/mtest05/mmstress.c
stress.part[n](n=1,2,3)中測試命令怎樣看?
??? 這些命令文件包括測試用例的tag和帶有參數(shù)的測使用里,格式例如以下:
#tag?????? test case
test1????? test1 -l 10
mtest01??? mtest01 -m 20
fork01???? fork01

? pan工作原理:LTP測試套件有一個專門的測試驅(qū)動程序pan,具體的測試用例的運行都是由pan來調(diào)用運行,它能夠跟蹤孤兒進程和抓取測試的輸出信息。它的工作方式是這種:
從一個測試命令文件里讀取要測試的條目的要運行的命令行,然后等待該項測試的結(jié)束,并記錄具體的測試輸出。默認狀態(tài)下pan會隨機的選擇一個命令行來運行,能夠指定在同一時間要運行測試的次數(shù)。
pan會記錄測試產(chǎn)生的具體的格式復雜的輸出,但它不進行數(shù)據(jù)的整理和統(tǒng)計,數(shù)據(jù)整理統(tǒng)計的工作由scanner來完畢,scanner是一個測試結(jié)果分析工具,它會理解pan的輸出格式,并輸出成一個表格的
形式來總結(jié)那些測試passed或failed。

3.LTP測試方法
測試方法有兩個的階段:一個是“初始測試”,一個是“壓力測試”。
初始測試是開始測試的必要條件。初始測試包含 LTP 測試套件在硬件和操作系統(tǒng)上成功運轉(zhuǎn),這些硬件和操作系統(tǒng)將用于可靠性運轉(zhuǎn)。LTP 測試套件包附帶的驅(qū)動程序腳本 runalltest.sh 用于驗證內(nèi)核。這個腳本串行地執(zhí)行一組成包的測試,并報告所有結(jié)果。也能夠選擇同一時候并行地執(zhí)行幾個實例。默認地,這個腳本執(zhí)行:
- 文件系統(tǒng)壓力測試。
- 硬盤 I/O 測試。
- 內(nèi)存管理壓力測試。
- IPC 壓力測試。
- SCHED測試。
- 命令功能的驗證測試。
- 系統(tǒng)調(diào)用功能的驗證測試。
壓力測試能夠驗證產(chǎn)品在系統(tǒng)高使用率時的健壯性。作為 runalltest.sh 的補充,特別設(shè)計了一個名為 ltpstress.sh 的測試場景,在使用網(wǎng)絡(luò)與內(nèi)存管理的同一時候并行地執(zhí)行大范圍的內(nèi)核組件,并在測試系統(tǒng)上生成高壓力負荷。ltpstress.sh 也是 LTP 測試套件的一部分。這個腳本并行地執(zhí)行類似的測試用例,串行地執(zhí)行不同的測試用例,這樣做是為了避免因為同一時候訪問同一資源或者互相干擾而引起的間歇性故障。默認地,這個腳本執(zhí)行:
- NFS 壓力測試。
- 內(nèi)存管理壓力測試。
- 文件系統(tǒng)壓力測試。
- 數(shù)學 (浮點) 測試。
- 多線程壓力測試。
- 硬盤 I/O 測試。
- IPC (pipeio, semaphore) 測試。
- 系統(tǒng)調(diào)用功能的驗證測試。
- 網(wǎng)絡(luò)壓力測試。
?
4.測試組合的選擇
?????? 所選擇的測試的組合必須給系統(tǒng)的資源帶來足夠的壓力。Linux 內(nèi)核的四個主要方面能夠影響系統(tǒng)的 響應和運行時間:
  - CPU:用于在機器的 CPU(s)上處理數(shù)據(jù)的時間。
  - Memory:用于自真實存儲器中讀寫數(shù)據(jù)的時間。
  - I/O:用于自磁盤存儲器讀寫數(shù)據(jù)的時間。
  - Networking:用于自網(wǎng)絡(luò)讀寫數(shù)據(jù)的時間。
系統(tǒng)資源利用率評價階段通常須要多次嘗試才干得到合適的測試組合,并得到期望水平的利用率。在這個評價過程中,sar 工具也應該在執(zhí)行。在評價執(zhí)行的結(jié)論中,您應該收集并評價全部四種資源的利用率水平。
????? 詳細的測試組合改動方法。
改動方法一:
?????? runtest中 stress.part1,stress.part2,stress.part3。
如改動stress.part1中有這樣一個測試mem02,依據(jù)閱讀testcases/kernel/mem/mem/mem02.c 源碼,可將他改動為mem02 -m 15,意思是測試15m內(nèi)存。
???? 相同的也能夠在 stress.part1,stress.part2,stress.part3 中加入、刪除一些測試,
如我們測試時就把
stress.part3中關(guān)于swap交換分區(qū)的去掉
#swapoff01 swapoff01
#swapoff02 swapoff02
#swapon01 swapon01
#swapon02 swapon02
#swapon03 swapon03
改動方法二:
前面提到的初始測試或者壓力測試都是測試的默認的,假設(shè)想測試其它的或者自己的測試案例,須要改動testcase的
Makefile,由于通過它的Makefile能夠看到
SUBDIRS = `ls */Makefile | sed "s/Makefile//g" | grep -v open | grep -v pounder | grep -v DOTS | grep -v kdump | grep -v realtime`
sed 's//:/ /g' :想把文本中的冒號替換成空格
grep -v:顯示全部與指定模式不匹配的行
?????
也就是說open,pounder,DOTS,kdump,realtime沒有測試,當然你能夠選上或者,加入上自己的測試案例。

5.工具介紹
Gcov,lcove:
分析代碼覆蓋率
sar:
幫助我們掌握系統(tǒng)資源的使用情況,特別是內(nèi)存和CPU 的使用情況,
是UNIX系統(tǒng)使用者應該掌握的工具之中的一個
在我們的測試中,sar工具每 10 秒(當然時間間隔能夠改動)鐘截取一次系統(tǒng)利用率的快照,并保存到結(jié)果文件。
針對sar生成的sar.data用法:
?sar -u sar.data? //查看cpu使用情況
?sar -r sar.data? //看看memory,swap使用情況
?……………………
Top:
跟sar差點兒相同的功能,這里我們就用sar 了。

Rsh:
用處就不用介紹了,主要介紹建立信任主機
http://blog.chinaunix.net/u/7121/showart_576215.html 這個比較全面
http://gforge.loogson.com/forum/forum.php?thread_id=59&forum_id=53 ??
??? 我們自己211server上寫的也比較全面,但特別注意的細節(jié)就是/root/.rhosts權(quán)限600這個問題。由于我為它浪費了半天時間。
#aptitude install openssh-server openssh-client
1、a>更改/etc/hosts文件   http://download.zdnet.com.cn/software_zone/2007/0831/481970.shtml
#vi /etc/hosts 打開hosts文件,更改例如以下:
127.0.0.1 localhost.localdomain localhost
192.168.4.211 ub-server
192.168.4.40 gengmj-desktop
192.168.4.32 zjx-desktop   //ip:被信任主機的IP,zjx-desktop:被信任主機的username
b>更改 /etc/hosts.equiv文件   // /etc/hosts.equiv里的主機不須要提供password就能夠訪問本機.
# vim /etc/hosts.equiv
# /etc/hosts.equiv: list of hosts and users that are granted "trusted" r
# command access to your system .
#127.0.0.1 localhost.localdomain localhost
ub-server mpich    
debian mpich
gmj-desktop mpich
zjx-desktop mpich    //被信任的zjx-desktop用戶,以mpich用戶登錄本機
festival-desktop mpich
liu-desktop mpich
yym-desktop mpich
2、在node01生成SSH秘鑰對.
$ssh-keygen -t rsa 一路回車就可以
產(chǎn)生.ssh文件,
$ls -a 查看是否有.ssh文件夾/cluster/server/
3、進入.ssh文件夾
$cd .ssh
4、生成authorized_keys文件
$cp id_rsa.pub authorized_keys
5、退出到root文件夾
$cd ..
6、建立本身的信任連接
$ssh ub-server 按提示輸入yes(三個字母要打全)
7、設(shè)置node02(node02的root文件夾下)
$ssh-keygen -t rsa 生成.ssh文件夾
$scp mpich@ub-server:/home/mpich/.ssh/ * ~/.ssh/ 拷貝ub-server上的.ssh文件夾覆蓋本地的
#scp root@ub-server:/etc/hosts /etc/hosts 拷貝node01上的hosts文件覆蓋本地的
$ssh node01 提示處輸入yes回車
8、確認機器的信任連接已建立
對每一個節(jié)點運行:
$ssh ub-server
$ssh gengmj-desktop
在提示處輸入yes回車,最后確定無需輸入password而且沒有不論什么提示信息就可以登陸("Last login:時間日期"提示信息除外)

6.環(huán)境搭建

開發(fā)板: v1.2
CPU:
內(nèi)核:Linux 2.6.22.8? 交叉編譯時須要選上ide,nfs server support
LTP 版本號:20080831? 交叉編譯
?
pc機:
CPU:Intel(R) Celeron(R) CPU 2.26GHz
內(nèi)核:2.6.24-16-generic
??????? LTP 版本號:20080831
pc機做server使用
?
7.須要改動地方
改動一:/ltp-full-20080831/testcases/network/nfs
??? 下的nfs01 , nfs01 ,nfs03 nfs04 , nfsstress,將改動RHOST=192.168.4.68,讓它測試遠程的主機
?? nfs04: 中139行nfs04_create_file--絕對路徑
改動二:/ltp-full-20080831/testcases/network/rpc/basic_tests/rpc01
??????? 中rpc01 ,??? 將改動RHOST=192.168.4.68,讓它測試遠程的主機
改動三:/ltp-full-20080831/testcases/kernel/mem/mem/mem02.c --->#define MEMSIZE 15*1024*1024? #15M
改動四:fork09: 最多能OPEN 800 個文件,然后才干創(chuàng)建進程?
………………等

8.測試結(jié)果分析
默認情況下,測試結(jié)果放在/tmp
ltpstress.log---記錄相關(guān)日志信息,主要是測試是否通過(pass or fail)
ltpstress.data ----sar工具記錄的日子文件,包含cpu,memory,i/o等
ltpstress.611.output1---相應stress.part1,測試命令的一些輸出信息??
ltpstress.611.output2---相應stress.part2,測試命令的一些輸出信息
ltpstress.611.output3---相應stress.part3,測試命令的一些輸出信息

cpu 平均使用率:sar -u -f ltpstress.data
memory 平均使用率:sar -r -f ltpstress.data
fail分析:
???? ltpstress.log 將全部FAIL過濾出來,得到完整的全部FAIL的testcase。
方法例如以下:用sort把FAIL的項排序,再用uniq排除反復項輸出到一個文件就能夠了:
?????? grep FAIL ltpstress。log | sort | uniq >failcase.txt
??? 至此,得到的failcase.txt為全部FAIL的testcase名字。要注意分析case失敗的原因是什么,并下結(jié)論:是配置的問題,還是穩(wěn)定性的問題(有失敗也有成功)。并將結(jié)論加注在failcase.txt中,方便查看。

9.軟件操作流程
1.下載源代碼包
對開發(fā)板
tar zxzf ltp-full-20050608.tgz
cd ltp-full-20050608
make cross_compile=mipsel-linux-;
make install cross_compile=mipsel-linux-;
copy到硬盤文件系統(tǒng)的/ 根文件夾下

對pc機
tar zxzf ltp-full-20050608.tgz
cd ltp-full-20050608
make;
make install;
?注意:ltp-full-20050608 必須跟開發(fā)板上路徑一樣,即在/ 根文件夾下

2.測試執(zhí)行
初始測試
./runltp -p -l /tmp/resultlog.20061222 -d /tmp -o /tmp/ltpscreen.20061222 -t 24h
壓力測試
./ltpstress.sh -m 35 -S -t 72h? //-m: 表示genload不停的在分配和釋放35m內(nèi)存,
??????????????????????? -S: 使用sar工具記錄
??????????????????????? -t: 測試時間???
3.結(jié)果分析
默認 情況下
?cd /tmp
?sar -u -f ltpstress.data? //cpu 平均利用率
?sar -r -f ltpstress.data? //內(nèi)存平均利用率
?grep FAIL ltpstress.log | sort | uniq >failcase.txt?? //失敗情況分析
??? 計算出成功率

壓力測試參考結(jié)果( DVR)
??? 測試工具是 LTPstress,測試用例以并行和串行方式運行
??? 時間24h
??? cpu 平均利用率:99.99% (用戶:33.21%? 系統(tǒng):66.78%)
??? memory 平均利用率:68%
??? 成功率:96.17%
??? 沒有嚴重的系統(tǒng)故障
?

10. 總結(jié)linux內(nèi)核的可靠性添加,可是這些測試用例的完整性還有待于分析和加強,假設(shè)內(nèi)核開發(fā)者和測試人員可以勤于提交他們發(fā)現(xiàn)的測試缺陷,那么該套件將更能幫助降低在linux中發(fā)現(xiàn)的回歸缺陷。
?
本文轉(zhuǎn)載別人的。。。

LTP介紹


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 连州市| 确山县| 民勤县| 昌宁县| 民丰县| 湖口县| 商南县| 正宁县| 龙里县| 江安县| 道孚县| 渭南市| 德清县| 通道| 邵阳市| 长丰县| 深州市| 新河县| 红原县| 双江| 始兴县| 周至县| 沽源县| 泸溪县| 台北县| 西青区| 诏安县| 平果县| 阳高县| 武鸣县| 蓬溪县| 桐庐县| 潜山县| 无棣县| 丰都县| 雅江县| 阜南县| 木里| 吉首市| 莱州市| 定襄县|