Tại sao làm trống không gian đĩa tăng tốc máy tính?
Khi tìm hiểu thêm về máy tính và cách chúng hoạt động, đôi khi bạn sẽ chạy qua một cái gì đó dường như không có ý nghĩa. Với ý nghĩ đó, việc làm trống không gian đĩa có thực sự tăng tốc máy tính không? Bài đăng Hỏi & Đáp của SuperUser hôm nay có câu trả lời cho câu hỏi của người đọc khó hiểu.
Phiên hỏi và trả lời hôm nay đến với chúng tôi nhờ sự hỗ trợ của SuperUser - một phân ngành của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều khiển.
Ảnh chụp màn hình lịch sự của nchenga (Flickr).
Câu hỏi
Trình đọc SuperUser Remi.b muốn biết tại sao làm trống không gian đĩa dường như tăng tốc máy tính:
Tôi đã xem rất nhiều video và bây giờ hiểu cách máy tính hoạt động tốt hơn một chút. Tôi hiểu RAM là gì, về bộ nhớ dễ bay hơi và không bay hơi và quá trình hoán đổi. Tôi cũng hiểu tại sao tăng RAM tăng tốc máy tính.
Điều tôi không hiểu là tại sao việc dọn sạch không gian đĩa dường như tăng tốc máy tính. Liệu nó thực sự tăng tốc máy tính? Nếu vậy, tại sao nó làm như vậy?
Liệu nó có liên quan gì đến việc tìm kiếm không gian bộ nhớ để lưu lại mọi thứ 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 để lưu lại thứ gì đó không? Tôi nên để trống bao nhiêu dung lượng trống trên đĩa cứng?
Tại sao làm trống không gian đĩa dường như tăng tốc máy tính?
Câu trả lời
Người đóng góp cho SuperUser Jason C có câu trả lời cho chúng tôi:
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à vì việc lấp đầy ổ cứng của bạn thường xảy ra cùng lúc với 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 (A). Hiệu suất SSD không có xu hướng giảm khi chúng lấp đầ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ư:
1. Phân mảnh tập tin. Phân mảnh tập tin là một vấn đề (B), nhưng thiếu không gian trống, trong khi chắc chắn là một trong nhiều yếu tố góp phần, không phải là nguyên nhân duy nhất của nó. Một số điểm chính ở đây:
- Cơ hội của một tập tin bị phân mảnh là không phải 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ỗ Lỗ không gian trống), với dung lượng không gian trống xảy ra để đặt mộ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 chứa đầy 95 phần trăm với tất cả không gian trống trong một khối liền kề duy nhất có 0% cơ hội phân đoạn một tệp mới (C) (và cơ hội phân đoạn một tệp được nối thêm là độc lập với không gian trống). Một ổ đĩa đầy năm phần trăm 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 tin chỉ ảnh hưởng đến hiệu suất khi các tệp bị phân mảnh đang được truy cập. Xem xét: Bạn có một ổ đĩa đẹp, được phân mảnh mà vẫn có rất nhiều lỗ trố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 sẽ không bị phân mảnh. Điều này có thể khiến phim mấ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ởi 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. Bạn thường không thực ra trải nghiệm 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í sẽ 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, bạn có thể sẽ không bao giờ nhận thấy).
2. 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 bạn (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, 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.
3. Phần mềm chống vi-rút (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.
4. Đã cài đặt phần mềm. Giả sử bạn đã cài đặt rất nhiều phần mềm 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.
5. Nhiều ví dụ khác dọc theo các dòng này, khi được thực hiện cùng nhau, xuất hiện liên kết chặt chẽ 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 luôn luôn; câu trả lời này) tăng hiệu suất một lần nữa vì những 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ột máy tính nhanh hơn có thể được tạo ra.
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., hãy sao chép ổ cứng của bạn (chính xác) vào 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. 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.
Có phải nó có liên quan gì đến việc tìm kiếm không gian bộ nhớ để lưu lại mọi thứ không?
Không nó không. Có hai điều rất quan trọng đáng chú ý ở đây:
1. Ổ 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. Nó không là gì cả Đó là một khối lớn của bộ lưu trữ địa chỉ đặt một cách mù quáng những thứ mà HĐH của bạn bảo nó và đọc bất cứ thứ gì được yêu cầu về nó. 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 kinh nghiệm chúng ta có được theo 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ề bạn lái xe như 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.
2. 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 dữ liệu được tổ chức thực sự 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 (DOS cũ và PC Windows), NTFS (phiên bản mới hơn của Windows), HFS + (Mac), ext4 (một số hệ thống Linux) và nhiều hệ thống khác. Ngay cả khái niệm về một tập tin và một thư mục của Google, đó 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 gì về những con thú bí ẩn được gọi là các 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 (tức là 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, vv, và rất 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 được gọi là bộ cấp phát 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 vị trí của các khối miễn phí 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à, hệ điều hành đệm dữ liệu trong RAM trước khi ghi dữ liệu vào ổ đĩa để đưa ra quyết định tốt hơn về nơi đặt dữ liệu để giảm phân mảnh.
- Nhiều ví dụ khác.
Càng hay với việc di chuyển mọi thứ xung quanh để tạo ra một không gian đủ dài để lưu lại thứ gì đó?
Không. Điều này không xảy ra, ít nhất là không với bất kỳ hệ thống tập tin nào tôi biết. Các 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 để lưu lại thứ gì đó được gọi là chống 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 các phiên bản mới hơn của Windows, í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 tập tin và là lý do tại sao 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ó trả lời hơn (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:
1. Đối với tất cả các loại ổ đĩa:
- Quan trọng nhất, hãy để đủ không gian trống cho bạn sử dụng máy tính hiệu quả. Nếu bạn sắp hết dung lượng để làm việc, bạn sẽ muốn một ổ đĩa lớn hơn.
- Nhiều công cụ chống phân mảnh đĩa yêu cầu dung lượng trống tối thiểu (tôi nghĩ rằng công cụ có Windows yêu cầu 15%, trường hợp xấu nhất) để hoạt động. Chúng sử dụng không gian trống này để tạm thời giữ các tệp bị phân mảnh khi những thứ khác được sắp xếp lại.
- Để lại không gian cho các chức năng HĐH khác. Ví dụ: nếu máy của bạn không có nhiều RAM vật lý và bạn có bộ nhớ ảo được kích hoạt với tệp trang có kích thước động, bạn sẽ muốn chừa đủ dung lượng cho kích thước tối đa của tệp trang. Hoặc nếu bạn có một máy tính xách tay mà bạn đặt ở chế độ ngủ đông, bạn sẽ cần đủ không gian trống cho tệp trạng thái ngủ đông. Những thứ tương tự.
2. SSD cụ thể:
- Để có độ tin cậy tối ưu (và ở mức độ thấp hơn, hiệu suất), SSD yêu cầu một số không gian trống, mà không đi sâu vào chi tiết, chúng sử dụng để truyền bá dữ liệu xung quanh ổ đĩa để tránh liên tục ghi vào cùng một vị trí (làm hao mòn chúng) . Khái niệm về không gian trống này được gọi là cung cấp quá mức. Nó quan trọng, nhưng trong nhiều ổ SSD, không gian được cung cấp quá mức bắt buộc đã tồn tại. Đó là, các ổ đĩa thường có nhiều hơn vài chục GB so với báo cáo cho HĐH. Ổ đĩa cấp thấp hơn thường yêu cầu bạn rời khỏi thủ công không liên kết không gian, nhưng đối với các ổ đĩa có OP bắt buộc, bạn không cần phải chừa chỗ trống. Một điều quan trọng cần lưu ý ở đây là không gian được cung cấp quá mức thường chỉ được lấy từ không gian không liên kết. Vì vậy, nếu phân vùng của bạn chiếm toàn bộ ổ đĩa của bạn và bạn để lại một số dung lượng trống trên đó, thì không luôn luôn đếm. Nhiều lần, việc cung cấp quá mức thủ công yêu cầu bạn thu nhỏ phân vùng của mình nhỏ hơn kích thước của ổ đĩa. Kiểm tra hướng dẫn sử dụng SSD của bạn để biết chi tiết. TRIM, bộ sưu tập rác và những thứ đó cũng có tác dụng, nhưng những thứ đó nằm ngoài phạm vi của câu trả lời này.
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 ở nơi 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.
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 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 đang đọ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 thiểu bởi nhiều bộ đệm. Chế độ song công của SATA gần như không liên quan ở đây.
(A) Giảm tốc độ chậm là một thuật ngữ rộng. Ở đây tôi sử dụng nó để chỉ những thứ bị ràng buộc I / O (nghĩa là nếu máy tính của bạn đang ngồi ở đó, số lượng lớn, 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 (tức là phần mềm chống vi-rút quét hàng tấn tệp).
(B) SSD bị ảnh hưởng bởi sự phân mảnh trong đó tốc độ truy cập tuần tự thường nhanh hơn truy cập ngẫu nhiên, mặc dù SSD không gặp phải những hạn chế giống như thiết bị cơ học (ngay cả khi đó, việc không phân mảnh không đảm bảo truy cập tuần tự do cân bằng hao mòn, v.v.). 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 sự 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..
(C) Giả sử một hệ thống tệp lành mạnh không phải là phân mảnh các mục đích.
Đảm bảo đọc qua phần còn lại của cuộc thảo luận sôi nổi tại SuperUser qua liên kết bên dưới!
Có một cái gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.