Ubuntu không TRIM SSD theo mặc định Tại sao không và tự kích hoạt nó
Ubuntu muốn bật TRIM cho SSD theo mặc định trong Ubuntu 14.04. Nói cách khác, Ubuntu chưa sử dụng TRIM, do đó SSD của bạn đang chậm dần theo thời gian. Nhưng tại sao Ubuntu không sử dụng TRIM?
Tin tức này có thể sẽ gây ngạc nhiên cho nhiều người, những người cho rằng Ubuntu và các bản phân phối Linux khác đã sử dụng TRIM. TRIM ngăn SSD chậm lại theo thời gian và là một phần cần thiết trong bảo trì SSD.
Tại sao TRIM lại quan trọng
Chúng tôi đã đề cập tại sao TRIM lại quan trọng trước đây. Khi bạn xóa một tệp trên ổ cứng cũ, từ tính, máy tính chỉ cần đánh dấu tệp đó là đã xóa. Dữ liệu của tệp dính xung quanh trên ổ cứng - đó là lý do tại sao các tệp bị xóa có thể được phục hồi. Cuối cùng, máy tính sẽ ghi đè lên các tệp đã bị xóa khi ghi đè lên các cung của chúng bằng dữ liệu mới.
Ổ đĩa trạng thái rắn (SSD) hoạt động khác nhau. Bất cứ khi nào bạn ghi một tệp vào ổ SSD, trước tiên máy tính phải xóa bất kỳ dữ liệu nào trong các lĩnh vực mà nó ghi dữ liệu. Nó không thể chỉ ghi đè lên các lĩnh vực trong một hoạt động - trước tiên phải xóa chúng, sau đó ghi vào các khu vực trống.
Điều này có nghĩa là một ổ SSD sẽ chậm lại theo thời gian. Viết thư cho các lĩnh vực của SSD sẽ nhanh chóng ngay lần đầu tiên. Sau khi bạn xóa một số tệp và cố gắng ghi lại nó, sẽ mất nhiều thời gian hơn. Đây là một phần lớn lý do khiến Nexus 7 gốc của Google bị chậm đi rất nhiều theo thời gian. Google đã khắc phục điều này bằng cách triển khai TRIM trong Android 4.3. (Android cũng sử dụng nhân Linux.)
Khi bật TRIM, hệ điều hành sẽ báo cho SSD mỗi lần xóa tệp. Ổ đĩa sau đó có thể xóa các thành phần chứa nội dung của tệp, vì vậy việc ghi vào các lĩnh vực sẽ nhanh chóng trong tương lai.
Nói cách khác, nếu bạn không sử dụng TRIM, SSD của bạn sẽ chậm dần theo thời gian. Đó là lý do tại sao các hệ điều hành hiện đại, bao gồm Windows 7+, Mac OS X 10.6.8+ và Android 4.3+ sử dụng TRIM. TRIM đã được triển khai trong Linux vào tháng 12 năm 2008, nhưng Ubuntu không sử dụng nó theo mặc định.
Tại sao Ubuntu không TRIM theo mặc định?
Lý do thực sự khiến Ubuntu không TRIM SSD theo mặc định là do việc triển khai TRIM của nhân Linux chậm và dẫn đến hiệu suất kém khi sử dụng bình thường.
Trên Windows 7 và 8, Windows sẽ gửi lệnh TRIM mỗi lần nó xóa một tệp, yêu cầu ổ đĩa xóa ngay các bit của tệp. Linux hỗ trợ điều này khi các hệ thống tập tin được gắn kết với tùy chọn loại bỏ từ chối. Tuy nhiên, Ubuntu - và các bản phân phối khác - không làm điều này theo mặc định vì lý do hiệu suất.
Wiki của OpenSUSE chứa một số thông tin chi tiết từ một nhà phát triển quen thuộc với nhân Linux hơn chúng ta. Đó là một chút ngày, nhưng có khả năng vẫn đúng khi nói về hiệu suất:
Phần mềm triển khai kernel của trim thời gian thực trong 11.2, 11.3 và 11.4 không được tối ưu hóa. Các thông số kỹ thuật. các yêu cầu cắt xén hỗ trợ danh sách vectơ phạm vi cắt xén, nhưng đối với kernel 3.0 trim chỉ được gọi bởi kernel với phạm vi loại bỏ / cắt duy nhất và với SSD giữa năm 2011 hiện tại, điều này đã được chứng minh là làm giảm hiệu suất thay vì tăng hiệu suất. Có một vài lý do để sử dụng hạt nhân hỗ trợ loại bỏ thời gian thực với hạt nhân trước 3,1. Người ta không biết khi nào chức năng loại bỏ hạt nhân sẽ được tối ưu hóa để hoạt động có lợi với các ổ SSD thế hệ hiện tại. [[Nguồn]
Nói cách khác, nhân Linux xử lý các lệnh TRIM thời gian thực như vậy theo cách chậm, không tối ưu hóa. Việc kích hoạt TRIM tương tự như cách Windows thực hiện - nghĩa là, bằng cách sử dụng tùy chọn của Disc Discard - kết quả là hệ thống thực sự trở nên chậm hơn so với khi TRIM không được sử dụng. Ubuntu và các bản phân phối Linux khác không cho phép loại bỏ các loại bỏ mặc định cho các hệ thống tệp của bạn, và bạn không nên.
Có một cách khác
Bởi vì thời gian thực của kernel Linux loại bỏ hoạt động TRIM của kernel không hoạt động tốt, hầu hết các bản phân phối Linux - bao gồm Ubuntu - không sử dụng TRIM tự động. Android cũng không sử dụng TRIM cho đến Android 4.3.
Nhưng có một cách khác để sử dụng TRIM. Thay vì chỉ đơn giản là ban hành lệnh TRIM mỗi khi tệp bị xóa, tính năng FITRIM có thể được sử dụng. Điều này xảy ra thông qua lệnh fstrim. Về cơ bản, lệnh fstrim phân tích hệ thống tệp và thông báo cho ổ đĩa những khối không còn cần thiết nữa, vì vậy ổ đĩa có thể loại bỏ chúng. Điều này biến TRIM từ một hoạt động thời gian thực thành một nhiệm vụ theo lịch trình. Nói cách khác, fstrim có thể thực hiện TRIM như một công việc định kỳ. Không có lý do gì để không làm điều này. Nó sẽ không làm chậm bất cứ điều gì; đó chỉ là một nhiệm vụ dọn dẹp nhà cửa khác mà hệ thống phải thực hiện theo lịch trình.
Trên thực tế, đây là cách tiếp cận Google đã thực hiện với Android 4.3. Android chỉ thỉnh thoảng chạy một tác vụ fstrim để TRIM hệ thống tệp, khắc phục sự cố làm chậm tất cả những chiếc Nexus 7 gốc đó.
Ubuntu cũng đang xem xét kích hoạt TRIM tự động bằng cách hệ thống thường xuyên chạy fstrim. Hy vọng đây sẽ là một phần của Ubuntu 14.04 vì vậy người dùng Ubuntu sẽ không bị buộc phải đối phó với sự suy giảm hiệu năng của SSD hoặc tự mình chạy fstrim.
Cách bật TRIM
Chúng tôi không khuyên bạn nên gắn các hệ thống tệp của mình với hoạt động loại bỏ từ chối, vì điều này có thể sẽ dẫn đến hiệu suất chậm hơn trong sử dụng bình thường. Tuy nhiên, bạn có thể tự sử dụng TRIM bằng cách thỉnh thoảng chạy lệnh fstrim hoặc tạo cronjob của riêng bạn chạy fstrim theo lịch trình.
Để TRIM SSD của bạn trên Ubuntu, chỉ cần mở một thiết bị đầu cuối và chạy lệnh sau:
sudo fstrim -v /
Thỉnh thoảng bạn có thể chạy lệnh trên để ngăn chặn sự suy giảm hiệu suất trên SSD. Tần suất bạn cần chạy nó tùy thuộc vào tần suất xóa các tệp khỏi ổ SSD của bạn. Bạn sẽ thấy lỗi nếu bạn cố chạy lệnh với ổ đĩa không hỗ trợ TRIM.
Nếu bạn muốn chạy TRIM thường xuyên, bạn chỉ cần tạo một cronjob chạy lệnh fstrim cho bạn. Dưới đây là cách thực hiện công việc định kỳ barebones sẽ tự động thực hiện việc này.
Đầu tiên, chạy lệnh sau để mở trình soạn thảo văn bản nano với quyền root:
sudo nano /etc/cron.daily/fstrim
Nhập mã sau vào tệp:
#! / thùng / sh
fstrim /
Lưu tệp bằng cách nhấn Ctrl + O và nhấn Enter để xác nhận. Nhấn Ctrl + X để đóng nano sau khi lưu tệp.
Cuối cùng, chạy lệnh sau để thực thi tập lệnh:
sudo chmod + x /etc/cron.daily/fstrim
Ubuntu bây giờ sẽ chạy fstrim theo lịch trình, giống như các nhiệm vụ bảo trì hệ thống khác.
Lưu ý rằng TRIM chỉ được hỗ trợ trên các hệ thống tệp hiện đại, vì vậy bạn sẽ cần một cái gì đó như ext4 chứ không phải ext3 hoặc ext2. Nếu bạn không biết hệ thống tệp nào mình đang sử dụng, đừng lo lắng - ext4 được chọn theo mặc định.
Phần lớn lời khuyên này cũng áp dụng cho các bản phân phối Linux khác. Mặc dù Linux đã triển khai hỗ trợ TRIM trong kernel từ lâu, nhưng hỗ trợ TRIM của nó dường như chưa bao giờ được bật theo mặc định cho người dùng thông thường trong các bản phân phối Linux.
Tín dụng hình ảnh: Mace Ojala trên Flickr (đã cắt)