2.大小問題
寫入磁盤數據塊的大小也是I/O性能的一個重要指標,許多文件系統具有可配置的塊大小,這樣,對于特別的應用或為了解決特殊的問題,可以根據需要調整磁盤塊的大小,以獲得最優性能。
磁盤碎片是指一個文件的內容散布在整個磁盤的現象,為了讀出這個文件,磁盤臂不得不來回移動多次。當磁盤空間填滿數據時,如果修改并擴充已經存在的文件,那么,就會產生磁盤碎片。為了存儲增大的文件,必須使用磁盤的未用空間來保存增加的那些塊,隨著數據不斷寫入磁盤,對磁盤上其他部分的未用空間的需求隨之增加,磁盤的空閑空間變得越來越小,甚至將在磁盤上殆盡。
磁盤塊越大,存儲一個文件所需要的磁盤塊數目越少,因此,讀出一個文件要求磁盤臂移動的次數越少,這就減少了磁盤碎片引起的性能問題。因文件的修改而引起文件增長,可能更適合于寫入該文件最后一塊的剩余空間,反過來,也使占用的磁盤塊更少。
使用大的磁盤塊也存在問題,即每個文件最后的磁盤塊空間浪費嚴重,假如需要存儲的大多數文件都比所定義的磁盤塊小,那么,磁盤上將會產生許多不能使用的空間。有時,通過把多個小文件“打包”成一個塊,而緩解因為大磁盤塊而引起的問題。
有些系統擁有可調節的I/O參數,對于每個讀操作,這些參數將指定讀出多少數據,以及裝入多少數據進入緩存等,有時,這被稱作預取。對于讀順序訪問的文件,預取技術能很好地增加磁盤緩存性能。然而,無論是從磁盤上讀取數據,還是存放這些數據到緩存,系統都需要花費時間和資源。假如系統是用于事務處理的,預取是費時的,且占用了不必要的資源,致使性能更差。