В моем опыте почти двух лет регулярного использования настольной системы на флэш-накопителе несколько лет назад самой сложной задачей было снижение скорости чтения и записи, в то время как с потерей данных не было никаких реальных проблем. Тем не менее, износ устройства, конечно, является проблемой для твердотельных носителей, особенно если вы стремитесь к более длительному использованию, чем я. Существует ряд настроек, связанных с файловой системой, которые можно использовать для ускорения работы при запуске системы с флэш-накопителя. Многие из них также полезны для продления срока службы флэш-накопителей, поскольку частые записи в конечном итоге приводят к сбою.
- Отключите запись временных меток доступа , включив
noatime
mount для соответствующих устройств в /etc/fstab
- Измените планировщик ввода-вывода по умолчанию на
noop
(использование планировщиков ввода-вывода, предназначенных для оптимизации записи на вращающиеся жесткие диски, не будет хорошо работать с флэш-дисками и часто приводит к зависанию приложений при записи больших файлов на диск). Чтобы внести изменения, включите следующую строку в файл /etc/rc.local
(где <device>
- это имя вашего usb-устройства, т.е. sdb
):
echo noop > /sys/block/<device>/queue/scheduler
- Используйте виртуальный диск для хранения временных данных, если у вас достаточно оперативной памяти. Добавьте следующие строки в
/etc/fstab
:
tmpfs /tmp tmpfs defaults,noatime,nosuid,mode=1777 0 0
tmpfs /run tmpfs defaults,noatime,nosuid,mode=1777 0 0
Вы также можете добавить виртуальный диск для /var/run
и /var/tmp
. Однако убедитесь, что /var/run
не реализован как программная ссылка для run
первую очередь. Что касается /var/tmp
, помните, что перемещение этого на виртуальный диск может нарушить ожидаемое поведение некоторых программ. Из стандарта иерархии файловой системы 3.0:
Файлы и каталоги, расположенные в /var /tmp, не должны удаляться при загрузке системы. Хотя данные, хранящиеся в /var /tmp, обычно удаляются в зависимости от сайта, рекомендуется, чтобы удаление происходило с меньшим интервалом, чем /tmp.
Поместите кэш браузера и другие временные хранилища данных, которые часто записывают, на виртуальный диск . Т.е. для firefox откройте about:config
, создайте новую строку browser.cache.disk.parent_directory
и установите ее значение в /tmp
.
- Попробуйте временно синхронизировать
/var/log/
с ram и синхронизировать его с физическим диском перед выключением . Лог-файлы часто записываются в и только синхронизируют их с физическим хранилищем один раз в конце сеанса, что уменьшает износ диска. Один из способов реализации такого решения обсуждается в этой статье на debian-administration.org , другой - что-нибудь-sync-daemon (я не тестировал ни одно из этих решений, но, судя по статье / документам, они оба кажутся мне разумными). Другой альтернативой может быть передача данных журнала на другой диск или сервер журналов. Я не рекомендую просто отбрасывать logdata на виртуальном диске в конце сеанса, потому что это уменьшит возможности анализа ошибок и сделает невозможным отслеживание возможных нарушений безопасности. Однако, если вы примете обоснованное решение пойти по этому пути, имейте в виду, что вам может потребоваться написать сценарий инициализации для воссоздания определенных каталогов, если некоторые службы жалуются, что ожидают их.
- Оптимизировать использование свопа . Если у вас есть много памяти, вы можете быть в порядке, без какого-либо обмена (в зависимости от того, как вы используете систему), и в основном для регулярного / офисного использования есть множество сообщений, что это не является проблемой даже в долгосрочной перспективе. в системе с 8-16 ГБ. Однако многие люди предпочитают использовать пространство подкачки в качестве запасного варианта. В этом случае вы должны сказать ОС, чтобы своп использования или свопинга был минимальным. Добавьте следующую строку в
/etc/sysctl.conf
:
vm.swappiness=10
- Отключите ведение журнала файловой системы. Хотя это означает потерю параметров быстрого восстановления в случае сбоя системы или потери данных, это сокращает дополнительные записи и накладные расходы. Чтобы удалить журнал из файловой системы ext3/4, введите
sudo tune2fs -O ^has_journal <device>
(где <device>
- имя соответствующего раздела, т.е. sdb1
). Подумайте об использовании ext2, который в прошлый раз, когда я проверял, по-прежнему имел лучшие результаты в тестах ввода /вывода и, хотя и не регистрировался, все же является надежной системой в моем опыте. Недостаток: проверка согласованности может быть длительной. Кроме того, в каталогах с большим количеством файлов вы заметите заметное снижение производительности из-за отсутствия индексации каталогов. Если у вас их много, я бы пошел на ext4 без журнала.
Убедитесь, что вы знакомы с командами и параметрами, прежде чем вносить какие-либо изменения. Как я уже сказал, для начала: исходя из моего опыта, можно довольно долго успешно работать с системой на флэш-накопителе (если вы можете набраться терпения при загрузке или запуске отдельных программ). А с 16 ГБ и, возможно, USB3 вы будете особенно хорошо оснащены для бега. Но с настройками системы, которые отличаются от стандартного способа ведения дел, полезно знать, что вы на самом деле сделали, если столкнетесь с непредвиденным поведением или проблемами.
Спасибо maxpolk за указание на то, что целесообразно также перемещать (/var)/run и /var /log для уменьшения износа.