Оптимизация Ubuntu 11.10 для работы с SSD. Ssd оптимизация ubuntu


Установка и настройка/оптимизация SSD Linux

Итак, Дамы и Господа – наконец-то я поставил в свой маленький eee pc SSD диск 🙂 Прежде чем узнать, как его максимально оптимизировать в среде Linux, пришлось изрядно помучаться.

Итак, SSD-носитель хорош всем: скорость чтения/записи данных, время доступа, отсутствие фрагментации, потребляемая мощность (что очень важно для небуков и ноутбуков). Последнее поколение этих дисков гарантируют отработку, сравнимую с обычными HDD, (а при правильном обращении даже в несколько раз выше) потому сейчас уже можно обзавестись таким твердотельным девайсом.

Главный минус этих носителей, и, к сожалению, минус пока большой – необходимо избегать очень частого обращения к диску с частой записью мелких файлов. По сравнению с HDD, у SSD размеры кластеров намного больше, соответственно, запись небольшого лога потревожит целый кластер. Ярый пример – запись логов в Linux, журналирование файловой системы и остальные подобные вещи. Соответственно, наша с Вами задача сократить количество обращений к диску. Итак, поехали:

1) Самое главное, от чего надо отталкиваться – это команда TRIM. Для ее поддержки необходимо ядро, не старше чем 2.6.3.3. Если ядро более старое – то придется ставить ядро поновее. Как это сделать в Debian Squeeze – можно прочитать здесь. Если все условия соблюдены – необходимо отредактировать файл /etc/fstab:

# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=eb07b6cb-e4ed-47a7-9518-19272a91a01a / ext4 noatime,nodiratime,discard,errors=remount-ro 0 1 # SWAP-раздел на флешке UUID=93c7ee68-a625-44d6-b1ec-5fc1c55e1e57 swap swap defaults 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 # Кеш браузера google-chrome на tmpfs tmpfs /home/erdees/.cache/google-chrome tmpfs size=1000M,mode=0777 0 0 # Остальные разделы и директории, перенесенные в tmpfs tmpfs /tmp tmpfs defaults 0 0 tmpfs /var/tmp tmpfs defaults 0 0 tmpfs /var/lock tmpfs defaults 0 0 #tmpfs /var/log tmpfs defaults 0 0 erdees@erdees-netbook:~$

Самое главное в этом конфиге – это включение TRIM. За его включение отвечает параметр discard. Если присмотреться, то там же рядом можно найти параметры noatime и nodiratime – первый отключает обновление время доступа к файлам, второй – отключает  запись время доступа к каталогам. Таким образом, мы включили TRIM и немного снизили количество записи на SSD.Как видно, все директории, в которых происходят частые циклы чтения/записи находятся в tmpfs (tmpfs – это виртуальная файловая система, которая находится в оперативной памяти), куда помимо tmp, var и прочего перенесен кеш браузера google-chrome. Для других браузеров строчка в fstab отличасться практически не будет – главное, это перенести папку с кешем в tmpfs. Что касается строчки со SWAP-разделом на флешке – то мы пока его не трогаем.

2) Момент второй – файловая система должна быть либо ext4, либо btrfs. Другие не поддерживаются. SWAP-раздел рекомендовано отключить, либо использовать на другом диске/носителе. Как правило, на современных ноутбуках и нетбуках оперативной памяти всегда хватает и своп не задействован, но иногда туда может сыпаться куча мелочи. Например, у меня SWAP висит на SD-флешке, увидеть это можно в приведенном выше fstab. Но об этом позже. Если Вы ставили систему со свопом, то пока просто закомментируйте строчку.

3) Необходимо убедиться, работает ли TRIM. Есть два способа сделать это. Однако первый не 100% точный и у меня не прокатил.

Способ первый:

Создаем при помощи утилиты dd файл:

dd if=/dev/urandom of=tempfile count=10 bs=512k oflag=direct

При успехе увидим вывод:

10+0 записей считано 10+0 записей написано скопировано 5242880 байт (5,2 MB), 2,17641 c, 2,4 MB/c

Далее ищем стартовый LBA созданного нами файла:

root@erdees-netbook:/home/erdees/new# hdparm --fibmap tempfile tempfile: filesystem blocksize 4096, begins at LBA 2048; assuming 512 byte sectors. byte_offset begin_LBA end_LBA sectors 0 2886656 2888703 2048 1048576 2983936 2985983 2048 2097152 2979840 2983935 4096 4194304 2992128 2994175 2048

После делаем поиск по begin_LBA:

