1. 程式人生 > >如何檢視Windows上檔案系統塊的大小

如何檢視Windows上檔案系統塊的大小

引言:

windows上檔案系統塊,被成為簇。

Oracle官方建議這個引數的大小等於或整倍數與作業系統中的塊大小。不僅io效能的原因,也是因為節省儲存空間的原因,如果你的oracle塊大小是作業系統塊大小的1.5倍,比如作業系統塊大小為2k,那麼oracle每次存放一個Oracle資料塊的資料(即3k資料)時,對應在作業系統級別上需要用兩個作業系統資料塊來存放為這一個Oracle資料塊的資料(即3k資料)。這樣實際就會浪費1k的空間。Oracle資料塊的大小不是作業系統資料塊的整數倍時,將會使得資料存放在磁碟時產生過多的零碎空間,減少磁碟可用容量,也將損耗CPU處理資源和硬碟存取速度,影響系統性能。

http://blog.csdn.net/jx_jy/article/details/17225909

http://mhqiang.blog.163.com/blog/static/25279557201231315712431/

作業系統的塊大小在windows下可以使用命令fsutil  fsinfo  ntfsinfo  c:進行檢視。在linux下可以使用tune2fs  -l  /dev/sda1(檔案系統路徑)進行檢視。

==================================

在ITPUB上有朋友問到這樣一個問題:如何檢視windows上檔案系統塊的大小.

其實從Windows Xp開始,Microsoft提供了一個工具fsutil可以用來檢視檔案系統的塊大小,經過這個工具也可以用在Windows 2000平臺上:

D:\>fsutil fsinfo ntfsinfo c:
NTFS 卷序列號 :       0x388c89188c88d1b4
版本 :                         3.1
區數量 :                  0x00000000013fe599
簇總數 :                  0x000000000027fcb3
可用簇  :                  0x0000000000011e43
保留總數 :                  0x0000000000000060
每個扇區位元組數  :               512
每個簇位元組數 :               4096
每個 FileRecord 段的位元組數    : 1024
每個 FileRecord 段的簇數 : 0
Mft 有效資料長度 :           0x00000000051cc000
Mft 起始 Lcn  :                  0x00000000000c0000
Mft2 起始 Lcn :                  0x000000000013fe59
Mft 區域起始 :                  0x0000000000221960
Mft 區域結尾   :                  0x000000000022a280

這裡的"每個簇位元組數" 4096就是Windows上的檔案系統塊大小。
這個大小可以在格式化時定義,我們從format的命令可以看到Windows上不同檔案系統可以使用的塊大小:

D:\>format /?
格式化磁碟以供 Windows XP 使用。

FORMAT volume [/FS:file-system] [/V:label] [/Q] [/A:size] [/C] [/X]
FORMAT volume [/V:label] [/Q] [/F:size]
FORMAT volume [/V:label] [/Q] [/T:tracks /N:sectors]
FORMAT volume [/V:label] [/Q]
FORMAT volume [/Q]

volume 指定驅動器(後面跟一個冒號)、裝入點
或卷名。
/FS:filesystem 指定檔案系統型別(FAT、FAT32 或 NTFS)。
/V:label 指定卷標。
/Q 執行快速格式化。
/C 僅適於 NTFS: 預設情況下,將壓縮在該新建捲上
建立的檔案。
/X 如果必要,先強制卸下卷。那時,該卷所有
已開啟的控制代碼不再有效。
/A:size 替代預設配置單位大小。極力建議您在一般狀況下使用
預設設定。
NTFS 支援 512、1024、2048、4096、8192、16K、32K、
64K。
FAT 支援 512、1024、2048、4096、8192、16K、32K、
64k,(128k、256k 用於大於 512 位元組的扇區) 。
FAT32 支援 512、1024、2048、4096、8192、16k、32k、
64k,(128k 、256k 用於大於 512 位元組的扇區)。

注意 FAT 及 FAT32 檔案系統對捲上的群集數量有以下限制:

FAT: 群集數量 <= 65526
FAT32: 65526 < 群集數量 < 4177918

如果判定使用指定的群集大小無法滿足以上需求,格式
化將立即停止。

NTFS 壓縮不支援大於 4096 的分配單元。

/F:size 指定要格式化的軟盤大小(1.44)
/T:tracks 為磁碟指定每面磁軌數。
/N:sectors 指定每條磁軌的扇區數。

當然更簡單,通過在檔案系統上建立一個小檔案,觀察其分配空間也可以得到系統最小的IO分配單元:

-The End-

============================================================================

windows在cmd命令列下使用chkdsk可以檢視當前檔案系統的簇大小(windows上面叫分配單元)

但執行chkdsk,需要花一定的時間,有點麻煩。

使用下面的方法可快速檢視當前檔案系統的簇大小:

新建一個文字文件,在裡面輸一個字元,儲存。然後檢視該文字文件的屬性:



從佔用空間就可以看出當前檔案系統的簇大小

==========================


在Windows系統中,一個檔案的大小(位元組數)和它在硬碟上(或其他儲存介質上)所佔的空間是兩個既相互聯絡又有區別的概念。在不同的情況下,同一個檔案的“所佔空間”會發生變化。 
  1.“檔案大小”與“所佔空間”的差別 
  為了便於大家理解,我們先來看兩個例子: 
  例1:找到D盤上的Ersave2.dat檔案,用滑鼠右鍵單擊該檔案,選擇“屬性”,即可開啟對話方塊,我們可以看到,Ersave2.dat的實際大小為655,628 Byte(位元組),但它所佔用的空間卻為688,128 Byte,兩者整整相差了32KB。 
  例2:同樣是該檔案,如果將它複製到A盤,你會發現該檔案實際大小和所佔空間基本一致,同為640KB,但位元組數稍有差別。再將它複製到C盤,檢視其屬性後,你會驚奇地發現它的大小和所佔空間的差別又不相同了!
  顯然,在這三種情況中,檔案的實際大小沒有變化,但在不同的磁碟上它所佔的空間卻都有變化。事實上,只要我們理解了檔案在磁碟上的儲存機制後,就不難理解上述的三種情況了。檔案的大小其實就是檔案內容實際具有的位元組數,它以Byte為衡量單位,只要檔案內容和格式不發生變化,檔案大小就不會發生變化。但檔案在磁碟上的所佔空間卻不是以Byte為衡量單位的,它最小的計量單位是“簇(Cluster)”。 

  小知識:什麼是簇? 
  檔案系統是作業系統與驅動器之間的介面,當作業系統請求從硬盤裡讀取一個檔案時,會請求相應的檔案系統(FAT 16/32/NTFS)開啟檔案。扇區是磁碟最小的物理儲存單元,但由於作業系統無法對數目眾多的扇區進行定址,所以作業系統就將相鄰的扇區組合在一起,形成一個簇,然後再對簇進行管理。每個簇可以包括2、4、8、16、32或64個扇區。顯然,簇是作業系統所使用的邏輯概念,而非磁碟的物理特性。 
  為了更好地管理磁碟空間和更高效地從硬碟讀取資料,作業系統規定一個簇中只能放置一個檔案的內容,因此檔案所佔用的空間,只能是簇的整數倍;而如果檔案實際大小小於一簇,它也要佔一簇的空間。所以,一般情況下檔案所佔空間要略大於檔案的實際大小,只有在少數情況下,即檔案的實際大小恰好是簇的整數倍時,檔案的實際大小才會與所佔空間完全一致。 

  2.分割槽格式與簇大小 
  在例2中,同一個檔案在不同磁碟分割槽上所佔的空間不一樣大小,這是由於不同磁碟簇的大小不一樣導致的。簇的大小主要由磁碟的分割槽格式和容量大小來決定,其對應關係如表1所示。 
  筆者的軟盤採用FAT分割槽,容量1.44MB,簇大小為512 Byte(一個扇區);C盤採用FAT 32分割槽,容量為4.87GB,簇大小為8KB;D盤採用FAT 32分割槽,容量為32.3GB,簇大小為32KB。計算檔案所佔空間時,可以用如下公式: 
  簇數=取整(檔案大小/簇大小)+1 
  所佔空間=簇數×磁碟簇大小 
  公式中檔案大小和簇大小應以Byte為單位,否則可能會產生誤差。如果要以KB為單位,將位元組數除以1024即可。利用上述的計算公式,可以計算ersave2.dat檔案的實際佔用空間。 

  3.輕鬆檢視簇大小 
  ①用Chkdsk檢視簇大小 
  在Windows作業系統中,我們可以使用Chkdsk命令檢視硬碟分割槽的簇大小。例如我們要在Windows XP下檢視C盤的簇大小,可以單擊“開始→執行”,鍵入“CMD”後回車,再鍵入“C:”後回車,然後輸入“Chkdsk”後回車,稍候片刻從它的分析結果中,我們就可以得到C盤的簇大小,不過它把簇稱之為“分配單元”或者“Allocation unit”。 
②用PQ Magic等磁碟工具來檢測
  很多磁碟工具都具備磁碟資訊顯示等功能。例如在PQ Magic中,選擇要檢視的磁碟分割槽,然後單擊右鍵選擇“高階→調整簇大小”功能,即可從顯示的對話方塊中可以看到該磁碟當前設定的簇大小。
③手工檢視 
  手動建立一個100位元組以下的文字文件。然後將該檔案複製到欲檢視簇大小的磁碟分割槽中,在Windows下顯示該檔案的屬性,其中“所佔空間”處顯示的數值就是簇大小。

參考:

windows 簇  谷歌