Ở đây, tôi đã viết một cuốn sách một cách tình cờ. Lấy một ít cà phê trước.
Tại sao làm trống không gian đĩa tăng tốc máy tính?
Nó không, ít nhất là không phải của riêng mình. Đây là một huyền thoại thực sự phổ biến. Lý do nó là một huyền thoại phổ biến là bởi vì làm đầy ổ cứng của bạn thường xảy ra cùng lúc như những thứ khác mà theo truyền thống có thể làm chậm † máy tính của bạn. Hiệu suất SSD không có xu hướng giảm khi ổ đĩa đầy , nhưng đây là một vấn đề tương đối mới, chỉ có ở SSD và không thực sự đáng chú ý đối với người dùng thông thường. Nói chung, không gian đĩa trống thấp chỉ là một cá trích đỏ .
Ví dụ: những thứ như:
Phân mảnh tập tin. Tập tin phân mảnh là một vấn đề †† , nhưng thiếu không gian tự do, trong khi chắc chắn là một trong nhiều yếu tố góp phần, không phải là duy nhất nguyên nhân của nó. Một số điểm chính ở đây:
Khả năng tệp bị phân mảnh không liên quan đến dung lượng trống còn lại trên ổ đĩa. Chúng có liên quan đến kích thước của khối không gian trống tiếp giáp lớn nhất trên ổ đĩa (ví dụ: "lỗ" không gian trống), mà lượng không gian trống xảy ra để đặt giới hạn trên . Chúng cũng liên quan đến cách hệ thống tệp xử lý phân bổ tệp (nhiều hơn bên dưới). Xem xét: Một ổ đĩa đó là 95% đầy đủ với tất cả các không gian trống trong một khối liền kề duy nhất có 0% cơ hội phân mảnh một tập tin mới ††† (và nguy cơ phân mảnh một tập tin nối không phụ thuộc vào không gian miễn phí). Một ổ đĩa đã đầy 5% nhưng với dữ liệu trải đều trên ổ đĩa có khả năng bị phân mảnh rất cao.
Hãy nhớ rằng phân mảnh tệp chỉ ảnh hưởng đến hiệu suất khi các tệp bị phân mảnh đang được truy cập . Hãy xem xét: Bạn có một ổ đĩa phân mảnh đẹp, vẫn còn nhiều "lỗ hổng" miễn phí trong đó. Một kịch bản phổ biến. Mọi thứ đang chạy trơn tru. Cuối cùng, mặc dù, bạn đến một điểm không còn khối không gian trống lớn nữa. Bạn tải xuống một bộ phim lớn, tập tin cuối cùng bị phân mảnh nghiêm trọng. Điều này sẽ không làm chậm máy tính của bạn. Tất cả các tệp ứng dụng của bạn và như vậy trước đây đều ổn sẽ không bị phân mảnh. Điều này có thể làm cho bộ phimmất nhiều thời gian hơn để tải (mặc dù tốc độ bit phim thông thường rất thấp so với tốc độ đọc ổ cứng mà rất có thể sẽ không được chú ý) và nó có thể ảnh hưởng đến hiệu suất giới hạn I / O trong khi phim đang tải, nhưng ngoài ra, không có gì thay đổi.
Mặc dù phân mảnh tập tin chắc chắn là một vấn đề, nhưng thường thì các hiệu ứng được giảm thiểu bằng hệ điều hành và bộ đệm ở mức phần cứng và bộ đệm. Viết chậm, đọc trước, các chiến lược như trình tải trước trong Windows, v.v., tất cả đều giúp giảm tác động của phân mảnh. Nói chung, bạn không thực sự trải qua tác động đáng kể cho đến khi sự phân mảnh trở nên nghiêm trọng (tôi thậm chí còn mạo hiểm nói rằng miễn là tệp hoán đổi của bạn không bị phân mảnh, có lẽ bạn sẽ không bao giờ nhận thấy).
Tìm kiếm chỉ mục là một ví dụ khác. Giả sử bạn đã bật tính năng lập chỉ mục tự động và một hệ điều hành không xử lý việc này một cách duyên dáng. Khi bạn lưu ngày càng nhiều nội dung có thể lập chỉ mục vào máy tính của mình (tài liệu và những thứ khác), việc lập chỉ mục có thể mất nhiều thời gian hơn và có thể bắt đầu ảnh hưởng đến tốc độ nhận biết của máy tính của bạn khi máy đang chạy, cả trong việc sử dụng I / O và CPU . Điều này không liên quan đến không gian trống, nó liên quan đến lượng nội dung có thể lập chỉ mục mà bạn có. Tuy nhiên, việc hết dung lượng trống đi đôi với việc lưu trữ nhiều nội dung hơn, do đó kết nối sai được rút ra.
Phần mềm diệt virus. Tương tự như ví dụ lập chỉ mục tìm kiếm. Giả sử bạn có phần mềm chống vi-rút được thiết lập để quét nền ổ đĩa của bạn. Khi bạn có càng nhiều nội dung có thể quét được, việc tìm kiếm sẽ chiếm nhiều tài nguyên I / O và CPU hơn, có thể gây trở ngại cho công việc của bạn. Một lần nữa, điều này có liên quan đến số lượng nội dung có thể quét được mà bạn có. Nhiều nội dung thường bằng không gian trống ít hơn, nhưng thiếu không gian trống không phải là nguyên nhân.
Đã cài đặt phần mềm. Giả sử bạn có rất nhiều phần mềm được cài đặt tải khi máy tính khởi động, do đó làm chậm thời gian khởi động. Điều này chậm xảy ra vì rất nhiều phần mềm đang được tải. Tuy nhiên, phần mềm được cài đặt chiếm không gian ổ cứng. Do đó, dung lượng trống của ổ cứng giảm cùng lúc với điều này xảy ra và một lần nữa kết nối sai có thể được thực hiện.
- Nhiều ví dụ khác dọc theo các dòng đó, khi được kết hợp với nhau, dường như liên kết chặt chẽ việc thiếu không gian trống với hiệu suất thấp hơn.
Những điều trên minh họa một lý do khác cho rằng đây là một huyền thoại phổ biến: Mặc dù thiếu không gian trống không phải là nguyên nhân trực tiếp làm chậm, gỡ cài đặt các ứng dụng khác nhau, xóa nội dung được lập chỉ mục hoặc quét, v.v., đôi khi (nhưng không phải lúc nào cũng nằm ngoài phạm vi của điều này Trả lời) tăng hiệu suất một lần nữa vì lý do không liên quan đến lượng không gian trống còn lại. Nhưng điều này cũng tự nhiên giải phóng không gian ổ cứng. Do đó, một lần nữa, một kết nối rõ ràng (nhưng sai) giữa "không gian trống nhiều hơn" và "máy tính nhanh hơn" có thể được thực hiện.
Xem xét: Nếu bạn có một máy chạy chậm do nhiều phần mềm được cài đặt, v.v. và bạn sao chép chính xác, ổ cứng của bạn sang một ổ cứng lớn hơn sau đó mở rộng các phân vùng của bạn để có thêm dung lượng trống, máy sẽ không tăng tốc một cách kỳ diệu lên. Tải cùng một phần mềm, các tệp giống nhau vẫn bị phân mảnh theo cùng một cách, cùng một trình chỉ mục tìm kiếm vẫn chạy, không có gì thay đổi mặc dù có nhiều không gian trống hơn.
Nó có liên quan gì đến việc tìm kiếm một không gian bộ nhớ để lưu mọi thứ không?
Không nó không. Có hai điều rất quan trọng đáng chú ý ở đây:
Ổ cứng của bạn không tìm kiếm xung quanh để tìm địa điểm để đặt mọi thứ. Ổ cứng của bạn là ngu ngốc. Không có gì. Đó là một khối lưu trữ lớn được đánh địa chỉ đặt những thứ mà hệ điều hành của bạn nói với nó và đọc bất cứ thứ gì được yêu cầu. Các ổ đĩa hiện đại có các cơ chế bộ đệm và bộ đệm tinh vi được thiết kế để dự đoán những gì HĐH sẽ yêu cầu dựa trên trải nghiệm chúng ta có được qua thời gian (một số ổ đĩa thậm chí còn biết về hệ thống tệp trên chúng), nhưng về cơ bản, hãy nghĩ về ổ đĩa của bạn chỉ là một cục gạch lưu trữ lớn với các tính năng hiệu suất thưởng thường xuyên.
Hệ điều hành của bạn cũng không tìm kiếm địa điểm để đặt mọi thứ. Không có "tìm kiếm". Nhiều nỗ lực đã đi vào giải quyết vấn đề này, vì nó rất quan trọng đối với hiệu năng hệ thống tập tin. Cách thức dữ liệu được tổ chức trên ổ đĩa của bạn được xác định bởi hệ thống tệp của bạn. Ví dụ: FAT32 (máy tính cũ của DOS và Windows), NTFS (Windows sau này), HFS + (Mac), ext4 (một số Linux) và nhiều thứ khác. Ngay cả khái niệm "tập tin" và "thư mục" chỉ là sản phẩm của các hệ thống tập tin điển hình - ổ cứng không biết về những con thú bí ẩn được gọi là "tập tin". Chi tiết nằm ngoài phạm vi của câu trả lời này. Nhưng về cơ bản, tất cả các hệ thống tệp phổ biến đều có cách theo dõi nơi có dung lượng trống trên ổ đĩa để tìm kiếm không gian trống trong các trường hợp thông thường (ví dụ: hệ thống tệp có sức khỏe tốt), không cần thiết. Ví dụ:
NTFS có bảng tệp chính , bao gồm các tệp đặc biệt $Bitmap
, v.v. và nhiều dữ liệu meta mô tả ổ đĩa. Về cơ bản, nó theo dõi vị trí của các khối miễn phí tiếp theo, để các tệp mới có thể được ghi trực tiếp vào các khối miễn phí mà không phải quét ổ đĩa mỗi lần.
Một ví dụ khác, ext4 có cái gọi là "phân bổ bitmap" , một cải tiến so với ext2 và ext3 về cơ bản giúp nó xác định trực tiếp các khối miễn phí ở đâu thay vì quét danh sách các khối miễn phí. Ext4 cũng hỗ trợ "phân bổ chậm", nghĩa là, việc đệm dữ liệu trong RAM của HĐH trước khi ghi ra ổ đĩa để đưa ra quyết định tốt hơn về việc đặt nó ở đâu để giảm phân mảnh.
Nhiều ví dụ khác.
hoặc với việc di chuyển mọi thứ xung quanh để tạo ra một không gian đủ dài liên tục để tiết kiệm một cái gì đó?
Không. Điều này không xảy ra, ít nhất là với bất kỳ hệ thống tập tin nào tôi biết. Tập tin chỉ bị phân mảnh.
Quá trình "di chuyển mọi thứ xung quanh để tạo ra một không gian tiếp giáp đủ dài để tiết kiệm một thứ gì đó" được gọi là phân mảnh . Điều này không xảy ra khi các tập tin được viết. Điều này xảy ra khi bạn chạy trình chống phân mảnh đĩa của bạn. Trên Windows mới hơn, ít nhất, điều này tự động xảy ra theo lịch, nhưng nó không bao giờ được kích hoạt bằng cách viết một tệp.
Có thể tránh di chuyển mọi thứ xung quanh như thế này là chìa khóa để thực hiện hệ thống và là lý do tại sao sự phân mảnh xảy ra và tại sao phân mảnh tồn tại như một bước riêng biệt.
Tôi nên để trống bao nhiêu dung lượng trống trên đĩa cứng?
Đây là một câu hỏi khó hơn để trả lời, và câu trả lời này đã biến thành một cuốn sách nhỏ.
Quy tắc của ngón tay cái:
Cá nhân tôi thường lấy một ổ đĩa lớn hơn khi tôi còn khoảng 20-25% dung lượng trống. Điều này không liên quan đến hiệu suất, chỉ là khi tôi đạt đến điểm đó, tôi hy vọng rằng tôi có thể sẽ hết dung lượng dữ liệu sớm và đã đến lúc có một ổ đĩa lớn hơn.
Quan trọng hơn việc xem không gian trống là đảm bảo chống phân mảnh theo lịch được bật khi thích hợp (không phải trên SSD), để bạn không bao giờ đến điểm mà nó trở nên đủ nghiêm trọng để ảnh hưởng đến bạn. Điều quan trọng không kém là tránh các chỉnh sửa sai và để hệ điều hành của bạn thực hiện công việc của mình, ví dụ: không vô hiệu hóa trình tải trước Windows ( ngoại trừ SSD ), v.v.
Có một điều cuối cùng đáng nói. Một trong những câu trả lời khác ở đây đã đề cập rằng chế độ bán song công của SATA ngăn chặn việc đọc và viết cùng một lúc. Mặc dù đúng, điều này rất đơn giản và hầu như không liên quan đến các vấn đề hiệu suất đang được thảo luận ở đây. Điều này có nghĩa là, đơn giản, là dữ liệu không thể được truyền theo cả hai hướng trên dây cùng một lúc. Tuy nhiên, SATA có một đặc điểm kỹ thuật khá phức tạp liên quan đến kích thước khối tối đa nhỏ (khoảng 8kB mỗi khối trên dây, tôi nghĩ vậy), đọc và ghi hàng đợi hoạt động, v.v., và không loại trừ việc ghi vào bộ đệm xảy ra trong khi đọc đang diễn ra, xen kẽ hoạt động, vv
Bất kỳ sự ngăn chặn nào xảy ra sẽ là do cạnh tranh tài nguyên vật lý, thường được giảm nhẹ bởi nhiều bộ đệm. Chế độ song công của SATA gần như không liên quan ở đây.
† "chậm lại" là một khái niệm rộng. Ở đây tôi sử dụng nó để chỉ những thứ bị ràng buộc I / O (ví dụ: nếu máy tính của bạn đang ngồi ở đó giòn giã, nội dung của ổ cứng không có tác động), hoặc bị ràng buộc bởi CPU và cạnh tranh với những thứ liên quan đến tiếp tuyến sử dụng CPU cao (ví dụ: phần mềm chống vi-rút quét hàng tấn tệp).
†† SSD đang bị ảnh hưởng bởi sự phân mảnh trong đó truy cập tuần tự tốc độ nói chung là nhanh hơn so với truy cập ngẫu nhiên, mặc dù ổ SSD không phải đối mặt với những hạn chế giống như một thiết bị cơ khí (thậm chí sau đó, thiếu sự phân mảnh không đảm bảo truy cập tuần tự, do mặc san lấp mặt bằng, vv , như James Snell ghi chú trong các bình luận). Tuy nhiên, trong hầu hết mọi kịch bản sử dụng chung, đây không phải là vấn đề. Sự khác biệt về hiệu năng do phân mảnh trên SSD thường không đáng kể đối với những thứ như tải ứng dụng, khởi động máy tính, v.v.
††† Giả sử một hệ thống tập tin lành mạnh mà không được phân mảnh các tập tin trên mục đích.