Як оптимізувати ОС для SSD?


146

Які дії слід вжити до / під час / після встановлення Ubuntu на твердотільному диску, щоб оптимізувати продуктивність та забезпечити максимальну довговічність накопичувача?

Відповіді:


108

Я успішно використовував кілька різних методик, щоб поліпшити спосіб використання Ubuntu пристрою зберігання даних, будь то твердотільний або традиційний привід.

Для SSD-диска ви прагнете мінімізувати кількість записів накопичувача, оскільки читання не повинно створювати знос накопичувача.

1) Управління файлом своп

Якщо ви не перебуваєте у сплячому режимі свого комп’ютера та у вас є достатня кількість оперативної пам’яті для запуску всіх ваших програм, то теоретично вам не потрібен розділ swap.

Якщо у вас суміш з SSD і жорстких дисків, розмістіть свій swap розділ тільки на жорстких дисках.

2) Не пише для часових позначок читання (підходить для SSD і жорстких дисків)

Монтування розділів з опціонами noatime і nodiratime зупиняться мітку часу пише , коли ви читаєте файли і папки. Записи часових міток зазвичай не потрібні, якщо ви не використовуєте локальний клієнт поштового сервера, такий як mutt. Причина цього, як правило, погана ідея, полягає в тому, що кожне прочитане створює запис при оновленні часових позначок. Це зменшує термін служби SSD.

Відредагуйте файл конфігурації / etc / fstab (обережно - зробіть резервну копію, щоб переконатися, що порушення вашої конфігурації fstab може завадити роботі системи):

cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Змініть установчі параметри для ваших розділів, додавши текст noatime і nodiratime до ліній визначають ваш кореневої (/) і інші розділи , якщо вони у вас є (/ домашній) - Примітка: якщо у вас є домашній розділ /, почати з цього просто змінюється цей розділ, якщо ви стурбовані тим, що щось зламаєте

# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 /               ext4    noatime,nodiratime,errors=remount-ro 0       1

# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home           ext4    noatime,nodiratime,defaults        0       2

Вам потрібно буде перезавантажити машину до того, як ці зміни набудуть чинності

3) мінімізація записів з ОС та додатків

Якщо припустити, що ви не працюєте з критично важливим сервером продуктів, більшість людей не дивляться на журнали, якщо щось піде не так (особливо, оскільки серйозні помилки рідкісні для більшості користувачів Ubuntu). Тому ви можете налаштувати Ubuntu, щоб усі журнали записувалися в оперативну пам'ять, а не на SSD.

Примітка. Внесіть такі зміни лише тоді, коли ви встановите все програмне забезпечення, яке ви будете використовувати (особливо такі речі, як веб-сервер Apache), інакше можуть виникнути проблеми з відсутніми каталогами в / var / log

Докладніше про такий підхід див. У розділі Подовження терміну служби вашої флешки на ubuntu-eee.com

Відкрийте / etc / fstab за допомогою редактора (якщо ви створили резервну копію файлу / etc / fstab)

gksudo gedit /etc/fstab

Додайте наступні рядки в кінці файлу fstab і збережіть:

# Uncomment these after all server based applications installed - eg. apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0

Вам потрібно буде перезавантажити машину до того, як ці зміни набудуть чинності

Дивитися також:


7
Щодо останнього біта для журналів та матеріалів, tmpfsкоментовані рядки, тож чому додавання цих рядків має значення? Чи потрібно нам додавати це без коментарів?
Oxwivi

8
Я можу зрозуміти, чи мається на увазі це для покращення швидкості, але, здається, більшість написаного вами має на меті покращити життя SSD. Чи не так у сучасних SSD ці вдосконалення безглуздо? І за рахунок більшого використання оперативної пам’яті! (наприклад, дивіться посилання, вказане в цій іншій відповіді )
Чан-Хо Су

7
Не потрібно 2). relatime виконує роботу з запобігання запису дуже добре, і він активний за замовчуванням з ядра 2.6.30 .
Mihai Capotă

3
Просто для додання коментаря @ MihaiCapotă є відповідь про помилку сервера з більш детальною інформацією про те, чому не потрібен час в режимі часу.
Кас

1
Вони кажуть, що час часу тут передбачає нодиратіам , тому достатньо додати колишній варіант.
jarno

92

SSD Life

