国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

硬盤測試軟件設(shè)計與測試

2014-01-16 05:57:06郭鐵魚丁艷榮
電子設(shè)計工程 2014年6期
關(guān)鍵詞:傳輸率測試軟件性能參數(shù)

郭鐵魚,丁艷榮

(中國人民解放軍71282部隊 河南 洛陽 471000)

硬盤[1-2]作為計算機的一個主要部件,肩負(fù)著記錄一切數(shù)據(jù)信息的重要職責(zé),它的性能對整個系統(tǒng)的性能有直接影響。但硬盤在整機系統(tǒng)中卻充當(dāng)著一個“瓶頸”的角色[3]。目前,磁盤評測軟件種類繁多,不同操作系統(tǒng)環(huán)境下亦有不同版本。Ziff-Davis Winbench99[4]是硬盤測試中最常用且較權(quán)威的測試軟件。但Winbench99的測試范圍包括整機、CPU、圖形等多個方面,磁盤性能測試只是其中的一個主要功能。HDTach[4]提供了硬盤的讀寫數(shù)據(jù)傳輸曲線,最高、最低和平均數(shù)據(jù)傳輸率和CPU占用率。Sisoft Sandra[4]是一款綜合測試軟件,盡管這個測試軟件功能不那么強大,但它有著簡單的測試結(jié)果和清晰的測試界面,且?guī)в幸欢〝?shù)量的測試結(jié)果可供用戶作為參照。Intel IOMeter[3-4]是Intel公司開發(fā)的一個專門測試系統(tǒng)I/O(包括磁盤、網(wǎng)絡(luò)等)速度的軟件,用戶可以根據(jù)需要定制自己的運行環(huán)境,功能十分強大。但該軟件只能在Win2000或WinNT系統(tǒng)下運行,且測試結(jié)果 (輸出為txt文件)較復(fù)雜。

雖然以上測試軟件已相當(dāng)專業(yè)和成熟,功能也非常強大。但測試原理不盡相同,得到的評測結(jié)果也有所差別。此外這些測試軟件的源代碼尚未公開[5-7],測試項目的種類已經(jīng)固定,無法修改。針對以上缺點,本文設(shè)計了一種新的硬盤測試軟件,完成以下硬盤參數(shù)的測試:磁盤的瞬時、平均、最大數(shù)據(jù)傳輸率,單位時間內(nèi)讀操作次數(shù),最大和平均讀響應(yīng)時間,讀錯誤次數(shù),以及CPU利用率等。

1 硬盤測試軟件方案

硬盤檢測程序的主要任務(wù)是獲取衡量硬盤性能的各參數(shù)指標(biāo)值,因此本方案的核心是對指定測試路徑的硬盤或分區(qū)進(jìn)行讀操作,統(tǒng)計、計算出所需要的各個參數(shù)指標(biāo)值。

1.1 基于硬盤驅(qū)動的方案

從硬件驅(qū)動層上起,在驅(qū)動程序一級截獲硬盤傳輸?shù)臄?shù)據(jù)量,再根據(jù)各個參數(shù)指標(biāo)的計算方法得到其值。這種方案的優(yōu)點是,硬盤的數(shù)據(jù)流量統(tǒng)計準(zhǔn)確。但此方案要求對硬盤驅(qū)動程序的結(jié)構(gòu)、編程比較清晰,代碼量較大。且在驅(qū)動程序一級統(tǒng)計出來的數(shù)據(jù)流量是整個系統(tǒng)的,不是針對某一個具體應(yīng)用的,所以在實現(xiàn)典型應(yīng)用環(huán)境下的磁盤性能檢測時比較困難。

1.2 基于操作系統(tǒng)API函數(shù)的方案

本方案直接調(diào)用操作系統(tǒng)提供的API函數(shù),由這些API函數(shù)再調(diào)用硬盤驅(qū)動程序,然后根據(jù)API函數(shù)的返回值統(tǒng)計硬盤的數(shù)據(jù)流量。該方案的優(yōu)點是,在進(jìn)行典型應(yīng)用環(huán)境中硬盤性能參數(shù)測試時,能較方便地實現(xiàn)。缺點是,由于使用了操作系統(tǒng)的API函數(shù),測試結(jié)果必然受到操作系統(tǒng)I/O管理及調(diào)度策略的影響,給硬盤評測結(jié)果帶來誤差。且此種方法統(tǒng)計得到的I/O流量,只是測試軟件的I/O量,并不是硬盤總的I/O。因此,只有當(dāng)系統(tǒng)中其它程序的I/O很小時,此種方法最終得到的測試結(jié)果誤差才較小。本文采用此種方案。