hdparm --read-sector [номер сектора] /dev/sda

Увидим примерно такой вывод:

fd51 270e 3ea6 6a69 694e 48cf ed26 fa8f c124 ffc6 5a04 7d60 cbc2 0954 d2ca eff4 d645 8e75 c58b 3b94 adfd 2221 dfd0 20d8 e433 1e3c fcff f265 e899 4694 c4b3 6d0b 6016 be75 b076 23a2 01dc c7dd 6340 2991 06fe 4494 1a7e e2ae 4048 8c9b e3ec 9edf 0e0d 5726 3942 a154 1919 52ec b58e 410a ba61 f8bb 4811 54fc 95c5 5096 aae7 1670 423c 2aa4 0a48 6e1f de3d 6661 3f6d 2a3a e9e6 a082 b72a 87c9 2fa1 7a8b 9b97 1db6

Теперь удалим файл:

rm tempfile

Выполняем синхронизацию:

sync

Теперь выполнил команду hdparm –read-sector [номер сектора] /dev/sda снова, после чего вместо предыдущего вывода секторов, у Вас должны появится только нули. Однако у меня это не проканало, к сожалению. Способ проверки очень наглядный, однако sync не гарантирует синхронизацию фс.

Способ второй – это всего лишь одна команда:

root@erdees-netbook:/home/erdees/new# hdparm -I /dev/sda |grep TRIM * Data Set Management TRIM supported (limit unknown)

Соответственно, наличие надписи supported означает, что TRIM поддерживается, а звездочка слева – то что он в данный момент активирован. Так-то.

4) Еще парочка конфигов и рекомендаций. Я настроил отложенную запись. То есть все процессы в системе пишутся в tmpfs, а когда придет заданное время – то обращаются уже к диску. Добавляем строчки в /etc/sysctl.conf

vm.laptop_mode=5 vm.dirty_writeback_centisecs = 15000

На этом с sysctl всё. Еще я бы посоветовал выключить планировщик ввода-вывода, так как он не способен работать с SSD. Заходим в конфиг GRUB, /etc/default/grub, и заменяем строчку

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

на

GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop"

И еще один выкрутас с GRUB: я отключил задержку при выборе ядра при включении системы, дабы сократить время включения нетбука. Редактируем файл /boot/grub/grub.cfg и параметр

set timeout=5

Делаем равным “0”. Так же я включил автоматический вход в систему. Одним словом, система с момента прохода POST, грузится 5-7 секунд, выключается всего за 4 секунды.

5) Следим за интенсивностью чтения/записи с диска. В этом мне помогла замечательная утилита – iotop. Устанавливаем ее:

aptitude install iotop

И запускаем командой iotop от root. Утилита выглядит точно так же, как и обычный top, однако, выводит информацию о процессах записи/чтения с диска.

Вот в принципе и все, что я пока накопал про SSD-диски под Linux. Так же в сети ходило много информации про отключение журналирование файловой системы. Если это сделать, то можно хорошо сократить количество циклов записи на диск. Однако, я считаю, что это немного рискованно: во-первых, при неправильном отключении журналирования можно потерять TRIM, во-вторых – при отключении питания, можно потерять важные данные.

erdees.ru

Оптимизация SSD в Linux VPS

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

Паравиртуальный драйвер Virtio для SSD

Драйвера Virtio реализованы для блочных, сетевых и других устройств. В общем случае использование паравиртуальных драйверов позволяет достичь большей производительности и отзывчивости в работе виртуальных окружений.

Если ваша панель управления KVM VPS позволяет изменять драйвер виртуализации диска, то для улучшения быстродействия дисковой системы, рекомендуется переключить режим работы диска с IDE на Virtio.

Редактирование fstab

Начнем с параметров монтирования разделов в Linux. Для этого необходимо отредактировать файл /etc/fstab, который состоит из набора файловых систем. Для монтирования каждого раздела или диска в файле используется отдельная строка.

Структура файла fstab выглядит следующим образом:

По умолчанию файл fstab в Debian выглядит следующим образом:

# <file system>                   <dir> <type>    <options>           <dump>    <pass> UUID=ed47f65f-2336-41e7-ad06-a03d75c4c503 / ext4 errors=remount-ro 0 1

Где UUID это идентификатор нашего SSD, который смонтирован в корень и отформатирован в файловой системе EXT4. В качестве параметра используется опция errors=remount-ro.

Будьте предельно внимательны, редактирование fstab может стать причиной невозможности загрузки системы. Создайте резервную копию файла перед внесением каких-либо изменений.

Отключить время доступа к файлам и каталогам

Чтобы снизить нагрузку по записи, можно полностью отключить время последнего доступа к файлам и каталогам. Для этого в параметры монтирования fstab необходимо добавить опции монтирования noatime и nodiratime.

Отключить барьеры

Барьеры гарантируют целостность журнала файловой системы. К их недостаткам можно отнести снижение производительности. Отключив использование барьеров barrier=0, мы ускоряем операции записи на разделы EXT4.

В итоге файл fstab должен выглядеть следующим образом:

# <file system>                   <dir> <type>    <options>           <dump>    <pass> UUID=ed47f65f-2336-41e7-ad06-a03d75c4c503 / ext4 noatime,nodiratime,barrier=0,errors=remount-ro 0 1

Чтобы принять изменения необходимо выполнить команду ниже:

mount -o remount rw,errors=remount-ro,noatime,nodiratime,barrier=0 /
Настройка параметров ядра Linux для SSD

Для улучшения производительности системы, рекомендуется снизить интенсивность обращения к SWAP. Чтобы снизить минимальный процент свободной памяти, при которой будет происходить запись страниц в SWAP, необходимо установить значение параметра vm.swappiness=10.

echo 'vm.swappiness=5' >> /etc/sysctl.conf # Применить настройки sysctl -p

Параметр vfs_cache_pressure отвечает за уровень выделяемой памяти под использование дискового кэша. В зависимости от величины, параметр увеличивает или уменьшает активность выгрузки неиспользуемых страниц памяти из кэша. Для SSD рекомендуется установить значение параметра vfs_cache_pressure равным 50.

echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf # Применить настройки sysctl -p

Для того чтобы проверить, что система правильно определила ваш SSD, необходимо выполнить команду:

cat /sys/block/vda/queue/rotational 0

Где vda имя вашего диска в системе. Для просмотра списка устройств используйте команду df. Значение равное 0, служит подтверждением того, что система определила тип используемого диска как SSD. В противном случае, необходимо установить значение вручную:

echo 0 > /sys/block/sda/queue/rotational echo "echo 0 > /sys/block/sda/queue/rotational" >> /etc/rc.local

В ядре Linux имеется несколько типов планировщиков, которые выполняют функции управления дисковым пространством, расстановки приоритетов и обработки запросов в реальном времени. Рекомендуемым планировщиком для работы с SSD является Noop. Он хорошо подходит для работы с флеш-памятью благодаря использованию минимальных задержек для запросов к дисковому пространству.

echo noop > /sys/block/vda/queue/scheduler echo "echo noop > /sys/block/vda/queue/scheduler" >> /etc/rc.local

Связи с тем, что SSD накопители не используют вращающиеся пластины в отличие от традиционных жестких дисков. Нулевое значение отключает использование алгоритмов снижения времени поиска данных, так как SSD и виртуальные диски в этом не нуждаются.

echo 0 > /sys/block/vda/queue/rotational echo "echo 0 > /sys/block/vda/queue/rotational" >> /etc/rc.local

Последняя параметр rq_affinity. Может принимать значение равное 1 принуждает обработку операций на том же процессоре, где они были сгенерированы. Это может повысить эффективность кэширования данных. Для гостевых систем KVM рекомендуется установить значение равное 0, чтобы разрешить обработку операций на любом процессоре.

echo 0 > /sys/block/sda/queue/rq_affinity echo "echo 0 > /sys/block/sda/queue/rq_affinity" >> /etc/rc.local

codebeer.ru

Как оптимизировать использование SSD на Ubuntu Linux ?

Я довольно успешно использовал несколько различных методов, которые позволяют повысить эффективность работы устройств хранения данных на Ubuntu, это могут быть как жесткие, так и переносные устройства.

Для SSD большинству людей хотелось бы минимизировать количество оборотов как во время чтения так и записи информации с диска, поскольку чем их больше тем быстрее он изнашивается.

1) Управляйте виртуальной памятью

Если ваш компьютер находится не в спящем режиме, и у Вас есть вполне достаточный объем памяти RAM, чтобы запустить все Ваши приложения, то теоретически вам нет необходимости в увеличении виртуальной памяти.

Если у Вас одновременно установлен SSD и жесткий диск, создайте виртуальное пространство только та жестком диске.

2) Не устанавливайте метки для чтения (подходит для и жестких и SSD дисков)

Установите разделы, используя опции noatime и nodiratime, которые остановят запись меток, когда идет чтения файлов или папок. Вообще нет необходимости  в записи меток, если Вы используйте локальный клиент почтового сервера, такой как mutt.