Взагалі я б не переймався - турботи про життя SSD пересичені. Ви можете прочитати цю детальну статтю про те, чому ви насправді не повинні турбуватися . Коротше кажучи, схема всередині сучасних SSD-дисків управляє рівнем зносу для вас, і вони знають, як це зробити набагато краще, ніж ви.

У статті наведено розрахунок тривалості SSD, який приймає записи з постійною швидкістю 80 М / с. Життя - 51 рік . Це засновано на технології 2007 року - тепер тривалість SSD буде довшою. І ви майже напевно не пишете на свій SSD зі швидкістю 80 М / с 24 години на добу.

Продуктивність SSD

Однак погіршення продуктивності з часом може бути проблемою, і TRIM - це рішення. Є два варіанти

  • автоматичне / онлайн TRIM, також відкинути
  • посібник TRIM

Ви повинні ввімкнути автоматичний TRIM самостійно . (В основному ви додаєте цю discardопцію до параметрів монтування, за умови, що ви використовуєте ext4.) Я знайшов повідомлення в блозі, в якому повідомляється, що опція відкидання сповільнює вашу систему при видаленні файлів .

Ви можете час від часу робити це вручну (або в роботі з крон), використовуючи fstrim . Якщо у вас просто один розділ, то все, що вам потрібно зробити, це:

sudo fstrim /

Зауважте, що fstrim доступний лише в 11.10 та новіших версіях. Для старих систем вам знадобиться wiper.shсценарій. Я знайшов сценарій у /usr/share/doc/hdparm/contrib/wiper.sh.gzсвоїй системі.

Якщо вам цікаво, проблема, яку вирішує TRIM, як описано у Вікіпедії , полягає в наступному :

SSD-накопичувачі зберігають дані у клітинках флеш-пам’яті, які згруповані у сторінки, при цьому сторінки (як правило, 4 кБ у кожній) згруповані в блоки (як правило, 128 сторінок на блок, що становить 512 кБ). Осередки флеш-пам’яті NAND можна записувати безпосередньо лише тоді, коли вони порожні. Якщо вони вважають, що вони містять дані, вміст спочатку потрібно стерти, перш ніж операція запису може бути надійно виконана. На SSD-дисках операцію запису можна виконувати на рівні сторінки, але через обмеження обладнання, команди стирання завжди впливають на цілі блоки. Як результат, запис даних на SSD-носії відбувається дуже швидко, доки можна використовувати порожні сторінки, але значно сповільнюється, коли попередньо написані сторінки потрібно перезаписати. Оскільки для її повторного запису потрібне стирання комірок на сторінці, але можна видалити лише цілі блоки, перезапис ініціює цикл читання-стирання-зміна-запис: вміст всього блоку повинен зберігатися в кеш-пам'яті, перш ніж її ефективно стерти на флеш-носії, потім перезаписана сторінка буде змінена в кеш-пам'яті, щоб кешований блок був оновлений, і лише тоді весь блок (з оновленою сторінкою) записується на флеш-носій . Це явище відоме як посилення запису.


8
Я хотів би, щоб я міг проголосувати кілька разів. ЦЕ була б одна з таких відповідей. Це посилання вирішило тривогу, яку я мав давно. Велике спасибі Гамішу.
Луїс Альварадо

Цікава стаття від storagesearch.com. Я б хотів, щоб це побачило! Так чи означає вищезазначена відповідь, що власникам SSD не потрібно заважати пропозиціям у першій відповіді, за винятком TRIM? У мене немає великої потреби в часі доступу до файлів, але з пам’яттю 2G пам’яті розділ підкачки все ще може бути корисним під час запуску певного програмного забезпечення для редагування фотографій, а також кількох інших програм, що займають багато пам’яті, таких як Chrome.
Лоуренс І. Сіден

@lsiden: стаття згадує "Пізніше: - у травні 2008 року" частково. І ви вірні, що не повинні турбуватися про всі інші речі в першій статті. Просто ввімкніть TRIM і насолоджуйтесь швидкістю :)
Hamish Downer

2
У статті йдеться про жорсткі жорсткі диски, що відповідають вимогам підприємства: він використовує 2 мільйони циклів витривалості при записі. Споживчі диски мають приблизно 3000-5000 циклів. 128 ГБ SSD з 3000 циклами забезпечує 57 днів безперервного запису 80 Мб / с.
LeartS