2 硬盤測試軟件各功能模塊實現(xiàn)

2.1 硬盤基本性能參數(shù)測試模塊

硬盤基本性能參數(shù)測試模塊是一個多線程模塊,包括主線程和在測試過程中創(chuàng)建的讀操作線程。其中,讀操作線程是一個Worker Thread類型的線程[6],進(jìn)行讀操作和變量累加工作;主線程則負(fù)責(zé)整個測試程序的運行,并對讀線程中累加的變量進(jìn)行計算以得到各個性能參數(shù)指標(biāo)。主線程流程如圖1所示,主要包括:測試路徑的選擇,讀操作數(shù)據(jù)塊大小的選擇,讀操作方式選擇,創(chuàng)建讀操作線程,在每個定時器消息中進(jìn)行基本性能參數(shù)的計算和顯示,以及其他消息的處理。測試開始后,在主線程中會創(chuàng)建一個讀操作線程,并設(shè)定好定時器。在讀操作線程中,用CreateFile函數(shù)打開在主線程中選定的路徑硬盤驅(qū)動器或分區(qū),以獲取設(shè)備句柄提供給后面的讀操作ReadFile使用。如果是隨機讀操作方式時,每次讀操作之前用SetFilePointer函數(shù)隨機定位要讀數(shù)據(jù)塊的扇區(qū)號。此外還要在每次讀操作ReadFile函數(shù)之前,用new[7-9]根據(jù)測試數(shù)據(jù)塊大小開辟一個內(nèi)存空間,以接收數(shù)據(jù)。讀操作結(jié)束以后,立即用delete[7-9]釋放掉這塊內(nèi)存空間。其流程如圖2所示。

圖1 主線程框圖Fig.1 Block diagram of main thread

2.2 典型應(yīng)用環(huán)境下硬盤性能測試模塊

本硬盤測試軟件中,典型應(yīng)用環(huán)境下的測試分為4種:Web Server、File Server、DataBase Server、Streaming File Server。其中在前3種環(huán)境下,主要看硬盤對用戶的響應(yīng)情況,即支持多少個用戶,而最后的流式文件服務(wù)器測試,由于傳輸?shù)臄?shù)據(jù)是持續(xù)的,主要看其對每個用戶所能提供的帶寬,即數(shù)據(jù)傳輸率。

圖2 讀操作線程框圖Fig.2 Block diagram of read thread

2.3 系統(tǒng)信息檢測模塊

由于硬件環(huán)境對測試結(jié)果的影響非常的大,所以有必要對一些重要的有參考價值的硬件信息進(jìn)行檢測,以便對測試結(jié)果進(jìn)行合理的分析。檢測的信息項目有四項,依次是硬盤信息、CPU信息、內(nèi)存大小、操作系統(tǒng)信息。

2.4 記錄日志功能模塊

作為一個測試工具,往往需要將測試結(jié)果保存起來,以便進(jìn)行分析,所以記錄日志功能也是不可缺少的。在實現(xiàn)時,單獨寫了一個日志類來進(jìn)行操作,在類中主要使用了一些和文件操作有關(guān)的打開、寫文件、關(guān)閉等函數(shù)。此外,為了方便用戶保存日志文件,在將測試結(jié)果保存為日志文件之前,需提示用戶選擇保存的日志文件名和路徑。

3 硬盤測試軟件的測試結(jié)果及分析

3.1 硬盤基本性能參數(shù)測試結(jié)果及分析

硬盤基本性能參數(shù)測試由用戶選定測試路徑及讀取數(shù)據(jù)塊的大小,然后進(jìn)行順序的或者隨機的讀操作測試。經(jīng)過多次測試,測試結(jié)果呈現(xiàn)出以下兩個特點。

1)對于一個選定的測試路徑,順序讀操作的測試結(jié)果隨著讀取數(shù)據(jù)塊大小的增加,數(shù)據(jù)傳輸率先增大后減小。

