在格式化硬碟建立 Windows NTFS 分割區時,預設的叢集大小(cluster size)是 4KB。雖然 Windows 作業系統允許使用者調整 Cluster size:從 512B 到 64KB,不過從測試結果會發現,預設的 4KB 對一般用戶而言是最佳的選擇。
較大的 Cluster size 可以減少硬碟上非連續的儲存空間,缺點是小檔案會佔用較多的硬碟空間,導致硬碟容量的浪費。然而,較小的叢集大小可以提高硬碟空間使用率,缺點就是造成更多的硬碟上非連續儲存空間,降低效能。
如何更改叢集大小?
Windows 視窗左下角搜尋列輸入:Disk Management
在未格式化的硬碟中,按下滑鼠右鍵 > 新增簡單磁碟區
會開啟新增簡單磁碟區精靈 > 指定磁碟區大小 > 指派磁碟機代號或路徑 > 磁碟分割格式化 > 完成新增簡單磁碟區精靈
【配置單元大小 / Allocation unit size】就是【叢集大小 / Cluster size】的意思。
硬碟格式化配置單位大小建議:
資料來源:NTFS 磁碟大小支援表
Cluster size | Largest volume and file |
---|---|
4 KB (default size) | 16 TB |
8 KB | 32 TB |
16 KB | 64 TB |
32 KB | 128 TB |
64 KB* | 256 TB |
128 KB | 512 TB |
256 KB | 1 PB |
512 KB | 2 PB |
1024 KB | 4 PB |
2048 KB | 8 PB |
*:Windows 10 version 1709 之前的版本,最大只支援 64KB 的 Cluster size
配置單位大小查詢
方法 1:命令提示字元
Windows 視窗左下角搜尋列輸入:CMD
用【以系統管理員身分執行】
輸入:fsutil fsinfo ntfsInfo D:
記得把【D】更改成你要查詢的磁碟代號,下表中【每一叢集位元組】出現的數字,就是目前磁碟的【配置單元大小 / Allocation unit size】或稱為【叢集大小 / Cluster size】。
C:\Windows\system32>fsutil fsinfo ntfsInfo D:
NTFS 磁碟區序號: 0xa2f4b1d4f4b1aac5
NTFS 版本 : 3.1
LFS 版本 : 2.0
磁區總計 : 1,953,519,615 (931.5 GB)
叢集總數 : 244,189,951 (931.5 GB)
可用叢集 : 62,408,112 (238.1 GB)
保留叢集總數 : 1,024 ( 4.0 MB)
已保留的儲存空間保留 : 0 ( 0.0 KB)
每一磁區位元組 : 512
每一實體磁區位元組 : 4096
每一叢集位元組 : 4096
…(以下省略)
方法 2:命令提示字元
Windows 視窗左下角搜尋列輸入:CMD
用【以系統管理員身分執行】
輸入:chkdsk D:
記得把【D】更改成你要查詢的磁碟代號,下表中【每個配置單位有】出現的數字,就是目前磁碟的【配置單元大小 / Allocation unit size / Cluster size】。
C:\Windows\system32>chkdsk d:
檔案系統的類型是 NTFS。
…(以下省略)
磁碟空間總計 976759807 KB。
82137 個檔案共 739373996 KB。
3952 個索引共 21592 KB。
損壞的磁區共 0 KB。
系統使用空間 183611 KB。
記錄檔共佔用 65536 KB。
磁碟可用空間 237180608 KB。
每個配置單位有 4096 個位元組。
磁碟上共有 244189951 個配置單位。
磁碟上有 59295152 個可用的配置單位。
方法 3:Diskpart
Windows 視窗左下角搜尋列輸入:diskpart
用【以系統管理員身分執行】
輸入:
list disk
select disk 0
list partition
select partition 1
filesystem
記得把【0】與【1】更改成你要查詢的磁碟代號,下表中【配置單位大小】出現的數字,就是目前磁碟的【配置單元大小 / Allocation unit size / Cluster size】。
方法 4:MiniTool Partition Wizard Pro
軟體名稱:MiniTool Partition Wizard Pro
功能:
移動/調整分割區大小、合併分割區、格式化分割區、硬碟效能軟體、磁碟空間分析、SSD 4K 對齊
特色:
可以不破壞硬碟原有資料,解決磁碟分割區的問題
可以針對整個磁碟機,也可以是分割區
多合一軟體,包含 Disk Partition Management、Disk Partition Conversion、Disk Partition Copy、Partition Recovery。
叢集大小 vs 硬碟效能的測試環境
叢集大小(cluster size)對於硬碟效能是否有絕對的影響呢?以下列出測試環境。
測試硬碟規格
品牌:Seagate
系列:Momentus Thin SATA
型號:ST500LM021
容量:500 GB
磁區(Bytes per sector):512B (logical) / 4096B (physical)
轉速:7200 RPM
持續資料傳輸率:135 MB/s max
內建快取容量:32 MB
軌對軌尋找時間(Track-to-track seek times): 1.5 ms
平均延遲(Average latency): 4.2 ms測試軟體
硬碟 IO 效能測試軟體:Iometer
Iometer 設定指南:Iometer 範例
注意事項:
1、只有英文版本
2、磁碟必須初始化成 MBR 才能進行測試測試參數設定
1、根據【如何更改叢集大小?】章節內容,選擇不同的 【配置單元大小 / Allocation unit size / Cluster size】進行測試
2、Iometer 使用不同的資料大小(512B ~ 4MiB)進行測試,每個資料大小測試時間為 10 分鐘
3、解讀測試圖表
– 水平軸:Cluster size,有4KiB, 8KiB, 16KiB, 32KiB, 64KiB 的持續資料傳輸率數值
– 垂直軸:持續資料傳輸率數值,單位是 MiB/s
– Outstanding I/Os:即 Queue Depth(QD),統一用 QD = 1 的持續資料傳輸率數值來比較
– 圖表上方顯示每個資料大小使用不同的顏色來呈現測試結果
– 連續讀取效能測試:使用 100% 讀取的設定
– 連續寫入效能測試:使用 100% 寫入的設定
連續讀取效能測試結果
最底下藍色線條代表資料大小是 512B 的持續資料傳輸率
中間橘色線條代表資料大小是 4KiB 的持續資料傳輸率
16KiB 以上資料大小,持續資料傳輸率結果已經到達測試硬碟的最大值(135 MB/s max),線條全疊在一起
補充說明:
Mebibyte(縮寫:MB)是使用十進位表示方式,1 MB = 1,000,000 (106) Byte
Mebibyte(縮寫:MiB)是使用二進位表示方式,1 MiB = 1,048,576 (220) Byte
連續寫入效能測試結果
最底下藍色線條代表資料大小是 512B 的持續資料傳輸率
中間橘色線條代表資料大小是 4KiB 的持續資料傳輸率
16KiB 以上資料大小,持續資料傳輸率結果已經到達測試硬碟的最大值(135 MB/s max),線條全疊在一起
叢集大小常見問題
Windows NTFS 預設的 cluster size 是多大?
NTFS 預設的 cluster size 是 4KB。
較大的 cluster size 有什麼優缺點?
優點:減少硬碟上非連續的儲存空間。
缺點:小檔案會佔用較多的硬碟空間,導致硬碟容量的浪費。較小的 cluster size 有什麼優缺點?
優點:提高硬碟空間使用率。
缺點:造成更多的硬碟上非連續儲存空間。圖例說明檔案大小與 cluster size 的關係
在筆記本檔案(cluster size.txt)內,
雖然只有幾行文字(綠色框),
檔案大小是 275 Byte,
卻需要占用整個 cluster size 4KB 的磁碟大小。浪費了 4,096 – 275 = 3,821 Byte 的磁碟大小。
結論:叢集大小影響硬碟效能的程度非常小
理論上,cluster size 好像會影響硬碟的讀寫效能。但是從連續讀取、連續寫入的測試結果可以發現【不同的資料大小並沒有明顯影響到硬碟效能】。
所以,簡短結論就是:叢集大小影響硬碟效能的程度非常小!