1
У Ubuntu 14.10 і далі TRIMming відбувається щотижня автоматично на всіх SSD, підтримуваних fstrim. вип.
KrisWebDev

20

Є кілька моментів:

Вирівнювання:

На що часто вказують правильне вирівнювання перегородки. Це повинно дорівнювати розміру блоку SSD. Грайте в безпеку і зробіть свої розділи вирівняними до меж MiB. Зауважте, що ви не можете цього зробити за допомогою інструмента розділів установки Ubuntu (який використовує MB не MiB), але ви можете завантажувати живий компакт-диск, використовувати Gparted (який використовує MiB), а потім натисніть кнопку Встановити, щоб використовувати розділи, які ви налаштували.

Правильний планувальник:

Важливим моментом є планувальник, який повинен бути noop. Ви можете встановити цей планувальник через kernelparameter elevator=noopабо через запис echo noop > /sys/block/sda/queue/schedulerу вас rc.local.

Монтаж:

Я б рекомендував noatimeіdiscard

Tmpfs

Якщо помістити tmp на рамковий диск, це може збільшити час життя ssd. Щоб скористатися цим, поставте наступний рядок у fstab:none /tmp tmpfs defaults 0 0

Як правило, якщо ви хочете зануритися в цю тему, я рекомендую цю чудову вікі-статтю.


16

Курс швидкої настройки вашого SSD на Ubuntu:

файлова система

Arch wiki згадує кілька кращих варіантів для файлової системи SSD - один з них нестабільний, інші - ext *. Я припускаю, що ext4 - один з найкращих виборів.
Примітка. У разі ext4 ви можете скористатися discardопцією кріплення.

fstab

# <file system> <mount point> <type> <options>                                  <dump>  <pass>
proc            /proc         proc   nodev,noexec,nosuid                        0       0
tmpfs           /tmp          tmpfs  nodev,nosuid,noatime,mode=1777             0       0
/dev/sda1       /             ext4   defaults,noatime,discard,errors=remount-ro 0       1
/dev/sda2       /home         ext4   defaults,noatime,discard,user_xattr        0       2
/dev/sda3       /windows      ntfs   defaults,noatime,discard,umask=007,gid=46  0       0

Тут є кілька важливих речей:

  • Для систем з> = 2 гігабайт пам'яті, розміщення / tmp в оперативній пам'яті бажано.
  • Немає swapрозділів. На сьогоднішній день вона потрібна лише для сплячого режиму, оскільки сучасні машини мають досить велику кількість оперативної пам’яті.
  • noatimeта discardваріанти. Інформація тут .

планувальник

Розглянемо можливість переходу з планувальника за замовчуванням, який у більшості дистрибутивів Linux є cfq (цілком чесна черга), на планіровщик або терміни для SSD. Наприклад, використовуючи планувальник noop, просто обробляє запити в порядку їх отримання, не враховуючи, де дані фізично перебувають на диску. Вважається, що цей варіант є вигідним для SSD, оскільки час пошуку однаковий для всіх секторів на SSD.

Додати в /etc/rc.local :

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

інформація

один два


2
Без заміни та з /tmpоперативною пам’яттю дуже легко потрапити в ситуацію із пам'яттю , оскільки багато програм використовують /tmpяк місце для зберігання (наприклад, Brasero для зберігання зображень DVD).
організуйте

5
Не зовсім. tmpfsза замовчуванням - 10% оперативної пам’яті. Розмір можна відрегулювати за допомогою sizeопції.
Андрейс Кайніков

1
Brasero - це поганий приклад, він не повинен робити цього в першу чергу, як пояснює Леннарт Поеттерінг
LiveWireBT

8

4) включення автоматичного TRIM

Якщо ваш SSD підтримує його, вам слід також включити автоматичний TRIM (як описано тут )


3

Я б не додав цей рядок у папку fstab, var / tmp, щоб пережити перезавантаження, і це може спричинити проблеми для вас.

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

Коли я конфігурую нову систему, я залишаю так, щоб вся папка tmp прокоментувалася таким чином, якщо щось трапиться, я можу перевірити журнали та інше. Потім, коли у мене є основна настройка системи, я їх не коментую, але я ніколи не додаю вищевказаний рядок, ось що я використовую:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
tmpfs /var/log/apt tmpfs defaults,noatime 0 0