選定測試路徑為C分區(qū),數(shù)據(jù)塊大小分別選擇1 kB、2 kB、4 kB、8 kB、16 kB、32 kB、64 kB、128 kB、256 kB 和 512 kB。圖3顯示,數(shù)據(jù)傳輸率首先隨著數(shù)據(jù)塊的增大而增加,當(dāng)數(shù)據(jù)塊大小為128 kB時,達(dá)到最大值;然后當(dāng)數(shù)據(jù)塊的大小繼續(xù)增大時,數(shù)據(jù)傳輸率開始下降。在其他機器上測試時,數(shù)據(jù)傳輸率也呈現(xiàn)出這種趨勢,只是達(dá)到最大數(shù)據(jù)傳輸率的數(shù)據(jù)塊大小有所不同。這表明不同的測試環(huán)境都有一個數(shù)據(jù)傳輸率的最大值。

圖3 C盤不同數(shù)據(jù)塊大小的數(shù)據(jù)傳輸率Fig.3 Transfer rate of different data blocks in Cdisk

2)讀取相同大小的數(shù)據(jù)塊時,隨機讀操作測試結(jié)果的數(shù)據(jù)傳輸率比順序讀操作的測試結(jié)果小得多。

在隨機讀操作時,由于每次所讀的扇區(qū)是隨機的,磁頭要進(jìn)行較長時間的尋道定位工作,所以,單位時間內(nèi)只能完成較少次數(shù)的數(shù)據(jù)塊傳輸工作,這就導(dǎo)致了隨機讀操作的數(shù)據(jù)傳輸率比順序讀操作的要小得多。但是隨機讀操作的數(shù)據(jù)傳輸率隨著測試數(shù)據(jù)塊的增大而增加,這點與順序讀操作時數(shù)據(jù)傳輸率隨著測試數(shù)據(jù)塊的增大先增加后減少不同。

3.2 典型應(yīng)用環(huán)境下的測試結(jié)果及分析

3.2.1 模擬Web Server測試結(jié)果分析

測試時,選擇整塊硬盤作為測試路徑,測試時數(shù)據(jù)塊大小及其典型分布為:512 B 22%、1 kB 15%、2 kB 8%、4 kB 23%、8 kB 15%、16 kB 2%、32 kB%6、64 kB%7、128 kB 1%、512 kB 1%。Web Server的吞吐率如圖4所示。圖4顯示,模擬Web Server環(huán)境進(jìn)行讀操作測試時,硬盤所提供的響應(yīng)次數(shù)集中在140~160次之間。

圖4 Web Server吞吐率折線圖Fig.4 Broken line graph of Web Server's throughput rate

3.2.2 模擬File Server測試結(jié)果分析

模擬File Server測試時,數(shù)據(jù)塊的大小及分布情況為:512 B 10%、1 kB 5%、2 kB 5%、4 kB 60%、8 kB 2%、16 kB 4%、32 kB 4%、64 kB 10%。測試時仍然選擇整塊硬盤作為測試路徑,F(xiàn)ile Server的I/O吞吐率如圖5所示。圖5顯示,模擬File Server環(huán)境進(jìn)行讀操作測試時,硬盤所提供的響應(yīng)次數(shù)集中在150-160次之間。

圖5 File Server I/O吞吐率折線圖Fig.5 Broken line graph of File Server I/O's throughput rate

3.2.3 模擬DataBase Server測試結(jié)果分析

模擬Database Server進(jìn)行測試時,數(shù)據(jù)塊大小分布為512 B、1 kB、2 kB、4 kB。 Database Server的 I/O 吞吐率如圖 6所示。圖6顯示,模擬Database Server環(huán)境進(jìn)行讀操作測試時,硬盤所提供的響應(yīng)次數(shù)主要集中在160~180次之間。

圖6 Database Server I/O吞吐率折線Fig.6 Broken line graph of Database Server I/O's throughput rate

3.2.4 模擬Streaming File Server測試結(jié)果分析

