Оглавление:
Статья последний раз была обновлена 04.03.2023
Выбор железа
Выбирал что именно поставить недолго — я предпочитаю надежность скорости и на моем ноутбуке все равно есть только SATA-2, поэтому взял стабильный ширпотреб Intel 320 SSD 120Gb
Установил ssd в отсек DVD, т.к использовался он крайне редко.
Параметры ssd
По спецификации эта железка дает 270/130 Мб чтения/записи и малые задержки на чтение/запись (~0.1ms). Размер сектора для чтения — 4Кб, записи — 512К(128 секторов).
Из особенностей стоит отметить, что при проведении теста случайной записи при расширении границы случайной записи с 8Гб до 120Гб скорость записи падает до ~1.5Mb/s, так что скорость записи при реальной работе может быть меньше указанной.
Также, кэширование ввода/вывода в ядре требует перемещения скопированного блока из/в пользовательское пространство, и реальная скорость чтения в большинстве приложений будет меньше:sudo hdparm --direct -Ft /dev/sdb = 258.56 MB/sec
sudo hdparm -Ft /dev/sdb = 174.65 MB/sec
Скорости отличаются, но максимум я получил 270Mb/s direct IO, 200Mb/s buffered
Ресурс записи
Мне, конечно же, хотелось бы, чтобы такие железки работали вечно 😉
Intel дает 3 года гарантии. Попробуем рассчитать время жизни накопителя (в МБ), из расчета 10000 записей в одну ячейку MLC. Так как блоки перезаписываются только по 512Кб, считаем количество количество блоков перезаписи:
112Gb / 512Kb = 223.5K блоков перезаписи, в каждый может быть записано 10000 раз по 4Kb..512Кб (минимум сектор — максимум полностью), имеем: 223.5K * 1000 * (4..512)K ~ 872G(1..128), на один день за три года приходится ~0,8G(1..128), т.е на вскидку, от гигабайта до 100.
При переводе в SMART атрибут 241 (Host_Writes_32MiB) это получается от 32 до 3200 в день.
Учитывая, что гигабайт в день — это не сильно много (у меня типично 5Gb), становится понятна необходимость настройки системы.
Подготовка к установке
Загружаемся, например, с live DVD/USB ubuntu, хотя подойдет почти любой современный linux-based дистрибутив.
Не во всех дистрибутивах ubuntu поставляется lvm, поэтому установим его (ubuntu):
# sudo apt-get update && sudo apt-get install lvm2
В моем случае ssd встал на устройство /dev/sdb, привожу команды с учетом этого.
Подготовка дисков
Таблица разделов:
В первую очередь необходимо разбивать диск с учетом выравнивания в 512Кб, или, лучше 1М (уже почти стандарт), используем fdisk, начало любого раздела должно быть кратно 2048:# sudo fdisk -l /dev/sdb
Диск /dev/sdb: 120.0 Гб, 120034123776 байт
255 головок, 63 секторов/треков, 14593 цилиндров, всего 234441648 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0x0006b910
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 * 2048 264191 131072 83 Linux
/dev/sdb2 264192 234440703 117088256 8e Linux LVM
Первый раздел предназначен для загрузки, второй — LVM
LVM просто отличная система для SSD, так как на дисках «размазывание» раздела по диску приводило к падению производительности, а на SSD такого происходить не будет (по крайней мере при чтении)
Изначально планировалось настроить и шифрование, но тесты показали, что скорость будет неважной (скорость падала до 120-160Гб/с, в зависимости от алгоритма), поэтому без аппаратного ускорения делать не стоит.
Настраиваем lvm
создаем физический том, выравнивание на мегабайт# sudo pvcreate /dev/sdb2 --dataalignment=1M
создаем группу томов с именем ssd# sudo vgcreate ssd --physicalextentsize 4M /dev/sdb2
создаем логические тома внутри группы# sudo lvcreate -L 4G -n swap ssd
# sudo lvcreate -L 12G -n root ssd
# sudo lvcreate -L 80G -n home ssd
Форматируем разделы:
Используем ext4 (btrfs все еще нестабильна и восстанавливать данные с ext4 проще):
-E stride=128,stripe-width=128 — говорит выравнивать структуры данных на границу 128 блоков по 4К
-b 4096 — точно укажем размер блока данных
-m 0 — не резервировать место для root-файлов# sudo mkfs.ext3 -L Boot -E stride=128,stripe-width=128 -b 4096 -m 0 /dev/sdb1
# sudo mkfs.ext4 -L Home -E stride=128,stripe-width=128 -b 4096 -m 0 /dev/ssd/home
# sudo mkfs.ext4 -L Root -E stride=128,stripe-width=128 -b 4096 /dev/ssd/root
# sudo mkswap /dev/ssd/swap
Устанавливаем ubuntu
На этапе разбиения необходимо указать соответствующие точки монтирования:
/dev/ssd/root = /
/dev/ssd/home = /home
/dev/sdb1 = /boot
Настройка после установки
После установки в новой системе необходимо выполнить оптимизацию:
(можно это сделать до перезагрузки в новую систему, если примонтировать новосозданные разделы)
TRIM+noatime
для оптимизации быстродействия и минимизации записи добавить в /etc/fstab для root, home параметры discard,nodiratime,noatime:/dev/mapper/ssd-root / ext4 discard,nodiratime,noatime,errors=remount-ro 0 1
/dev/mapper/ssd-home /home ext4 discard,nodiratime,noatime,defaults,user_xattr 2
tmpfs
Можно вынести некоторые пути в память: (тот же /etc/fstab, добавляем строки)tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
Оптимизируем ядро
создаем файл /etc/sysctl.d/60-ssd-optimization.conf:# сбрасывать кэш только каждые 150 секунд, если не нужно чаще
vm.laptop_mode=5
vm.dirty_writeback_centisecs = 15000
# Дольше ждать перед включением своппинга, только тем, у кого памяти > 2G
vm.swappiness = 10
Noop планировщик
Устанавливаем простой планировщик на ssd — в файл /etc/rc.local добавим до строчки exit 0:echo noop > /sys/block/sdb/queue/scheduler
http://enwony.blogspot.com/2012/01/ssd.html
- Как узнать IP-адрес по MAC-адресу - 07.04.2023
- Пинг проходит, а страницы в браузере не открываются - 07.04.2023
- Что если сайт пингуется «извне», но не открывается из под «локалки»? - 07.04.2023