І якщо у мене виникають проблеми з моєю системою, я коментую їх, щоб мати можливість перевірити все навіть після перезавантаження або примусової перезавантаження після блокування.

Крім того, вам не потрібно нодиратім, опція у режимі часу переймається обома.

Що стосується TRIM, якщо ваш hw / sw підтримує його, це обов'язково, я не використовую скидання у fstab. Я створюю щоденний крон, тому що мій ПК завжди увімкнений, роблячи це:

gksu gedit /etc/cron.daily/trim

Потім додайте це у файл та збережіть (Якщо у вас немає окремого / домашнього розділу на ssd або у вас є інші частини, які є на ssd, ви маєте отримати уявлення, як це змінити:

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

Потім зробіть файл виконуваним:

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

Я також редагую свій rc.local так:

gksu gedit /etc/rc.local

Додайте це вище "вихід 0" та нижче останнього #:

# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
  if [ ! -e /var/log/$dir ] ; then
    mkdir /var/log/$dir
  fi
done

Ви можете скопіювати та вставити звідси, щоб не було помилок, для мирянина це виглядає з удару, це не так.

Я також читав, що залишити 10% вашого SSD-диска неформатованим може допомогти продовжити життя, що ще слід побачити. Я не так багато читав у цьому, щоб не поручився, якщо це має сенс.

Це найкращий посібник з усього світу, він не скупився навколо Google протягом дня, а потім придумав посібник, ви повинні перевірити його ТУТ


Чи є ідея додати всі каталоги під регулярним / var / log до /etc/rc.local? Що станеться, якщо не додати каталоги? Я думаю, що для встановлення деяких нових пакетів може бути потрібне більше каталогів. Чи може /etc/rc.local бути оновлений під час відключення для створення всіх каталогів при наступному завантаженні?
jarno

У ubuntu 14.04 і пізніших версіях cron /etc/cron.weekly/fstrim за замовчуванням встановлюється для обрізки файлових систем щотижня. Щодо 14.04 дивіться тут . Ubuntu 15.10 використовує /sbin/fstrim --all || trueсценарій fstrim.
jarno

Принаймні каталог / var / log / installer має підкаталог, який називається ubiquity-apt-clone в Xubuntu 15.10. Чи слід створювати підкаталоги рекурсивно?
jarno

3

TRIM дозволяє операційній системі інформувати SSD про те, які блоки даних вже не розглядаються під час використання та можуть бути стерти внутрішньо. Обрізка дає змогу SSD обробляти накладні витрати, що в іншому випадку суттєво уповільнить майбутні операції запису до відповідних блоків. 1

У Ubuntu 14.04 до пакету util-linux була додана нова функція, яка регулярно автоматично обрізає SSD, але тільки SSD Intel та Samsung мають TRIM, включені за замовчуванням, оскільки деякі дешеві SSD-накопичувачі можуть навіть цеглитися під час запуску TRIM. 2 Вміст /etc/cron.weekly/fstrimUbuntu 14.04:

#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e

# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g.  https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all

1 https://en.wikipedia.org/wiki/Trim_%28computing%29
2 Як увімкнено обрізку?



2

Гаразд "довга історія":

  1. Так. Це як звичайний hdd. Ось хороший огляд.
  2. Деякі особливі додаткові речі, які я висвітлю.
  3. Досить добре. Я використовую його з сервером.

Форматуйте як ext4під час встановлення, і створіть невеликий своп ~ 1 Гб. Після встановлення відредагуйте fstab за допомогою sudo gedit /etc/fstabта додайте наступний рядок

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Це створить рамбовий диск для тимчасових файлів, що знизить старіння. Також додайте noatime,nodiratime,discardдо рядка ext4 після встановлення за замовчуванням. Це також знизить знос та включить функцію TRIM. Збережіть і перезавантажте.


Дуже дякую. Я плутаюся, тому що я завжди використовував подвійний завантажувальний Linux, і це буде перший раз, коли я буду встановлювати Linux на свіжий SSD, тому і процес, і зберігання є для мене новими. але здається, що це те саме, що встановити Ubuntu на жорсткий диск, правда?
Варун

Це те саме. При встановленні вас можуть попросити створити таблицю розділів, але це один клік.
gajdipajti

Ще одне питання: чи потрібно робити якісь зміни в BIOS для свого ноутбука Dell. Я збираюся сьогодні встановити SSD та Ubuntu?
Варун

Ні, сучасні біосистеми автоматично визначають жорсткі диски типу.
gajdipajti

Велике спасибі, дуже корисно, дам вам знати, що станеться завтра :)
Varun

