Ubuntu không TRIM SSD theo mặc định: Tại sao không và cách tự kích hoạt nó

Mục lục:

Ubuntu không TRIM SSD theo mặc định: Tại sao không và cách tự kích hoạt nó
Ubuntu không TRIM SSD theo mặc định: Tại sao không và cách tự kích hoạt nó

Video: Ubuntu không TRIM SSD theo mặc định: Tại sao không và cách tự kích hoạt nó

Video: Ubuntu không TRIM SSD theo mặc định: Tại sao không và cách tự kích hoạt nó
Video: Hướng dẫn khắc phục lỗi laptop bị xoay màn hình, cách xoay màn hình - YouTube 2024, Tháng Ba
Anonim
Ubuntu muốn kích hoạ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, vì vậy SSD của bạn đang chậm lại theo thời gian. Nhưng tại sao Ubuntu không sử dụng TRIM?
Ubuntu muốn kích hoạ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, vì vậy SSD của bạn đang chậm lại 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, cho rằng Ubuntu và các bản phân phối Linux khác đã sử dụng TRIM. TRIM ngăn không cho SSD bị chậm lại theo thời gian và là một phần cần thiết của việc bảo trì SSD.

Tại sao TRIM lại quan trọng

Chúng tôi đã đề cập đến lý do tại sao TRIM lại quan trọng. Khi bạn xóa một tệp trên ổ đĩa cứng cũ, từ tính, máy tính chỉ đánh dấu tệp đó là đã bị xóa. Dữ liệu của tệp được lưu trữ trên ổ đĩa cứng - đó là lý do tại sao các tệp đã xóa có thể được khôi phục. Máy tính cuối cùng sẽ ghi đè lên các tập tin đã xóa khi nó ghi đè lên các lĩnh vực của họ với dữ liệu mới.

Ổ đĩa thể rắn (SSD) hoạt động khác nhau. Bất cứ khi nào bạn viết một tệp vào ổ SSD, máy tính đầu tiên phải xóa mọi dữ liệu trong các ngành mà nó ghi dữ liệu vào. Nó không thể chỉ "ghi đè lên" các lĩnh vực trong một hoạt động - nó phải đầu tiên rõ ràng chúng, sau đó viết cho các lĩnh vực sản phẩm nào.

Điều này có nghĩa là một SSD sẽ chậm lại theo thời gian. Viết cho các lĩnh vực của SSD sẽ nhanh chóng lần đầu tiên. Sau khi bạn xóa một số tệp và cố gắng viết lại nó, 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 nguyên bản của Google bị chậm lại rất nhiều theo thời gian. Google đã sửa lỗi này bằng cách triển khai TRIM trong Android 4.3. (Android cũng sử dụng hạt nhân Linux.)

Với TRIM được kích hoạt, hệ điều hành cho SSD biết mỗi khi nó xóa một tập tin. Sau đó, ổ đĩa 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 lại 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 trên 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ự Ubuntu không mặc định là TRIM SSD là do việc triển khai TRIM của hạt nhân Linux chậm và dẫn đến hiệu năng kém trong sử dụng bình thường.

Trên Windows 7 và 8, Windows sẽ gửi lệnh TRIM mỗi khi 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 được gắn kết với tùy chọn “hủy”. 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ó thể vẫn đúng khi nói đến hiệu suất:

“The kernel implementation of realtime trim in 11.2, 11.3, and 11.4 is not optimized. The spec. calls for trim supporting a vectorized list of trim ranges, but as of kernel 3.0 trim is only invoked by the kernel with a single discard / trim range and with current mid 2011 SSDs this has proven to cause a performance degradation instead of a performance increase. There are few reasons to use the kernels realtime discard support with pre-3.1 kernels. It is not known when the kernels discard functionality will be optimized to work beneficially with current generation SSDs.” [Source]

Nói cách khác, hạt nhân Linux xử lý các lệnh TRIM thời gian thực theo một cách chậm, không được tối ưu hóa. Kích hoạt TRIM tương tự như cách Windows - tức là, bằng cách sử dụng tùy chọn “hủy” - kết quả trong hệ thống thực sự trở nên chậm hơn nếu 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ỏ" theo mặc định cho hệ thống tệp của bạn và bạn cũng không nên.

Image
Image

Có một cách khác

Bởi vì hoạt động TRIM "hủy bỏ" thời gian thực của hạt nhân Linux không hoạt động tốt, hầu hết các bản phân phối Linux - bao gồm cả 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ỉ phát hành lệnh TRIM mỗi khi một 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 biến tần nào không còn cần thiết nữa, vì vậy biến tần 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ì; nó chỉ là một nhiệm vụ dọn dẹp khác mà hệ thống phải thực hiện theo lịch trình.

Trên thực tế, đây là phương pháp mà 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ả các Nexus 7 gốc.

Ubuntu cũng đang tìm cách kích hoạt TRIM tự động bằng cách chạy hệ thống thường xuyên. Điều này hy vọng 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ự xuống cấp hiệu suất SSD hoặc chạy fstrim một mình.

Cách kích hoạt TRIM

Chúng tôi khuyên bạn không nên gắn các hệ thống tệp của mình bằng thao tác “hủy” vì điều này có thể dẫn đến hiệu suất chậm hơn trong việc sử dụng thông thường. Tuy nhiên, bạn có thể tự mình sử dụng TRIM bằng cách chạy lệnh fstrim hoặc tạo cronjob của riêng bạn chạy fstrim theo lịch biểu.

Để 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 /

Bạn có thể chạy lệnh trên thường xuyên để ngăn chặn sự xuống cấp hiệu suất trên SSD. Mức độ thường xuyên bạn cần chạy phụ thuộc vào tần suất tệp bị xóa khỏi SSD của bạn. Bạn sẽ thấy lỗi nếu bạn cố gắng chạy lệnh bằng một ổ đĩa không hỗ trợ TRIM.
Bạn có thể chạy lệnh trên thường xuyên để ngăn chặn sự xuống cấp hiệu suất trên SSD. Mức độ thường xuyên bạn cần chạy phụ thuộc vào tần suất tệp bị xóa khỏi SSD của bạn. Bạn sẽ thấy lỗi nếu bạn cố gắng chạy lệnh bằng một ổ đĩa không hỗ trợ TRIM.

Nếu bạn muốn chạy TRIM thường xuyên, bạn có thể chỉ cần tạo một cronjob chạy lệnh fstrim cho bạn.Dưới đây là cách tạo một công việc cron kiểu 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:

#!/bin/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.
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, hãy chạy lệnh sau để làm cho tập lệnh thực thi:

sudo chmod +x /etc/cron.daily/fstrim

Ubuntu bây giờ sẽ chạy fstrim trên một lịch trình, giống như nó thực hiện các nhiệm vụ bảo trì hệ thống khác.
Ubuntu bây giờ sẽ chạy fstrim trên một lịch trình, giống như nó thực hiện 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 bạn đang sử dụng hệ thống tệp nào, đừng lo - 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. Trong khi Linux đã thực hiện hỗ trợ TRIM trong hạt nhân từ lâu, hỗ trợ TRIM của nó dường như chưa bao giờ được kích hoạt mặc định cho người dùng điển hình trong bản phân phối Linux.

Đề xuất: