Коротка відповідь
Виберіть ext4 та монтуйте його за допомогою discard
опції для підтримки TRIM або використовуйте FITRIM (див. Нижче). Також використовуйте цей noatime
варіант, якщо ви боїтеся "зносу SSD".
Не змінюйте планувальник вводу-виводу за замовчуванням (CFQ) на серверах з декількома додатками , оскільки це забезпечує справедливість між процесами та має автоматичну підтримку SSD. Однак використовуйте Deadline на робочих столах, щоб отримати кращу швидкість реагування під навантаженням.
Щоб легко гарантувати правильне вирівнювання даних, початковий сектор кожного розділу повинен бути кратним 2048 (= 1 МіБ). Ви можете використовувати їх fdisk -cu /dev/sdX
для створення. На останніх дистрибутивах воно автоматично потурбується про вас.
Подумайте двічі, перш ніж використовувати своп на SSD. Це, мабуть, буде набагато швидше порівняно із свопом на жорсткому диску, але він також швидше зносить диск (що може не бути актуальним, див. Нижче).
Довга відповідь
Ext4 - найпоширеніша файлова система Linux (добре підтримується). Він забезпечує хороші показники роботи з SSD і підтримує функцію TRIM (і FITRIM), щоб підтримувати хороші показники SSD з часом (це очищає невикористані блоки пам'яті для швидкого доступу пізніше до запису). NILFS розроблений спеціально для накопичувачів флеш - пам'яті, але НЕ на насправді краще , ніж ext4 на тестах. Btrfs все ще вважається експериментальним (і на самому ділі не працює краще , або ).
- Продуктивність SSD та TRIM:
Функція TRIM очищає блоки SSD, які більше не використовуються файловою системою. Це оптимізує продуктивність довгострокового запису і рекомендується на SSD завдяки їх дизайну. Це означає, що файлова система повинна бути в змозі повідомити накопичувач про ці блоки. Опція discard
кріплення ext4 видасть такі команди TRIM, коли звільняються блоки файлової системи. Це онлайн-відкидання .
Однак така поведінка передбачає невеликі накладні витрати. Починаючи з Linux 2.6.37, ви можете уникати використання discard
та вибору періодичної відмови від партії замість FITRIM (наприклад, з crontab). fstrim
Утиліта робить це ( в Інтернеті), а також -E discard
можливість fsck.ext4
. Однак вам знадобиться "остання" версія цих інструментів.
Ви можете обмежити запис на диску, оскільки SSD має обмежений термін служби в цьому плані. Не переживайте занадто сильно, однак , найгірший на сьогодні SSD на 128 ГБ може підтримувати щонайменше 20 ГБ письмових даних на день протягом більше 5 років (1000 циклів запису на комірку). Кращі (а також і більші) можуть тривати набагато довше: ви, ймовірно, замінили його до того часу.
Якщо ви хочете використовувати swap на SSD, ядро помітить диск, що не обертається, і рандомізує використання swap (вирівнювання зносу рівня ядра): тоді ви побачите SS
(Solid State) у повідомленні ядра, коли swap увімкнено:
Додавання 2097148k своп на / dev / sda1. Пріоритет: -1 розширення: 1 поперек: 2097148k SS
- Планувальники вводу / виводу:
Крім того, я погоджуюся з більшою відповіддю псевдоніму (навіть якщо більшість із них було - юридично? - скопійовано з цього веб-сайту ), але я частково не погоджуюся з частиною планувальника . За замовчуванням термін планувальник буде оптимізований для обертання дисків , як він реалізує алгоритм ліфта . Отже, давайте уточнимо цю частину.
Довга відповідь на планувальників
Починаючи з ядра 2.6.29, SSD-диски автоматично виявляються, і ви можете перевірити це за допомогою:
cat /sys/block/sda/queue/rotational
Вам слід отримати 1
жорсткі диски та 0
SSD.
Тепер, планувальник CFQ може адаптувати свою поведінку, виходячи з цієї інформації. З linux 3.1 cfq-iosched.txt
файл документації ядра говорить :
CFQ має деякі оптимізації для SSD, і якщо він виявляє не обертальний носій, який може підтримувати більшу глибину черги (кілька запитів у польоті одночасно), [...].
Також планувальник термінів намагається обмежити невпорядковані рухи головою на обертових дисках, виходячи з номера сектора. Цитуючи ядро doc deadline-iosched.txt
, fifo_batch
опис опції :
Запити групуються у `` партії '' певного напрямку даних (читати чи записувати), які обслуговуються у порядку збільшення сектора.
Однак налаштування цього параметра на 1 при використанні SSD може бути цікавим:
Цей параметр налаштовує баланс між затримкою на запит та сукупною пропускною здатністю. Коли низька затримка є основною проблемою, менша краща (де значення 1 приносить поведінку першим, хто прийшов у першу чергу). Збільшення fifo_batch, як правило, покращує пропускну здатність за рахунок зміни затримки.
Деякі орієнтири припускають, що різниця у продуктивності між різними планувальниками незначна. Тоді, чому б не рекомендувати справедливість ? коли CFQ рідко поганий у лавці . Однак у налаштуваннях на робочому столі, як правило, ви відчуєте кращу швидкість реагування, використовуючи Deadline під навантаженням, завдяки своїй конструкції (хоча, мабуть, і з меншими витратами на пропускну здатність).
Однак, кращим орієнтиром буде спробувати використати Deadline за допомогою fifo_batch=1
.
Щоб використовувати Дедлайн на SSD-дисках за замовчуванням, ви можете створити файл, скажімо /etc/udev.d/99-ssd.rules
так:
# 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
, (я думаю, хтось згадав про це нижче у відповіді), а MBR - це застарілий метод, використовуючи старийgrub 0.9.7
іfdisk
.. ви можете знайти більше тут: wiki.archlinux.org/index.php/Solid_State_Drives