Отредактируйте Ваш конфигурационный файл /etc/fstab (осторожно - сделайте резервную копию, это поможетвам, если произойдет повреждение конфигурационного файла):

CP/etc/fstab ~/fstab-backupgksudo gedit/etc/fstab

Отредактируйте опции установки, добавив текст noatime и nodiratime задав их в корне (/) и другие разделы, если они находятся в (/home) - Примечание: если у Вас есть /home «раздел», начните с простого изменения разделов, если Вы боитесь что то испортить. 

# / 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, таким образом, что все журналы регистрации будут записаны в памяти RAM, а не SSD. Примечание: только внесите эти изменения, когда Вы уже установили все программное обеспечение, которым Вы собираетесь пользоваться (особенно такие вещи как Apache web server), иначе у Вас могут возникнуть проблемы с отсутствием каталога /var/log. На фоне этого подхода просмотрите способы продление жизни Вашего flash накопителя на 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

Далее перезагрузите компьютер, чтобы все изменения вступили в силу

rubuntu.com

Настройка Ubuntu для работы на SSD диске

Настройка Ubuntu для работы на SSD диске

// Декабрь 28th, 2010 // Ubuntu, Аппаратное обеспечение, Веб-разработка

В этой заметке я хочу поделиться практическим опытом настройки Ubunntu 10.10 для работы с SSD диском. В интернете есть довольно много информации на эту тему, но иногда она противоречивая, иногда уже неактуальная, так что думаю эта статья пойдёт на пользу людям, админящим сервера под Ubuntu Server.

Swap?

Очень интересно было узнать, а нужно ли использовать swap при имеющемся ssd диске? После обсуждения на хабре, мне показалось, что лучше всего выделить небольшой относительно объема RAM (порядка 4 Гб) swap раздел. А потом помониторить, как часто система сваппится на диск.

Выбор файловой системы

Для SSD необходимо использовать нежурналируемую файловую систему, для предотврещание нескольких операций записи на одни и теже данные. Можно использовать ext2 или ext4 (но с откюченным журналом). Будем использовать ext4.

Опции монтирования

Для ext4 в fstab пропишем следующие опции:

noatime,nodiratime

Если в fstab есть что-то вида errors=remount-ro 0, то опции пишем перед этим параметром.

Этими опциями мы говорим системе, что не надо обноволять время последнего доступа к файлам и каталогам.

Отключение журналирования

Журналируемые фс, делают лишние циклы записи, поэтому журнал нужно отключить. Загружаемся с LiveCD, отключаем журналирование:

sudo tune2fs -o journal_data_writeback /dev/mapper/isw_diggaehgjc_Volume03

Проверяем,

sudo tune2fs -l /dev/sda1

Этот метод череват тем, что можете потерять некоторые данные при неожиданном выключении системы, например если у вас неожиданно отключилось питание(мне это не грозит, поскольку у меня ещё батарея есть). Сервер же находится в дата-центре, и подключен к источнику бесперебойного питания.

Монтирование временного каталога в память

Временные файлы часто изменяются (на то они и временные ), так что если мы будем держать их в памяти, это опять же сократит число операций записи. Для этого в fstab пишем следующее:

tmpfs /tmp tmpfs defaults 0 0

Планировщик ввода-вывода

Для обычных жестких дисков по умолчанию используется логика, которая упорядочивает движение головки под диску, изменяя последовательность записываемых данных. Для SSD это не нужно, поэтому будет весьма разумно выбрать noop в качестве i/o scheduler’а. Это можно сделать выбрать непосредственно в конфиге ядра или передать опцию elevator=noop через груб на этапе загрузки ядра. Или даже через /sys. В Ubuntu 10.10 в файле /etc/default/grub добавляем параметр elevator=noop в параметры ядра.

GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash i8042.nopnp=1 elevator=noop»

Затем делаем sudo update-grub.

Отложенная запись

SSD может пребывать только в 2-х режимах — active и suspend. Когда он active — он кушает много энергии, когда в suspend — мало. Поэтому сейчас увеличиваем время нахождения SSD в suspend режиме:Добавляем параметр в /etc/sysctl.conf.

vm.laptop_mode=5<.blockquote>

Работая в таком режиме, ядро будет по возможности откладывать запись на диск, пока в этом не появится неотложная необходимость. Все буферы, требующие сброса себя на диск, будут терпеливо ожидать своей очереди. Увеличить перерыв между записями на диск можно также с помощью поднятия таймаута между сбросом «грязных» буферов (части файлов, измененные программой или пользователем, но еще не записанные на диск). По умолчанию, таймаут равняется 5 секундам, увеличим его до 150. ВНИМАНИЕ: Внезапное выключение ноутбука в этот таймаут приведет к потере незаписанных данных!Добавляем в /etc/sysctl.conf строку:

vm.dirty_writeback_centisecs = 15000

Ссылки

http://openkazan.info/Linux-SSD

http://habrahabr.ru/qa/3303/

Спасибо!

Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:

tokarchuk.ru

Настройка SSD на xubuntu linux / Мастерская интернет-разработчика

24 февраля 2012 г. Linux SSD ThinkPad xubuntu

Это вторая часть "разделенной" статьи о покупке ThinkPad и настройки SSD на xubuntu. Первая часть находится тут.

Недавно прикупил себе Intel 310 SSD и хочу рассказать о его установке и настройке более детально. В первую очередь его надо физически установить, делается это так: Service Videos, смотрите раздел "FRU Removals/Replacements" > "WWAN Adapter". Вообще на этом сайте есть всё что надо для того чтобы пересобрать ноутбук ThinkPad.

Далее, нам понадобится утилита для анализа активности работы I/O. Мне понравился iotop:

$ sudo iotop -oa

Где:

Таким образом мы получим агрегированную информацию по процессам которые активно используют наш SSD.

Сразу скажу, что я использовал Ext4 и журналирование НЕ отключал, а swap я разместил на соседнем HDD, который шёл в комплектации. Статья включающая отключение журналирования находится тут. Там же в комментариях говорится о том, что перестанет работать discard (он же TRIM), если вы отключите журналирование!

Проверить скорость работы накопителя можно так:

$ sudo hdparm -t /dev/sdb1
Настройка fstab и включение TRIM

Будем подключать наш SSD со следующими дополнительными опциями:

TRIM — команда, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных больше не используются и могут быть использованы накопителем для подготовки к записи.TRIM (команда SSD) — Википедия Вот срез из статьи Сколько проживет ваш SSD: Флэш-память SSD построена из блоков, которые в свою очередь состоят из страниц. Данные записываются в отдельные страницы блоков, при этом невозможно обновить данные, просто перезаписав старые. Более того, стереть можно только блок целиком!

Поэтому сначала нужные данные перемещаются из страниц одного блока в другой, и только затем стирается весь блок с оставшимися ненужными данными, тем самым освобождаясь для новой записи. Этот процесс называется сбором мусора (garbage collection).

TRIM – это возможность операционной системы, с помощью которой ненужные данные помечаются специальным образом. Поэтому контроллеру не нужно перемещать их, записывая в другие блоки. Это повышает скорость записи, а главное – существенно уменьшает количество циклов перезаписи.

Отредактируйте /etc/fstab до вида:

# My SSD UUID=<ВАШ_UUID> / ext4 noatime,nodiratime,discard,errors=remount-ro 0 1 # My SWAP UUID=<ВАШ_UUID_ДЛЯ_SWAP> none swap sw 0 0 # Memory FS for /tmp and /var/tmp tmpfs /tmp tmpfs defaults 0 0 tmpfs /var/tmp tmpfs defaults 0 0

swap можно вообще отключить через команду swapoff (см. также swapon и их параметры, а для полного отключения закоментируйте определение swap в /etc/fstab), если конечно вам позволяет объем вашей ОЗУ. Я бы рекомендовал именно такой подход: не хватает памяти и активно используется swap - купи памяти, а своп только на аварийный случай.

Для применения настроек необходимо перезагрузиться.

Теперь проверим работает ли TRIM

Смысл проверки в том, чтобы TRIM затёр данные на нашем накопителе, для этого надо создать файл, потом его удалить и проверить сектора данных где был расположен файл.

Создаем файл:

# cd / # dd if=/dev/urandom of=testfile count=10 bs=512k oflag=direct 10+0 records in 10+0 records out 5242880 bytes (5.2 MB) copied, 0.885252 s, 5.9 MB/s # hdparm --fibmap testfile testfile: filesystem blocksize 4096, begins at LBA 2048; assuming 512 byte sectors. byte_offset begin_LBA end_LBA sectors 0 5866496 5876735 10240

Копируем begin_LBA и вставляем в следующей команде:

# hdparm --read-sector 5866496 /dev/sdb /dev/sdb: reading sector 5866496: succeeded 0c0b a504 8ced cbd8 8f18 f667 694d 3ee0 3516 a8fc e4ae 0859 8cd5 01fe 786e 3f84 569b e0db 6aa1 89c3 e617 8ace 30fd 9a7d 5d2a 51f6 3419 77d8 060f c540 a42b 2219 cecb 2c36 12ec d875 d2ba e86a 4e99 6b89 a84c e40d bf0e aea4 dfcc 72e0 2f46 9200 c449 f8d2 34b5 7018 372c c704 6d49 6cef 8fad ed14 4e39 486c 09e9 8e67 a086 bbad b229 8d79 0be2 6bef 950e 9089 a95e b633 d1e6 8bca 01dc 0054 7302 9f38 6b93 e09a 7cff 4a08 c017 0a21 6f43 6710 31df 3392 0f8f ed46 4e4b b0d9 5415 9f5e 9d32 fe10 3423 beda bd5a 981b 0fd9 985d 16fe 3b92 79c0 7b8c a220 3bc0 1458 0645 5aa3 5ff9 bd28 8a0d f280 a3ab b3d7 ca05 4d22 312e 43ce 5f3b 9d7b d66b ba35 d257 7be1 6ecd afc8 205a 36c3 f6e1 743d df89 7373 9a95 7aea 091c 7986 58bc 169c c3dc 794d a613 157e 51ad e5fe e91b a3e1 d40c d0f2 2626 5643 3ec9 006c 68e4 947a bec7 29b4 077e c79b 9195 fd8f bb06 2cd1 6aad 5ffb 23d9 aefb 52a8 0a55 94e3 4da1 2ce3 06bc 249f a428 66b1 4530 690f c744 3a23 6237 2043 4759 d5c6 8020 2689 f0fd b046 34f8 8e0d 4c63 e760 0f0b 0264 02cc 8faf f2fa ce82 6e1e 7410 2ee7 f838 99f6 dd73 fccb 4164 3120 35e0 a388 da2c 655d c140 42bd 1569 87ab 9d83 9f75 eb7e e8d1 61ed b24f 0f09 c454 4c35 006d e831 67cd 0161 a6a6 fb25 79db b76c eeb1 21fb a15f 8756 f35b 5ffe 7111 7b58 5453 37f3 32d1 2d92 3f37 b4c5 7982 884b 1c63 8488 0f67 8f5f 2fa5 30ad

Ага, всё хорошо, данные в секторах есть, теперь удалим файл и узнаем сработает ли TRIM:

# rm testfile # sync # hdparm --read-sector 5866496 /dev/sdb /dev/sdb: reading sector 5866496: succeeded 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

Если у вас получились все нули, то TRIM работает,Если нет, то проверяйте ваш fstab и пиши комментарии, помогу.

Настройка grub

Добавьте в файл "/etc/default/grub" -> "elevator=noop". Эта опция нужна для отмены режима парковки HDD (которая включена по дефолту), так как SSD-накопителю этого не надо делать по физическим причинам, то будем отключать:

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

Для того чтобы изменения вступили в силу выполните:

$ sudo update-grub
Настройка отложенной записи на диск

Так как я не отключаю журналирование, то надо настроить систему так, чтобы она больше копила данных в буфере и скидывала на диск реже информацию. Это более экономично для времени автономной работы ноутбука (так как диск будет простаивать некоторое время) и времени жизни самого SSD. Отредактируйте "/etc/sysctl.conf" до следующего вида:

# Включаем режим vm.laptop_mode = 5 # Устанавливаем таймаут, по истечении которого будут сбросаны данные на диск (6000 == 60 секунд, по умолчанию этот параметр равен 500, т.е. 5 секунд) vm.dirty_writeback_centisecs = 6000

Насколько я понимаю, то "vm.dirty_writeback_centisecs" это одно и тоже что и "commit" в fstab, если я ошибаюсь - поправьте меня.

Для того чтобы изменения вступили в силу выполните:

$ sudo sysctl -p

Более подробно об этом и много другом в Disks and Filesystems / Tips & Tricks / LessWatts.org.

Настройка SWAP

Сам я не пользуюсь этой настройкой, о причинах я говорил уже выше, но для полноты статьи приведу всётаки. Есть настройка "vm.swappiness", в которой задается некий коэффициент, если он большой, то своп используется активно, если он маленький то будет редко использоваться, более подробно тут What Is the Linux Kernel Parameter vm.swappiness?. Отредактируйте "/etc/sysctl.conf":

# По умолчанию этот параметр равен "60" vm.swappiness = 10

Для того чтобы изменения вступили в силу выполните:

$ sudo sysctl -p
Использовать zRAM вместо SWAP

Рекомендую вообще избавится от дискового SWAP и использовать только zRAM для SWAP

Настройка FireFox

Для того чтобы увеличить жизнь SSD я решил отключить кеш браузера (только на диске, кеша в памяти это не касается), для этого заходим в "about:config" и редактируем следующие опции:

browser.cache.disk.enable -> false browser.cache.disk_cache_ssl -> false

Статистику кеша браузера можно наблюдать если войти в "about:cache", также там будут локейшены до кеша и т.д. Также доступны два параметра для этой статистики:

Что ещё почитать про SSD?

adw0rd.com

Оптимизация Ubuntu 11.10 для работы с SSD

Не так давно я наконец приобрёл себе SSD жёсткий диск. Острой нужды в нём не испытывал, но было очень интересно поиграться с ним. К сожалению, как только я его приобрёл, я сильно заболел. В итоге новенькое устройство две недели лежало без дела. Но таблетки помогли, я вновь полон сил, и собираюсь рассказать как настроить Ubuntu 11.10 для работы с SSD.

Лишние танцы с бубном нужны из за того, что у SSD куда более больший износ, чем у привычных HDD. Поэтому нужно ограничить число записей на жёсткий диск к минимуму. Я не утверждаю, что мой способ оптимизации самый лучший, но как мне показалось всё довольно таки неплохо.

Отмечу, что у меня на компьютере не только Ubuntu, но и Windows. Обе эти ОС стоят на одном SSD. Так же, помимо SSD на 60Gb, у меня установлен HDD на 1Tb.

Содержание

Установка Ubuntu 11.10 на SSD

Я решил установить Ubuntu с ноля. Стал вопрос о создании отдельных разделов. Путём чтения множества манов было выяснено, что самые частоперезаписываемые каталоги — это /home (ну это было очевидно), /tmp и /var. Можно было устроить заморочки, и настроить монтирование /tmp и /var в оперативную память. Так же были другие варианты, но я решил раз есть HDD, то и поставлю это всё на него. Так я слегка проигрываю в скорости, зато не так сильно изнашиваю SSD. Файловую систему я не трогал, так и оставил везде ext4, но слегка допилил.

Ах да. Файл подкачки я не ставил, ибо думаю, что восьми гигабайт оперативной памяти ОС хватит за глаза.

Файловая система и TRIM

Внимание! Инструкция ниже — ошибочная! Правильная технология включения TRIM описана тут: TRIM — Разгоняем SSD в Ubuntu. Добавлять discard в /etc/fstab не нужно!

Как известно, ext4 — журналируемая файловая система. Для SSD это не хорошо. Рекомендуют отключать его, но я обошёлся более простым способом, а именно — отключил запись времени обращения к файлам и папкам. Для этого открываем /etc/fstab:

Нам нужна примерно такая строчка:

1 2 # / was on /dev/sda5 during installation UUID=a189806d-eb0e-4d69-8fc6-e7e3d7eb53d7 / ext4 errors=remount-ro 0 1

Нужно добавить некоторые дополнительные опции. Я добавил noatime, nodiratime и discard.

Получилось примерно так:

1 2 # / was on /dev/sda5 during installation UUID=a189806d-eb0e-4d69-8fc6-e7e3d7eb53d7 / ext4 noatime,nodiratime,discard,errors=remount-ro 0 1

Отключаем работу с файлом подкачки

Хоть я и не делал swap раздел, я всё равно отключил работу с файлом подкачки. Так, на всякий случай. Для этого открываем файл /etc/sysctl.conf и прописываем следующий параметр:

Что бы изменения вступили в силу, нужно перезагрузить компьютер, либо ввести следующую команду:

Отложенная запись

С помощью отложенной записи ядро будет хранить данные, ожидающие записи на диск, и записывать их либо при острой необходимости, либо по истечении таймаута. Обычно время хранения ставится на 60 секунд, но можно и больше. Для этого открываем файл /etc/sysctl.conf:

sudo gedit /etc/sysctl.conf

Далее добавляем нужные параметры:

1 2 vm.laptop_mode = 5 vm.dirty_writeback_centisecs = 6000

Меняем планировщик

Для работы с SSD диском больше подходит планировщик noop. Для начала проверим какой именно планировщик у вас включен:

cat /sys/block/sda/queue/scheduler

В квадратных скобках выводится тот планировщик, что у вас установлен на данный момент. Если это не noop — исправляем. Для этого нужно отредактировать GRUB:

