簡體   English   中英

如何測量文件(硬盤)I / O的特征?

[英]How to measure characteristics of file (hard-disk) I/O?

如何測量文件(硬盤)I / O的特征? 例如,在具有硬盤(速度X)和cpu i7(或任意數量的內核)以及Y數量的內存(具有Z Hz BIOS)的計算機上(在Windows操作系統上)將是:

  • 可以並行寫入HD的最佳文件數量?
  • 可以並行讀取高清文件的最佳數量?
  • 文件系統的功能有助於更快地撰寫。 (例如:是否有某個功能或工具可以讓您在不同的扇區(或硬磁盤)上寫入一批二進制數據,然后將它們綁定為文件?我對OS中的基礎文件I / O知之甚少。有這樣的工具是合理的!)
  • 如果以前有這樣的工具,.NET中也有嗎?

我想寫大文件(通過網絡或其他來源流式傳輸),並盡可能快(並發)! 我正在用C#編寫代碼。 它就像一個下載管理器; 因此,如果流式傳輸被中斷,它可以稍后進行。

答案(通常如此)取決於您的用法。 整個操作系統是不同使用場景之間的一大折衷。 對於NTFS文件系統,可以提到將塊大小設置為4k,NTFS存儲的文件小於MTF中的塊大小,文件大小,文件數量,碎片等。

如果您打算寫入大文件,則塊大小為64k可能會很好。 也就是說,如果您計划讀取大量數據。 如果您讀取的數據量較小,則較小的大小是好的。 該操作系統工作在4k頁面中,因此4k是很好的。 壓縮(和加密?)以及SQL和Exchange僅在4k頁面(iirc)上工作。

如果您寫入小的文件(<4k),它們將存儲在MFT中,因此您不必進行“ ekstra跳轉”。 這在寫操作(讀可能已緩存MFT)中特別有用。 MFT按順序存儲文件(例如,塊1000-1010、2000-2010),因此碎片將使MFT更大。 並行將文件寫入磁盤是碎片的主要原因之一,另一個是刪除文件。 您可以預先為文件分配所需的大小,Windows會嘗試在磁盤上找到合適的位置以應對碎片。 還有諸如O&O Defrag的實時碎片整理程序。

Windows將二進制流幾乎直接映射到磁盤上的物理位置,因此,使用不同的讀/寫方法將不會像其他因素那樣產生那么多的性能提升。 為了獲得最高速度,請使用技術用於將內存直接映射到磁盤。 請參閱http://en.wikipedia.org/wiki/Memory-mapped_file

Windows中(在“設備管理器”下,“硬盤”下)有一個選項可以增加磁盤上的緩存。 這很危險,因為如果計算機出現藍屏或電源中斷,ut可能會損壞文件系統,但是在寫入較小的文件(以及所有寫入)時會大大提高性能。 如果磁盤繁忙,這將特別有價值,因為查找時間將減少。 Windows使用所謂的電梯算法,這基本上意味着它可以在表面上來回移動硬盤磁頭,從而在移動方向上為任何應用程序服務。

希望這可以幫助。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM