Tại sao nén NTFS chiếm nhiều dung lượng?


8

Để tiết kiệm dung lượng ổ đĩa, tôi nghĩ rằng có thể nên nén VMware vSphere Client mà tôi đã cài đặt vì tôi gần như không bao giờ sử dụng nó.

Tôi đã rất ngạc nhiên khi thấy rằng nó có tác động ngược lại chính xác trên không gian đĩa trống. Tôi theo dõi nó xuống hơn nữa và thấy rằng nó có liên quan đến việc nén Helpthư mục. Mất không gian đĩa không được phản ánh trong kích thước thư mục.

Tôi đã lặp lại việc nén / giải nén xi lanh ba lần để đảm bảo một chương trình khác không trùng hợp chiếm không gian đĩa. Có thể đáng chú ý là thư mục chứa một số lượng lớn các tệp nhỏ (30k).

Tại sao lại như vậy và bằng cách nào đó tôi có thể tìm thấy các thư mục khác mà tôi nên giải nén để tiết kiệm dung lượng đĩa?


Không nén:

kích thước thư mục không nén không gian trống mà không nén

Với nén:

kích thước thư mục với nén không gian trống với nén


2
Vì vậy, bạn đang nén một thư mục ~ 300 MB và bạn mất 5 GB dung lượng đĩa?
Der Hochstapler

Vâng, đó chính xác là những gì xảy ra - lặp đi lặp lại.
AndreKR

Điều tra sâu hơn cho thấy điều này cũng xảy ra với một bộ thử nghiệm nhân tạo gồm 30k tệp với mỗi kích thước 10kB. Hơn nữa, nó chỉ xảy ra trên ổ C và D của tôi, không phải trên ổ đĩa Truecrypt NTFS được định dạng mới.
AndreKR

@AndreKR, có ai biết tại sao điều này không xảy ra với khối lượng Truecrypt không? Ngoài ra, bạn đã tìm thấy bất kỳ cách nào để giải phóng không gian đĩa (mà không cần khởi động lại)?
Davor Josipovic

Câu trả lời:


9

Một chút kiến ​​thức nền tảng về ảnh chụp màn hình kích thước thư mục bạn đã cung cấp:

Không nén

Như mong đợi với nhiều tệp nhỏ có rất nhiều chi phí. Đĩa cứng của bạn được phân vùng với kích thước khối nhất định - 4KB theo mặc định cho NTFS.

Mỗi tệp phải phân bổ bội số 4KB, nghĩa là cho dù bạn có tệp 1KB hay 3,5KB, cả hai sẽ chiếm 4KB dung lượng. Nếu bạn có tệp 13KB, nó sẽ sử dụng 16KB trên ổ đĩa của bạn. Sự khác biệt giữa "Kích thước" và "Kích thước trên đĩa" là chi phí được giới thiệu bởi không gian chưa sử dụng trong các khối, được gọi là mẹo cụm .

Nén

Sau khi nén "Kích thước" vẫn giống như lượng dữ liệu ròng không thay đổi chút nào. Tuy nhiên, nén đã có thể giảm tổng kích thước khoảng 130MB. Trong thực tế thậm chí nhiều hơn bởi vì chi phí ở đây cũng được áp dụng. Vì vậy, nén thực sự tiết kiệm một số không gian trong thư mục đó và nó cũng được hiển thị trong kích thước thư mục.

Bây giờ liên quan đến hành vi bạn thấy với dung lượng đĩa trống giảm trên ổ C: Điều này có thể có nhiều lý do. Một điều cần hiểu là dung lượng đĩa trống sẽ luôn nhỏ hơn

<Disk size> - <total size of all files>

Điều này là do có rất nhiều siêu dữ liệu cũng ngốn không gian (Ảnh chụp nhanh VSS, Điểm khôi phục hệ thống, MFT, v.v.).

Trong quá trình nén các tệp đơn, NTFS sẽ tạm thời giữ tệp gốc cho đến khi quá trình nén hoàn tất. Điều này là để đảm bảo rằng bạn vẫn còn lại một phiên bản hợp lệ của tệp trong trường hợp máy tính của bạn bị hỏng. Điều này tuy nhiên chỉ nên tạm thời. Tuy nhiên, mọi thứ đều trỏ đến siêu dữ liệu NTFS để gây ra điều này.

Để xác minh chính xác hơn kết quả, bạn có thể làm như sau:

  • Bắt đầu với một thư mục không nén
  • Vô hiệu hóa Bảo vệ hệ thống cho từng ổ đĩa (Thuộc tính máy tính / Bảo vệ hệ thống)
  • Xóa các điểm khôi phục cho mỗi ổ đĩa trong cùng một hộp thoại
  • Sử dụng "Dọn đĩa" trong các thuộc tính của tập C của bạn: để xóa các tệp tạm thời
  • Lưu ý dung lượng đĩa trống
  • Nén thư mục
  • Khởi động lại máy tính của bạn
  • Sử dụng dọn dẹp đĩa một lần nữa
  • Kiểm tra dung lượng trống trên đĩa của bạn

Về lý thuyết, bạn sẽ có thể thấy sự gia tăng không gian trống


3

Gần đây đã nghiên cứu một vấn đề tương tự, tôi cũng có thể nói rằng một tệp nén chiếm ít nhất 4 kilobyte không gian trên mỗi tệp và không gian tạm thời là 64 kilobyte, có kích thước của một "Đơn vị nén" cho NTFS với kích thước cụm 4kb. Bài viết trên blog.msdn.comcũng đề cập rằng khi tệp được nén, không gian đĩa được phân bổ để chứa một CU đầy đủ và được giải phóng vào thời điểm không xác định. Đây phải là lý do tại sao bạn gặp phải sự cố mất 5GB, mặc dù tạm thời (khởi động lại chắc chắn sẽ khắc phục sự mất mát đó, một số phương tiện khác cũng nên làm điều đó, nhưng không chống phân mảnh - đã thử và thất bại). Rõ ràng những gì được phân bổ dường như lớn hơn rất nhiều (64kb * (31048 + 582) = 2072903680 hoặc 1.93 GB), nhưng điều này có thể giải thích được vì NTFS có các giao dịch mất thời gian và đơn vị bộ xử lý được cam kết vào dữ liệu thô và khi đó quá trình đó sẽ được xử lý kết thúc, bạn sẽ nhận được tất cả 5 GB cộng với 150 MB dung lượng được giải phóng do nén lại.

Tóm lại, bạn chỉ mất không gian tạm thời nếu bạn nén toàn bộ nhiều tệp. Nhưng, nếu các tệp đó được sửa đổi thường xuyên, không gian đĩa của bạn sẽ được phân bổ để giữ dữ liệu không nén cho các tệp đó trong trường hợp nội dung bị thay đổi của chúng sẽ không thể được nén để phù hợp với bất kỳ không gian nào mà cụm đã chiếm trước khi ghi hành động.


2

Tôi đã có hiện tượng tương tự:

Di chuyển máy chủ, tôi đã sao chép các thư mục dữ liệu của một ổ đĩa Windows Server 2012R2 cũ (có 2 thư mục nén) trên ổ đĩa Trung tâm dữ liệu Windows Server 2016 mới hơn có cùng kích thước nơi tôi đã tạo cấu trúc thư mục và đặt cờ nén trên hai thư mục này trước đây để quá trình sao chép. Trong quá trình sao chép, tôi hết dung lượng đĩa và bất cứ nơi nào tôi chỉ sử dụng 3 GB 20 GB, nhưng ổ đĩa cho tôi biết 19.x GB đã được sử dụng. Một đồng nghiệp đã nói với tôi xóa cờ nén và thật kỳ diệu, 17GB đã mất xuất hiện trở lại.

Sau đó, tôi đọc bài viết của bạn và quyết định áp dụng lại cờ và thử khởi động lại, nhưng thật vui là không gian đĩa đã sử dụng không tăng lần này.

Tôi đoán có thể có một vấn đề trong Windows Server 2016 (có thể từ trước đến nay) rằng các tệp tạm thời được tạo bên trong không được dọn sạch đúng cách khi các tệp được sao chép vào thư mục nén (trái ngược với khi cờ nén được áp dụng cho các tệp đã có).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.