sudo gedit /etc/default/grub

В открывшемся файле ищем опцию GRUB_CMDLINE_LINUX_DEFAULT. По дефлоту там стоит только «quiet splash». Прописываем рядом «elevator=noop». У меня получилось следующее:

1 GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop"

Я удалил значения «quiet splash», так как не нуждаюсь в красивой картинке при запуске, а выиграть пару секунд хотелось.

После всех манипуляций не забываем обновить GRUB:

Итог

Что же я получил в итоге. Не скажу, что время на загрузку системы ощутимо уменьшилось, ибо оно и так было буквально несколько секунд. А вот программы действительно стали бегать ощутимо быстрее. Даже LibreOffice, который всегда загружался довольно долго, теперь готов к работе спустя несколько секунд после запуска.

В общем если вам важна каждая секунда — SSD ваш выбор. Если нет то можно легко обойтись, Ubuntu итак довольно быстрая система.

Открываете больницу? Тогда вам понадобится оборудование для прачечных.

kotubuntu.ru

Оптимизация SSD Flip Linux

Re overprovisioning – все, что вам нужно, чтобы убедиться, что SSD сам имеет достаточное количество блоков, которые, как он знает, не используются. Неважно, знает ли он, что: а) они не используются, потому что они находятся в нераспределенном пространстве, поэтому никогда не были написаны ОС, или б) у них были нули, написанные на них, а прошивка SSD реализует hueristics, чтобы обнаружить это и считайте их нераспределенными, или c) они были целью операции DISCARD («обрезка»). Любое (и единственное) одно из них очень желательно.

Re noatime: Я считаю, что лично меня не волнует время доступа к файлам, и никакое программное обеспечение, которое я использую, по-видимому, не заботится. Поэтому я монтирую все с «noatime». В Интернете есть неопределенные ссылки на неназванные программы, которые работают неправильно, если используется «noatime», но я никогда не видел такой программы.

Re trim / discard: вы должны периодически запускать fstrim. Неважно, как это вызывается, но важно, как часто он вызывается. Запуск при каждой загрузке, например, с использованием rc.local, вероятно, будет чрезмерным, если вы не перезагружаетесь очень редко или используете, а затем освобождаете место на диске очень часто или и то, и другое. Не монтируйте с «discard», потому что это заставляет ядро ​​выполнять операции TRIM, близкие к временным блокам, которые освобождаются, что, вероятно, является временем, когда вы, вероятно, заметите увеличение задержки, которое оно вызывает. Вы менее склонны замечать или заботиться о работе cron, работающей (предположим), 3 часа ночи. Я полагаю, что раз в месяц было бы более чем достаточно для средней рабочей нагрузки на рабочем столе или раз в неделю для рабочей нагрузки на рабочем столе с записью. Я не знаю какого-либо идеального способа узнать, когда желательно использовать fstrim, потому что детали выделения блоков обычно скрыты прошивкой накопителя. Если вы наблюдаете значительное замедление производительности привода, fstrim было бы неплохо попробовать. Если вы не заметите замедление, вам, вероятно, ничего не нужно делать.

Планировщик Re I / O – сравнивает требуемые рабочие нагрузки. Альтернативы эмпирическим доказательствам нет.

Re swap – оперативная память сейчас довольно дешевая, поэтому я и мой работодатель покупают большие объемы – не менее 16 ГБ на машину, которую я создаю для домашнего использования, и не менее 256 ГБ на работающих серверах. Для всех рабочих нагрузок на всех машинах, с которыми я сталкиваюсь как дома, так и на работе, все удобно размещается в ОЗУ, и у них достаточно места для хранения кеша. Таким образом, я отключу своп дома и на работе. Кроме того, использование swap приведет к снижению производительности, которое было бы неприемлемым как для меня, так и для наших пользователей, и поэтому я заставил бы меня или моего работодателя срочно пойти и купить еще больше ОЗУ. Поэтому я никогда не хочу использовать swap – он пытается скрыть проблему нехватки памяти, которую я бы скорее решил. Я не могу прокомментировать вашу позицию. Я думаю, это может быть похоже.

Наконец, я отключу или даже удалю многие службы, которые установлены и включены по умолчанию в популярных дистрибутивах Linux. Это экономит некоторую виртуальную память, но, возможно, что более важно, она «затвердевает» от атаки. Если это делается религиозно, в ОЗУ должно быть мало ничего, что можно было бы поменять на диск, не жертвуя производительностью.

fliplinux.com


Prostoy-Site | Все права защищены © 2018 | Карта сайта