00 叢集大小影響硬碟效能?512B - 64KB 實測數據分析 cover 800 x 400

叢集大小會影響硬碟效能嗎?512B – 64KB 實測數據分析

  • Post category:Drive
  • Reading time:14 mins read

在格式化硬碟建立 Windows NTFS 分割區時,預設的叢集大小(cluster size)是 4KB。雖然 Windows 作業系統允許使用者調整 Cluster size:從 512B 到 64KB,不過從測試結果會發現,預設的 4KB 對一般用戶而言是最佳的選擇。

較大的 Cluster size 可以減少硬碟上非連續的儲存空間,缺點是小檔案會佔用較多的硬碟空間,導致硬碟容量的浪費。然而,較小的叢集大小可以提高硬碟空間使用率,缺點就是造成更多的硬碟上非連續儲存空間,降低效能。

如何更改叢集大小?

Windows 視窗左下角搜尋列輸入:Disk Management
在未格式化的硬碟中,按下滑鼠右鍵 > 新增簡單磁碟區
會開啟新增簡單磁碟區精靈 > 指定磁碟區大小 > 指派磁碟機代號或路徑 > 磁碟分割格式化 > 完成新增簡單磁碟區精靈

02 how to open disk management in Windows 10
新增簡單磁碟區

配置單元大小 / Allocation unit size】就是【叢集大小 / Cluster size】的意思。

03 change cluster size ( 叢集大小 ) in Windows 10
磁碟分割格式化 – 更改配置單位大小

硬碟格式化配置單位大小建議:
資料來源:NTFS 磁碟大小支援表

Cluster sizeLargest volume and file
4 KB (default size)16 TB
8 KB32 TB
16 KB64 TB
32 KB128 TB
64 KB*256 TB
128 KB512 TB
256 KB1 PB
512 KB2 PB
1024 KB4 PB
2048 KB8 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】。

04 how to check cluster size by diskpart
查詢當前檔案系統的Cluster Size

方法 4:MiniTool Partition Wizard Pro

軟體名稱:MiniTool Partition Wizard Pro
功能:
移動/調整分割區大小、合併分割區、格式化分割區、硬碟效能軟體、磁碟空間分析、SSD 4K 對齊
特色:
可以不破壞硬碟原有資料,解決磁碟分割區的問題
可以針對整個磁碟機,也可以是分割區
多合一軟體,包含 Disk Partition Management、Disk Partition Conversion、Disk Partition Copy、Partition Recovery。

05 MiniTool Partition Wizard changes ntfs cluster size
MiniTool Partition Wizard Pro

叢集大小 vs 硬碟效能的測試環境

叢集大小(cluster size)對於硬碟效能是否有絕對的影響呢?以下列出測試環境。

  1. 測試硬碟規格

    品牌: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

  2. 測試軟體

    硬碟 IO 效能測試軟體:Iometer
    Iometer 設定指南:Iometer 範例
    注意事項:
    1、只有英文版本
    2、磁碟必須初始化成 MBR 才能進行測試

  3. 測試參數設定

    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

07 iometer QD = 1 Sequential Read throughtput
連續讀取效能結果

連續寫入效能測試結果

最底下藍色線條代表資料大小是 512B 的持續資料傳輸率
中間橘色線條代表資料大小是 4KiB 的持續資料傳輸率
16KiB 以上資料大小,持續資料傳輸率結果已經到達測試硬碟的最大值(135 MB/s max),線條全疊在一起

08 iometer QD = 1 Sequential Write throughtput
連續寫入效能結果

叢集大小常見問題

  1. Windows NTFS 預設的 cluster size 是多大?

    NTFS 預設的 cluster size 是 4KB。

  2. 較大的 cluster size 有什麼優缺點?

    優點:減少硬碟上非連續的儲存空間。
    缺點:小檔案會佔用較多的硬碟空間,導致硬碟容量的浪費。

  3. 較小的 cluster size 有什麼優缺點?

    優點:提高硬碟空間使用率。
    缺點:造成更多的硬碟上非連續儲存空間。

  4. 圖例說明檔案大小與 cluster size 的關係

    09 檔案大小與叢集大小的關係

    在筆記本檔案(cluster size.txt)內,
    雖然只有幾行文字(綠色框),
    檔案大小是 275 Byte,
    卻需要占用整個 cluster size 4KB 的磁碟大小。

    浪費了 4,096 – 275 = 3,821 Byte 的磁碟大小。

結論:叢集大小影響硬碟效能的程度非常小

理論上,cluster size 好像會影響硬碟的讀寫效能。但是從連續讀取連續寫入的測試結果可以發現【不同的資料大小並沒有明顯影響到硬碟效能】。

所以,簡短結論就是:叢集大小影響硬碟效能的程度非常小!