2

Є корисна інформація Як налаштувати та оптимізувати SSD для Ubuntu, Linux Mint від http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html ви можете цікавитися

Використовуйте попереднє завантаження

Щоб встановити попереднє завантаження на дистрибутивах на базі Ubuntu, Linux Mint або debian

# apt-get update && apt-get install preload

Вимкніть своп

Щоб змінити налаштування заміщення:

$ su -
# nano /etc/sysctl.conf

І додайте цей рядок у файл sysctl.conf.

vm.swappiness = 10

2

Джерело живлення потрібен. У /etc/sysctl.confфайлі

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

Знайдіть файл конфігурації демона, як правило , /etc/syslog.confабо /etc/rsyslog.d/і всі шляхи виду /var/log/зміни, написавши знак мінус ( «-») перед ways.Before mail.err

/var/log/mail.err

Після
mail.err -/var/log/mail.err

використовувати FS btrfsі використовувати -o ssdопцію

Більше http://vasilisc.com/speedup_ubuntu_eng#speedup_fs


1

Як налаштувати та оптимізувати SSD для Ubuntu, Linux Mint

Увімкнути TRIM

TRIM (команда Trim повідомляє ОС, які блоки SSD не використовуються та які можна очистити)

Спершу створіть резервну копію fstab, якщо трапиться щось не так.

# cp /etc/fstab ~/fstab.bk

Редагувати файл fstab

# nano /etc/fstab

Додайте відмову до своїх накопичувачів або розділів ssd після ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime

noatime і nodiratime - це параметри кріплення в Linux для файлової системи Linux. noatime відключає оновлення atime у файловій системі, а nodiratime відключає оновлення atime у системі каталогів. Додавання часу та нодіратіму значно зменшить завантаження ssd, означає підвищення продуктивності.

Редагувати файл fstab

# nano /etc/fstab

Додайте noatime, nodiratime до своїх накопичувачів або розділів ssd після ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1

0

Я пропоную розміщувати на SSD лише ті речі, які читаються під час завантаження, будь-які програми, які потребують багато часу для завантаження. Дані та журнали та інші некритичні речі, які я міг би знайти на звичайному жорсткому диску. Також ви можете налаштувати свій ubuntu лише на завантаження великий initramfs з SSD під час завантаження і не записувати зміни в ssd. Це має перевагу, що зміни цього розділу не є стійкими, що є схожим на захист вашої завантажувальної системи. Для цього вам, звичайно, знадобиться набагато більше оперативної пам'яті.

Я б, наприклад, розмістив на SSD розділи /, / і т.д., / usr, / boot, / lib 32/64,

/ opt, / bin, / sbin, / root, / home та навіть поміняти (збільшити оперативну пам’ять !!!) на жорсткому диску

У Вікіпедії сказано:

Ядро Linux підтримує функцію TRIM, починаючи з версії 2.6.33. Файлова система ext4 підтримується при монтажі за допомогою параметра "відкинути". Найновіші дискові утиліти (а отже, інсталяційне програмне забезпечення, яке їх використовує) також застосовують належне вирівнювання розділів.

Для резервного копіювання існує багато способів, найпростішим з яких є (r) синхронізація плюс робота cron.


Чи знаєте ви, для чого використовується кожна з локацій? Усі згадані місця, за винятком /root, /homeі swap, слід ставити на SSD для швидкості, оскільки це здебільшого лише для читання. Для переваги швидкості також покладіть /varна SSD.
Лекенштейн

Залежить від того, що ви маєте намір пришвидшити і наскільки великий ваш SSD. 120 Гб повинно вистачити, добре, але з меншими SSD ви легко доходите до кордонів.
Майкл К

/Розділ для Kubuntu Oneiric займає 4,5 Гб на мій SSD. 20 ГБ достатньо для /мінусу /home. Зусилля щодо налаштування макета файлової системи, розповсюдження її на декілька розділів не варто.
Лекенштейн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.