模擬Streaming File Server環(huán)境進(jìn)行測試時,讀操作為128 kB的順序讀操作。根據(jù)測試結(jié)果將用戶數(shù)戶數(shù)目從1到6的各種情況的總數(shù)據(jù)傳輸率作圖7。從圖7中可以看出,當(dāng)只有一個用戶的時候,數(shù)據(jù)傳輸率較大,基本維持在24.5 MB左右,而這個值與前面普通測試對比,128 kB數(shù)據(jù)塊大小的順序讀操作的數(shù)據(jù)傳輸率基本一樣。

圖7 Streaming File Server多用戶環(huán)境總的數(shù)據(jù)傳輸率折線圖Fig.7 Broken line graph of total transfer rate in Streaming File Server multi user environment

4 結(jié)束語

本文開發(fā)了一種硬盤性能測試軟件,使用Visual C++6.0工具和MFC+AppWizard模式。整個測試算法的核心是在讀操作線程中調(diào)用ReadFile函數(shù)發(fā)出讀操作命令,然后統(tǒng)計操作過程中各種需要的數(shù)據(jù)量,計算得出各個性能指標(biāo)。主要完成了以下幾個功能:硬盤基本性能參數(shù)測試,典型應(yīng)用環(huán)境下的測試,測試環(huán)境軟硬件信息檢測,記錄日志功能。在后續(xù)工作中還將完成硬盤的寫操作測試、硬盤的Burst I/OTest、硬盤CPU占用率的測試、完善測試原理等工作。

[1]謝其中.微型計算機常用外部設(shè)備[M].3版.武漢:華中科技大學(xué)出版社,2001.

[2]Jeppesen J,Allen W,Anderson S.Memory Products,Network and Computer Storage Hard Disk Controller[C].The Disk Drive's Brain and Body International Conference on Computer Design:VLSI in Computers&,Processors(ICCD'01),2001.

[3]Tools Development Staff.Iometer User’s Guid Intel FCD[S].Copyright(c) 1996-1999 Intel Corporation.

[4]許宏松.如何測試你的硬盤[J].微型計算機,2002(5):42-48.XUHong-song.Howtotestyour hard disk[J].Micro Computer,2002(5):42-48.

[5]David J,潘愛民,王國印.Visual C++ 技術(shù)內(nèi)幕[M].4版.北京:清華大學(xué)出版社,1999.

[6]侯俊杰 著.深入淺出 MFC[M].2版.武漢:華中科技大學(xué)出版社,2001.

[7]錢能,董靈平,張敏霞.編著 C++程序設(shè)計教程[M].北京:清華大學(xué)出版社,2000.

[8]Eckel B,劉宗田,袁兆由.C++編程思想:第一卷:標(biāo)準(zhǔn)C++導(dǎo)引[M].2版.北京:機械工業(yè)出版社,2002.

[9]Petzold C.Windows程序設(shè)計[M].5版.北京:北京大學(xué)出版社,2000.

猜你喜歡
傳輸率測試軟件性能參數(shù)
紡織品吸濕速干性能參數(shù)研究
網(wǎng)絡(luò)自適應(yīng)測試軟件運行方法設(shè)計
提高縣級區(qū)域觀測站數(shù)據(jù)傳輸率的建議與探討
傳感器高速采集傳輸系統(tǒng)中Aurora協(xié)議測試分析*
不同代際移動通訊技術(shù)對自動氣象站數(shù)據(jù)傳輸支撐能力對比分析
自動化檢測EPU10A板卡系統(tǒng)設(shè)計與實現(xiàn)
時間數(shù)字轉(zhuǎn)換器性能參數(shù)及誤差分析
天線電性能參數(shù)的測量
遠(yuǎn)程開放教育學(xué)生自主學(xué)習(xí)能力評價的研究
一款重型包裝抗壓系統(tǒng)控制軟件的設(shè)計與開發(fā)
軟件工程(2014年7期)2014-09-24 20:03:26
民县| 中西区| 栖霞市| 凭祥市| 汉寿县| 怀远县| 玉门市| 永兴县| 伽师县| 长丰县| 天柱县| 绥滨县| 卫辉市| 潮州市| 三穗县| 黔西县| 沽源县| 七台河市| 南康市| 宝山区| 金华市| 绿春县| 肃南| 游戏| 南宁市| 青田县| 若羌县| 扎囊县| 微山县| 讷河市| 镇雄县| 永春县| 恭城| 婺源县| 乡宁县| 韶关市| 定日县| 平乡县| 通道| 双柏县| 理塘县|