Оптимизация для работы с SSD-дисками: различия между версиями
Bond (обсуждение | вклад) (→Включение поддержки TRIM) |
Bond (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | ==Выравнивание разделов== | + | ==Кратко о Главном== |
+ | |||
+ | в /etc/fstab нужно добавить следующие параметры: | ||
+ | |||
+ | relatime — разрешать записывать только время изменения | ||
+ | nodiratime — отменяет запись времени доступа к директориям. | ||
+ | |||
+ | P.S.ещё есть noatime - зарпещает вести запись времени доступа (не рекомендую использовать, лучше relatime! Необходимо для стабильной работы некоторых программ) | ||
+ | |||
+ | sudo nano /etc/fstab | ||
+ | |||
+ | по умолчанию страка монтирования выглядит так: | ||
+ | |||
+ | UUID=04871f6d-9620-4a01-875b-76462d31873d / ext4 errors=remount-ro 0 1 | ||
+ | |||
+ | меняем на: | ||
+ | |||
+ | UUID=04871f6d-9620-4a01-875b-76462d31873d / ext4 discard,relatime,nodiratime,errors=remount-ro 0 1 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | relatime — разрешает записывать только время изменения | ||
+ | nodiratime — отменяет запись времени доступа к директориям. | ||
+ | |||
+ | noatime - зарпещает вести запись времени доступа (не рекомендую использовать, лучше relatime! Необходимо для стабильной работы некоторых программ) | ||
+ | |||
+ | |||
+ | ===Выравнивание разделов=== | ||
Суть проблемы в том, что если начало разделов в секторах не кратно размеру кластера файловой системы, то резко падает производительность при чтении/записи с диска, а в случае с SSD диском ещё и увеличивается износ диска. То есть когда разделы не выравнены, то кластер файловой системы занимает несколько секторов и тем самым увеличивается количество операций чтения/записи. | Суть проблемы в том, что если начало разделов в секторах не кратно размеру кластера файловой системы, то резко падает производительность при чтении/записи с диска, а в случае с SSD диском ещё и увеличивается износ диска. То есть когда разделы не выравнены, то кластер файловой системы занимает несколько секторов и тем самым увеличивается количество операций чтения/записи. | ||
Строка 13: | Строка 41: | ||
P.S. При установки Ubuntu 12.04 и создании разделов стандартными графическими средствами, выравнивание разделов выполнять не пришлось, программа всё сделала сама! | P.S. При установки Ubuntu 12.04 и создании разделов стандартными графическими средствами, выравнивание разделов выполнять не пришлось, программа всё сделала сама! | ||
+ | |||
+ | ===Планировщик ввода-вывода=== | ||
+ | |||
+ | По умолчанию в Ubuntu Linux в качестве файлового планировщика используется CFQ, он старается минимизировать перемещения головок, но у SSD нет движущихся частей и CFQ не нужен. | ||
+ | в файле /etc/default/grub нужно найти строку: | ||
+ | |||
+ | sudo nano /etc/default/grub | ||
+ | |||
+ | GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" | ||
+ | |||
+ | и добавить параметр elevator=noop | ||
+ | |||
+ | GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop". | ||
+ | |||
+ | После выполнить: | ||
+ | sudo update-grub | ||
+ | |||
+ | |||
Строка 29: | Строка 75: | ||
меняем на: | меняем на: | ||
− | UUID=b49c6a96-ee65-4c12-9aca-66f5ea927aab / ext4 discard, | + | UUID=b49c6a96-ee65-4c12-9aca-66f5ea927aab / ext4 discard,relatime,nodiratime,errors=remount-ro 0 1 |
Строка 79: | Строка 125: | ||
если вывод содержит не нули, а данные из п. 3, то поддержка TRIM не осуществляется и нужно: | если вывод содержит не нули, а данные из п. 3, то поддержка TRIM не осуществляется и нужно: | ||
Включить поддержку TRIM | Включить поддержку TRIM | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Версия 20:12, 16 мая 2012
Содержание
Кратко о Главном
в /etc/fstab нужно добавить следующие параметры:
relatime — разрешать записывать только время изменения nodiratime — отменяет запись времени доступа к директориям.
P.S.ещё есть noatime - зарпещает вести запись времени доступа (не рекомендую использовать, лучше relatime! Необходимо для стабильной работы некоторых программ)
sudo nano /etc/fstab
по умолчанию страка монтирования выглядит так:
UUID=04871f6d-9620-4a01-875b-76462d31873d / ext4 errors=remount-ro 0 1
меняем на:
UUID=04871f6d-9620-4a01-875b-76462d31873d / ext4 discard,relatime,nodiratime,errors=remount-ro 0 1
relatime — разрешает записывать только время изменения
nodiratime — отменяет запись времени доступа к директориям.
noatime - зарпещает вести запись времени доступа (не рекомендую использовать, лучше relatime! Необходимо для стабильной работы некоторых программ)
Выравнивание разделов
Суть проблемы в том, что если начало разделов в секторах не кратно размеру кластера файловой системы, то резко падает производительность при чтении/записи с диска, а в случае с SSD диском ещё и увеличивается износ диска. То есть когда разделы не выравнены, то кластер файловой системы занимает несколько секторов и тем самым увеличивается количество операций чтения/записи. При создании раздела его стартовый сектор должен делиться на 8 без остатка!
fdisk -l
Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 2048 20000767 9999360 83 Linux /dev/sda2 20000768 117229567 48614400 83 Linux
Начальные сектора 2048 и 20000768 кратны 8!
P.S. При установки Ubuntu 12.04 и создании разделов стандартными графическими средствами, выравнивание разделов выполнять не пришлось, программа всё сделала сама!
Планировщик ввода-вывода
По умолчанию в Ubuntu Linux в качестве файлового планировщика используется CFQ, он старается минимизировать перемещения головок, но у SSD нет движущихся частей и CFQ не нужен. в файле /etc/default/grub нужно найти строку:
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
и добавить параметр elevator=noop
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop".
После выполнить:
sudo update-grub
Включение поддержки TRIM
Что такое TRIM Если в кратце, то штука нужная и обязательная!
Для включения поддержки TRIM в /etc/fstab нужно добавить параметр discard:
sudo nano /etc/fstab
по умолчанию страка выглядит так:
UUID=b49c6a96-ee65-4c12-9aca-66f5ea927aab / ext4 errors=remount-ro 0 1
меняем на:
UUID=b49c6a96-ee65-4c12-9aca-66f5ea927aab / ext4 discard,relatime,nodiratime,errors=remount-ro 0 1
! TRIM не работает с «виртуальными» дисками, хранящимися в виде образов, что не ограничивает использование команды в виртуальной среде.
! TRIM не всегда поддерживается в RAID-массивах
Проверка работы TRIM
Проверить работу TRIM можно с помощью следующей последовательности команд исполняемых в консоли: 1. создаем временный файл заполненный случайными данными:
cd / sudo dd if=/dev/urandom of=tmpfile count=10 bs=512k oflag=direct
2. находим номер сектора диска содержащего данные этого файла (нам нужно любое число из колонки begin_LBA):
sudo hdparm --fibmap tmpfile
3. проверяем содержимое этого сектора:
sudo hdparm --read-sector 17179648 /dev/sda
(вместо 17179648 подставьте номер сектора показанный командой из п.2 и вместо /dev/sda устройство которым обозначен SSD диск) будет показан набор случайных данных похожий на:
… adb1 0d7a e027 042e 84ad 3231 2f6c 85f1 58ee feb6 cac0 d403 5df0 46db 2cfe 531c 3cbd 5a21 e0b6 9b57 799a 7ac8 dd15 3883
4. удаляем файл:
sudo rm tmpfile
sudo sync
5. проверяем содержимое файла еще раз:
sudo hdparm --read-sector 17179648 /dev/sda
при включенной поддержке TRIM вывод будет содержать нули:
… 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
если вывод содержит не нули, а данные из п. 3, то поддержка TRIM не осуществляется и нужно: Включить поддержку TRIM