Câu trả lời ngắn
Chọn ext4 và gắn kết nó với discard
tùy chọn hỗ trợ TRIM hoặc sử dụng FITRIM (xem bên dưới). Cũng sử dụng noatime
tùy chọn nếu bạn sợ "hao mòn SSD".
Không thay đổi bộ lập lịch I / O (CFQ) mặc định của bạn trên các máy chủ đa ứng dụng , vì nó cung cấp sự công bằng giữa các quy trình và có hỗ trợ SSD tự động. Tuy nhiên, sử dụng Hạn chót trên máy tính để bàn để có được phản hồi tốt hơn khi tải.
Để dễ dàng đảm bảo căn chỉnh dữ liệu phù hợp, khu vực bắt đầu của mỗi phân vùng phải là bội số của 2048 (= 1 MiB). Bạn có thể sử dụng fdisk -cu /dev/sdX
để tạo ra chúng. Trên các bản phân phối gần đây, nó sẽ tự động chăm sóc điều này cho bạn.
Hãy suy nghĩ kỹ trước khi sử dụng trao đổi trên SSD. Nó có thể sẽ nhanh hơn nhiều so với trao đổi trên ổ cứng, nhưng nó cũng sẽ làm hao mòn đĩa nhanh hơn (có thể không liên quan, xem bên dưới).
Câu trả lời dài
Ext4 là hệ thống tập tin Linux phổ biến nhất (được duy trì tốt). Nó cung cấp hiệu năng tốt với SSD và hỗ trợ tính năng TRIM (và FITRIM) để duy trì hiệu suất SSD tốt theo thời gian (điều này xóa các khối bộ nhớ không sử dụng để truy cập ghi nhanh hơn sau này). NILFS được thiết kế đặc biệt cho các ổ nhớ flash, nhưng không thực sự hoạt động tốt hơn ext4 trên điểm chuẩn. Btrfs vẫn được coi là thử nghiệm (và không thực sự thực hiện tốt một trong hai ).
Các TRIM tính năng xóa các khối SSD không được sử dụng nữa bởi hệ thống tập tin. Điều này sẽ tối ưu hóa hiệu suất ghi dài hạn và được khuyến nghị trên SSD do thiết kế của chúng. Nó có nghĩa là hệ thống tập tin phải có khả năng báo cho ổ đĩa biết về các khối đó. Các discard
tùy chọn gắn kết của ext4 sẽ phát hành như TRIM lệnh khi khối hệ thống tập tin được giải phóng. Đây là loại bỏ trực tuyến .
Tuy nhiên, hành vi này ngụ ý một chút hiệu suất trên đầu. Kể từ Linux 2.6.37, bạn có thể tránh sử dụng discard
và chọn thực hiện loại bỏ hàng loạt thỉnh thoảng bằng FITRIM (ví dụ: từ crontab). Các fstrim
tiện ích thực hiện điều này (trực tuyến), cũng như các -E discard
tùy chọn fsck.ext4
. Tuy nhiên, bạn sẽ cần phiên bản "gần đây" của các công cụ này.
Bạn có thể muốn hạn chế ghi trên ổ đĩa của mình vì SSD có thời gian giới hạn trong vấn đề này. Tuy nhiên , đừng quá lo lắng , SSD 128 GB tồi tệ nhất hiện nay có thể hỗ trợ ít nhất 20 GB dữ liệu bằng văn bản mỗi ngày trong hơn 5 năm (1000 chu kỳ ghi trên mỗi tế bào). Những cái tốt hơn (và cả những cái lớn hơn) có thể tồn tại lâu hơn nhiều: rất có thể bạn sẽ thay thế nó trước đó.
Nếu bạn muốn sử dụng trao đổi trên SSD, kernel sẽ nhận thấy một đĩa không quay và sẽ ngẫu nhiên sử dụng trao đổi (mức độ hao mòn cấp độ kernel): sau đó bạn sẽ thấy một SS
(Trạng thái rắn) trong thông báo kernel khi bật hoán đổi:
Thêm trao đổi 2097148k trên / dev / sda1. Ưu tiên: -1 mức độ: 1 trên: 2097148k SS
Ngoài ra, tôi đồng ý với hầu hết câu trả lời của bí danh (ngay cả khi hầu hết câu trả lời đã được - sao chép? - được sao chép từ trang web này ), nhưng tôi phải không đồng ý một phần về phần lập lịch . Theo mặc định, bộ lập lịch thời hạn được tối ưu hóa cho các đĩa quay vì nó thực hiện thuật toán thang máy . Vì vậy, hãy làm rõ phần này.
Câu trả lời dài về lịch trình
Bắt đầu từ kernel 2.6,29, các ổ SSD được tự động phát hiện và bạn có thể xác minh điều này bằng:
cat /sys/block/sda/queue/rotational
Bạn nên lấy 1
đĩa cứng và 0
ổ SSD.
Bây giờ, bộ lập lịch CFQ có thể điều chỉnh hành vi của nó dựa trên thông tin này. Kể từ linux 3.1, cfq-iosched.txt
tệp tài liệu kernel nói :
CFQ có một số tối ưu hóa cho SSD và nếu nó phát hiện phương tiện không quay có thể hỗ trợ độ sâu hàng đợi cao hơn (nhiều yêu cầu trong chuyến bay cùng một lúc), [...].
Ngoài ra, bộ lập lịch Hạn chót cố gắng hạn chế chuyển động đầu không có thứ tự trên các đĩa quay, dựa trên số khu vực. Trích dẫn tài liệu kernel deadline-iosched.txt
, fifo_batch
mô tả tùy chọn :
Các yêu cầu được nhóm thành `` lô '' theo một hướng dữ liệu cụ thể (đọc hoặc ghi) được phục vụ theo thứ tự tăng ngành.
Tuy nhiên, điều chỉnh tham số này thành 1 khi sử dụng SSD có thể thú vị:
Tham số này điều chỉnh sự cân bằng giữa độ trễ theo yêu cầu và thông lượng tổng hợp. Khi độ trễ thấp là mối quan tâm chính, nhỏ hơn sẽ tốt hơn (trong đó giá trị 1 mang lại hành vi đến trước được phục vụ trước). Việc tăng fifo_batch thường cải thiện thông lượng, với chi phí biến đổi độ trễ.
Một số điểm chuẩn cho thấy có rất ít sự khác biệt về hiệu suất giữa các lịch trình khác nhau. Sau đó, tại sao không đề nghị công bằng ? khi CFQ hiếm khi xấu trong băng ghế dự bị . Tuy nhiên, trên các thiết lập máy tính để bàn, bạn thường sẽ có khả năng phản hồi tốt hơn khi sử dụng Hạn chót khi tải, do thiết kế của nó (có thể với chi phí thông lượng thấp hơn).
Điều đó nói rằng, một điểm chuẩn tốt hơn sẽ thử sử dụng Hạn chót với fifo_batch=1
.
Để sử dụng Hạn chót trên SSD theo mặc định, bạn có thể tạo một tệp, nói /etc/udev.d/99-ssd.rules
như sau:
# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
gdisk
&grub 2.0.x
, (tôi đoán ai đó đã đề cập dưới đây trong câu trả lời) và MBR là phương pháp cũ sử dụng phương thức cũgrub 0.9.7
vàfdisk
.. bạn có thể tìm thêm tại đây: wiki.archlinux.org/index.php/Solid_State_Drive