2010-08-29 35 views
2

我嘗試模擬應用程序負載來衡量應用程序的性能。數十個客戶端向服務器發送請求,並且大部分請求處理是從HDD(隨機文件,隨機文件偏移量)加載的隨機數據。性能測試。如何增加硬盤運行穩定性

我在400個文件中使用15 Gb。

HDD盡力緩存讀取操作,因此整體性能從運行到運行非常不穩定(+/- 5..10%)。

爲了儘量減少硬盤內部的優化,我正在考慮將數據放到專用的物理硬盤上,在每次測試運行前創建隨機文件,使用相同的隨機文件訪問序列(文件和偏移序列),然後運行測試並在最後格式化硬盤。我想它會清除所有內部硬盤緩存和文件訪問預測。

我該怎麼做才能最大限度地降低性能結果的分散?它有一個更簡單(或可能更合適)的方式來獲得穩定的性能結果?

預先感謝您!

回答

2

基本上所有現代硬盤驅動器包括緩存。在我看來,沒有緩存的結果可能會更統一,但會一律毫無意義。

無論如何,在大多數驅動器上都有禁用緩存的命令(但是,如果內存服務,它們可能是擴展,而不是標準的一部分,因此您必須專門針對特定目標驅動器)。因爲你想模擬一個不是真正的硬盤驅動器(通常)如何工作的東西,所以我會考慮把它寫成一個完整的軟件模擬 - 例如,有某種類型的硬盤驅動器類通過讀取和寫入數據的命令,尋找另一個軌道等,保持「當前軌道」。該類將跟蹤諸如每次操作所消耗的(虛擬)時間量之類的事情。

+0

謝謝你的回覆。我不想禁用高速緩存,但要使運行時的高速緩存保持不變。我懷疑對於第二次測試運行(第三,第四......)hdd緩存越來越多的數據應用程序使用,因此測試往往會更快更快地執行。一些隨機文件訪問序列的執行速度比其他文件快得多。但是我害怕使用相同的文件訪問順序,因爲它會被完全緩存。 – 2010-08-29 19:55:48