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ẽ bắt gặp điều gì đó có vẻ không hợp lý. Với suy 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 và Đáp của SuperUser hôm nay có câu trả lời cho câu hỏi khó hiểu của độc giả.
Phiên Hỏi & Đáp hôm nay đến với chúng tôi với sự hỗ trợ của SuperUser — một phần của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều hành.
Ảnh chụp màn hình được phép của cát (Flickr) .
Câu hỏi
Trình đọc SuperUser Remi.b muốn biết lý do tại sao việc làm trống không gian đĩa dường như lại tăng tốc máy tính:
Tôi đã xem rất nhiều video và 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 lại tăng tốc máy tính.
Những gì tôi không hiểu là tại sao việc dọn dẹp không gian đĩa dường như để tăng tốc máy tính. Nó có thực sự tăng tốc máy tính không? Nếu vậy, tại sao nó làm như vậy?
Nó có liên quan gì đến việc tìm kiếm không gian bộ nhớ để lưu 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 liên tục đủ dài để lưu 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 việc làm trống dung lượng đĩa lại tăng tốc máy tính?"
Nó không, ít nhất là không tự nó. Đây là một huyền thoại thực sự phổ biến. Lý do nó là một lầm tưởng phổ biến là vì việc làm đầy ổ cứng của bạn thường xảy ra cùng lúc với những thứ khác theo truyền thống có thể làm chậm máy tính của bạn (A) . Hiệu suất của SSD có xu hướng giảm khi chúng đầy, nhưng đây là một vấn đề tương đối mới, duy nhất đối với SSD và không thực sự đáng chú ý đối với người dùng bình thường. Nói chung, dung lượng đĩa trống thấp chỉ là một con cá trích đỏ.
Ví dụ, những thứ như:
1. Phân mảnh tệp. Phân mảnh tệp là một vấn đề (B) , nhưng thiếu không gian trống, mặc dù 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 gây ra nó. Một số điểm chính ở đây:
- Khả năng tệp 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 liên quan đến kích thước của khối không gian trống liền kề lớn nhất trên ổ đĩa (tức là "lỗ" của không gian trống), tức là lượng không gian trống tình cờ đặ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 ( thêm bên dưới ). Xem xét: Ổ đĩa đã đầy 95 phần trăm với tất cả dung lượng trống trong một khối liền kề duy nhất không có phần trăm khả năng phân mảnh tệp mới (C) (và khả năng phân mảnh tệp nối thêm là không phụ thuộc vào dung lượng trống). Một ổ đã đầy năm phần trăm nhưng dữ liệu trải đều trên ổ thì khả năng bị phân mảnh rất cao.
- Hãy nhớ rằng tệp bị phân mảnh 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 chống phân mảnh nhưng vẫn còn nhiều “lỗ hổng” trống trong đó. Một kịch bản chung. Mọi thứ đang chạy trơn tru. Tuy nhiên, cuối cùng, bạn sẽ đến một điểm mà không còn khối dung lượng trống lớn nào nữa. Bạn tải xuống một bộ phim rất lớn, tập tin sẽ 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ững tệp đó trước đây tốt sẽ không đột nhiên bị phân mảnh. Điều này có thể khiến phim tải lâu hơn (mặc dù tốc độ bit thông thường của phim rất thấp so với tốc độ đọc trên ổ cứng nên rất có thể không đáng chú ý) và nó có thể ảnh hưởng đến hiệu suất giới hạn I / O 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 chắc chắn là một vấn đề, nhưng thường thì các tác động được giảm thiểu bởi hệ điều hành và bộ đệm và bộ nhớ đệm ở mức phần cứng. Ghi trễ, đọc trước, các chiến lược như prefetcher 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 qua tác động đáng kể cho đến khi tình trạng phân mảnh trở nên nghiêm trọng (tôi thậm chí muốn 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. Lập chỉ mục tìm kiếm là một ví dụ khác. Giả sử rằng bạn đã bật lập chỉ mục tự động và hệ điều hành không xử lý việc này một cách linh hoạt. 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.v.), 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 khi máy tính đang chạy, cả trong I / O và sử dụng CPU . Điều này không liên quan đến dung lượng 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 tạo 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ử rằng bạn đã thiết lập phần mềm chống vi-rút để quét nền ổ đĩa của mình. Khi bạn ngày càng có 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ể ảnh hưởng đến công việc của bạn. Một lần nữa, điều này liên quan đến số lượng nội dung có thể quét mà bạn có. Nhiều nội dung hơn thường đồng nghĩa với ít dung lượng trống hơn, nhưng thiếu không gian trống không phải là nguyên nhân.
4. Phần mềm đã cài đặt. Giả sử bạn đã cài đặt nhiều phần mềm 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 xảy ra chậm do nhiều phần mềm đang được tải. Tuy nhiên, phần mềm đã cài đặt chiếm dung lượng ổ cứng. Do đó, dung lượng trống của ổ cứng giảm đồng thời khi điều này xảy ra và một lần nữa có thể dễ dàng tạo ra kết nối sai.
5. Nhiều ví dụ khác dọc theo những dòng này, khi lấy cùng nhau, xuất hiện để kết hợp 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 khiến đây là một lầm tưởng phổ biến: Mặc dù việc thiếu dung lượng trống không phải là nguyên nhân trực tiếp gây chậm máy, nhưng đôi khi 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. (nhưng không phải lúc nào cũng vậy; nằm ngoài phạm vi của câu trả lời này) lại làm tăng hiệu suất vì những lý do không liên quan đến dung lượng trống còn lại. Nhưng điều này cũng tự nhiên giải phóng dung lượng ổ cứng. Do đó, một lần nữa, một kết nối rõ ràng (nhưng sai) giữa “nhiều không gian trống hơn” và “máy tính nhanh hơn” có thể được tạo ra.
Xem xét: Nếu máy bạn chạy chậm do có nhiều phần mềm được cài đặt, v.v., hãy 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 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 thần kỳ. Cùng một phần mềm tải, các tệp giống nhau vẫn bị phân mảnh theo cách giống nhau, 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 dung lượng trống hơn.
"Nó có liên quan gì đến việc tìm kiếm 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 cần lưu ý ở đây:
1. Ổ cứng của bạn không tìm kiếm xung quanh để tìm nơi để đặt các thứ. Ổ cứng của bạn thật ngu ngốc. Nó không là gì cả. Nó là một khối lớn lưu trữ có địa chỉ đặt mọi thứ một cách mù quáng vào nơi hệ điều hành của bạn yêu cầu và đọc bất cứ thứ gì được yêu cầu về nó. Các ổ đĩa hiện đại có cơ chế lưu và đệm phức tạp được thiết kế xung quanh việc dự đoán những gì hệ điều hành sẽ yêu cầu dựa trên kinh nghiệm mà chúng tôi đã thu được theo thời gian (một số ổ đĩa thậm chí còn biết về hệ thống tệp có trên chúng), nhưng về cơ bản, hãy nghĩ về lái xe chỉ như một khối lưu trữ lớn với các tính năng hiệu suất thưởng khô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. Đã có nhiều nỗ lực giải quyết vấn đề này vì nó rất quan trọng đối với hiệu suất của hệ thống tệp. Cách tổ chức dữ liệu thực sự trên ổ đĩa của bạn được xác định bởi hệ thống tập tin . Ví dụ: FAT32 (máy tính DOS và Windows cũ), NTFS (phiên bản Windows mới hơn), HFS + (Mac), ext4 (một số hệ thống Linux) và nhiều hệ thống khác. Ngay cả khái niệm “tệp” và “thư mục” chỉ đơn thuần là sản phẩm của các hệ thống tệp đ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 thông thường đều có cách theo dõi vị trí của dung lượng trống trên ổ đĩa để việc tìm kiếm dung lượng trống, trong các trường hợp bình thường (tức là hệ thống tệp trong tình trạng tốt) là không cần thiết. Ví dụ:
- NTFS có một hộp tập tin tổng thể , 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 cần phải quét ổ đĩa mỗi lần.
- Một vi dụ khac: Ext4 có cái được gọi là trình 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 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 trễ tức là, hệ điều hành đệm dữ liệu trong RAM trước khi ghi ra ổ đĩa để đưa ra quyết định tốt hơn về vị trí đặt nó để giảm phân mảnh.
- Nhiều ví dụ khác.
"Hay 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 một thứ gì đó?"
Không. Điều này không xảy ra, ít nhất là không xảy ra với bất kỳ hệ thống tệp nào mà 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 một 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 đượ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 mình. Trên các phiên bản Windows mới hơn, ít nhất, điều này xảy ra tự động theo lịch trình, nhưng nó không bao giờ được kích hoạt bằng cách ghi tệp.
Có thể tránh di chuyển những thứ xung quanh như thế này là chìa khóa cho hiệu suất hệ thống tệp và là lý do tại sao phân mảnh xảy ra và tại sao chống 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 đã được chuyể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 ổ:
- Quan trọng nhất, hãy để lại đủ không gian trống cho bạn sử dụng máy tính của mình một cách hiệu quả . Nếu bạn sắp hết dung lượng để làm việc, bạn sẽ muốn có 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ĩ công cụ dành cho Windows yêu cầu 15%, trong trường hợp xấu nhất) để hoạt động. Chúng sử dụng dung lượng 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ệ điều hành khác. Ví dụ: nếu máy của bạn không có nhiều RAM vật lý và bạn đã bật bộ nhớ ảo với tệp trang có kích thước động, bạn sẽ muốn để lại đủ 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 được đặt ở chế độ ngủ đông, bạn sẽ cần đủ dung lượng trống cho tệp trạng thái ngủ đông. Những thứ như thế.
2. Cụ thể về SSD:
- Để 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 cần đi sâu quá nhiều chi tiết, chúng sử dụng để truyền dữ liệu xung quanh ổ để tránh liên tục ghi vào cùng một nơi (làm hao mòn chúng) . Khái niệm để lại 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 cấp phép quá mức bắt buộc đã tồn tại . Tức là, các ổ đĩa thường có nhiều hơn vài chục GB so với số lượng mà chúng báo cáo với HĐH. Các ổ đĩa cấp thấp hơn thường yêu cầu bạn rời khỏi thủ công không phân vùng không gian, nhưng đối với các ổ đĩa có OP bắt buộc, bạn không cần để lại bất kỳ không gian trống nào . Một điều quan trọng cần lưu ý ở đây là không gian được cấp phép quá mức thường chỉ được lấy từ không gian chưa được phân vùng . Vì vậy, nếu phân vùng của bạn chiếm toàn bộ ổ đĩa và bạn để lại một số dung lượng trống trên đó, điều đó 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 phải 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, thu gom rác và những thứ tương tự cũng có tác dụng, nhưng những tác dụng đó 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 phần trăm dung lượng trống. Điều này không liên quan đến hiệu suất, chỉ là khi tôi đến thời điểm đó, tôi hy vọng rằng tôi có thể sẽ sắp hết dung lượng cho dữ liệu và đã đến lúc để có được một ổ đĩa lớn hơn.
Quan trọng hơn việc xem dung lượng trống là đảm bảo tính năng chống phân mảnh theo lịch được bật ở những nơi thích hợp (không phải trên SSD) để bạn không bao giờ đến mức đủ 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 việc đọc và ghi cùng một lúc. Mặc dù đúng, điều này được đơn giản hóa quá mức 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 chuyển theo cả hai hướng trên dây đồng thời. Tuy nhiên, SATA có đặ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ỏ (tôi nghĩ là khoảng 8kB mỗi khối trên dây), hàng đợi thao tác đọc và ghi, v.v. và không loại trừ việc ghi vào bộ đệm xảy ra khi đang đọc, hoạt động xen kẽ, v.v.
Bất kỳ sự 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ộ nhớ cache. Chế độ song công của SATA gần như hoàn toàn không liên quan ở đây.
(A) "Làm 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 (tức là nếu máy tính của bạn đang ngồi ở đó những con số khủng khiếp, nội dung trong ổ 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 tiếp tuyến có giá trị cao 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 so với 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ư một thiết bị cơ học (ngay cả khi đó, việc thiếu phân mảnh không đảm bảo truy cập tuần tự do san lấp mặt bằng, v.v.). Tuy nhiên, trong hầu hết mọi tình huống sử dụng chung, đây không phải là vấn đề. Sự khác biệt về hiệu suất do phân mảnh trên SSD thường không đáng kể đối với những việc 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 ổn định không cố ý phân mảnh tệp.
Hãy nhớ đọc hết 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ó điều 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 toàn bộ chuỗi thảo luận tại đây .