Có tải xuống / sao chép các tập tin đồng thời thúc đẩy phân mảnh?


10

Việc viết nhiều hơn một tệp đồng thời vào phân vùng ổ cứng có thúc đẩy phân mảnh không? Những tập tin này sẽ được viết xen kẽ trên ổ cứng?

Ví dụ:

  • Tải xuống nhiều tệp cùng lúc từ web
  • Sao chép tập tin từ nhiều nguồn khác nhau vào cùng một phân vùng
  • Đang tải xuống một số torrent

Đây có phải là khác nhau giữa các hệ điều hành khác nhau? Là phân bổ không gian một ưu tiên cho toàn bộ tập tin là một tính năng cụ thể của ứng dụng?


Câu hỏi hay. Tôi chỉ có thể lưu ý rằng điều này phụ thuộc vào việc thực hiện trình điều khiển hệ thống tập tin chính xác, hẹp hơn so với HĐH.
Whitequark

4
Đây sẽ là một câu trả lời phức tạp ... Vâng, đó là hệ điều hành và ứng dụng cụ thể. Một số ứng dụng phân bổ không gian và một số thì không. Đôi khi không có cách nào để biết trước được cần bao nhiêu không gian được phân bổ, do đó loại ứng dụng có thể bị phân mảnh nhiều hơn. Ngoài ra, nó sẽ là hệ thống tập tin cụ thể (bạn có thể đang sử dụng fat32 hoặc NTFS trong windows)
Jarvin

Câu trả lời:


7

Nó phụ thuộc rất nhiều vào hệ thống tập tin đang sử dụng, ở một mức độ nào đó hệ điều hành, cũng như chương trình mở tệp. Ứng dụng yêu cầu dung lượng lưu trữ chính xác khi tạo tệp mới và chính các tính năng của hệ điều hành và hệ thống tệp có ảnh hưởng đến hành vi mở và mở rộng mà các ứng dụng này tuân theo khi chúng không biết có bao nhiêu dung lượng yêu cầu.

Nếu một chương trình yêu cầu hệ điều hành cho một tệp 4.2GB, HĐH sẽ tìm thấy một khối không gian với 4.2GB miễn phí. Không thể cung cấp cho chương trình đủ các đoạn tự do để lưu tệp. Có một số biến ở đây, điều này được đơn giản hóa.

Nếu một chương trình yêu cầu hệ điều hành cho tệp 4KB, HĐH sẽ cung cấp cho nó. Nếu chương trình liên tục yêu cầu các phân đoạn 4KB liền kề mới (bạn đang tải xuống một tệp và chương trình không biết nó lớn đến mức nào) cho đến khi nhận được dung lượng 4.2GB, HĐH sẽ vui vẻ cho không gian. Đây là trường hợp mà hệ thống tập tin và hệ điều hành tạo ra sự khác biệt.

XFS, chẳng hạn, dựa trên phạm vi nên không gian được thêm sẽ tiếp tục cho đến khi không thể. Ngoài ra, XFS có thể được cấu hình để phân bổ trước các tệp mới với một dung lượng nhất định có thể giảm thiểu phân mảnh hơn nữa (hữu ích trên các ổ lưu trữ Máy ảo, cũng như các ổ đĩa DVD ISO).

EXT2 / 3, NTFS và tôi tin rằng Reiser, sẽ phân bổ liền kề cho đến khi không thể nữa. Sau đó, nó sẽ bắt đầu những mảnh mới. Mỗi mảnh có thể có kích thước 4KB.

Hãy chấp nhận trường hợp xấu nhất. Hai tệp 4.2GB song song được lưu 4KB cùng một lúc, vào cùng một thư mục. Điều 'cùng thư mục' là một phần của trường hợp xấu nhất do một số kết hợp OS / FS cố gắng giữ các tệp trong cùng một thư mục gần nhau. Đối với một số kết hợp OS / FS, điều này sẽ dẫn đến hai tệp được xen kẽ hoàn toàn trên đĩa. Đối với những người khác cố gắng giữ các tệp mới mở trên các phân đoạn miễn phí khác nhau, có thể không có sự phân mảnh nào cả hoặc rất ít.

Một chút về XFS (tôi nghĩ ext4 và btrfs cũng có thể làm điều này). Trong trường hợp này, xen kẽ sẽ không phải là 4KB, nó sẽ là bất cứ điều gì bạn đặt giá trị kích thước phân bổ của mình thành khi lắp âm lượng. Đặt nó thành 256MB và bạn sẽ nhận được một tệp 4.2GB với 17 đoạn thay vì hơn một triệu. Hữu ích cho khối lượng lưu trữ các tệp lớn như máy chủ phương tiện. Không hữu ích cho khối lượng lưu trữ nhiều tập tin bitty và một vài tập tin lớn.

Chính vì điều này mà các máy khách Bittorrent mở các tệp thưa thớt khi bắt đầu tải xuống mới hoặc chỉ phân bổ kích thước được chỉ định trong tổng số trước khi bắt đầu.

Khi sao chép các tệp từ các phần khác nhau của cùng một phân vùng (hoặc quái, thậm chí từ các phân vùng khác), về mặt lý thuyết, quá trình sao chép sẽ biết các tệp được sao chép lớn đến mức nào để yêu cầu không gian có kích thước phù hợp từ HĐH; không cần nối thêm phân bổ cho các tập tin mới.

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.