LINUX.ORG.RU

Linux на(on) sd карте

 ,


0

1

Попытался установить liux на sd карту.Все прошло успешно(кроме маленьких косяков с зависанием). Я удивился в возможностях linux(ибо windows я не смог установить),но при работе на Linux mint, он частично подлагивал,что конечно не радовало. Из этого хотел спросить, кто занимался тоже таким сумасбродством и будет ли sd карта умирать после этого(я слышал, что os на sd уничтожает её).

линухе до лампочки носитель. главное штоп дрова были.
винде в принципе также.
карту сд как любой флеш-накопитель убивают частые записи (все они отличаются лишь интерфейсом обмена данными с драйвером носителя). убери к примеру /var/log с нее и будет жизнь чутка длиннеее

pfg ★★★★★
()

Да, SD карта от такого будет умирать. Лучше вынести swap в zram, отключить журнал в ext4 можно и прочее…

Но если ты боишься, что умрет за пару дней — это не так. И несколько месяцев вытянет. Вот потом уже без гарантий.

Если у тебя не промышленная SD карта, но они дорогие.

Vsevolod-linuxoid ★★★★★
()

частично подлагивал

Это неизбежность при работе с «простых» хранилищ вроде SD карт и USB Flash накопителей. В них слишком простые контроллеры.

Из-за того что nand-flash нельзя перезаписывать в произвольном порядке, контроллерам приходится делать вид, что произвольная запись возможна, поддерживая карту соответствия. Карты соответствия бывают двух видов: грубые, которые отображают целыми сегменты стирания (от 2 до 8 мегабайт) целиком, и подробные, которые отображают отдельные секторы (512 байт) внутри сегментов стирания. Подробные карты соответствия обычно поддерживаются для одного-четырёх сегментов стирания. Пока хост пишет в эти активные сегменты, запись линеаризуется. Когда сегмент заполняется, подробная карта соответствия схлопывается, данные перезаписываются в другой сегмент, обновляется грубая карта.

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

Проблемы начинаются, когда запись происходит сразу во много разных мест. Контроллер не может поддерживать больше своего лимита открытых сегментов, поэтому когда нужно писать в новый, какой-то из старых нужно закрыть. Для этого нужно скомбинировать старые данные и новозаписанные данные, переписав их в свежий сегмент. Поэтому случайная запись даже четырёх килобайт превращается в запись целого сегмента стирания, а это от 2 до 8 мегабайт. Отсюда возникают тормоза и повышенный износ флеша.

i-rinat ★★★★★
()
Ответ на: комментарий от agentgoblin

Потому что zram сжимает неиспользуемые в настоящий момент данные, а без него они лежат в RAM как есть.

То есть zram увеличивает доступное количество RAM для данных, что нужны в данный момент. И потому oom-killer придет несколько позже.

И да, выключать swap — глупо, в большинстве случаев: https://unix.stackexchange.com/questions/190398/do-i-need-swap-space-if-i-have-more-than-enough-amount-of-ram/190521#190521

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от agentgoblin

Когда собрал себе комп с 16 гб озу, то не создал своп ибо нахрена, если памяти вагон. А потом при компиляции llvm словил зависание из-за израсходывания всего озу.

Сейчас у меня 64 гб озу и 20 гб своп.

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

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Я себе earlyoom настроил и забыл про зависания там, где своп не нужен. Если памяти нет - её нет. Да и там, где своп есть - то же самое.

На десктопе своп 2Гб и от зависаний это в принципе не помогает - если забилось, что всё тормозит так, что сделать ничего невозможно. От труЪ-зависания ничем не отличается. Причём oomkiller может не прийти - тупо не запустится из-за нехватки памяти, лол. В итоге сиди жди полчаса консоль, чтобы может быть что-то толстое кильнуть.

Могу, конечно, сделать 20Гб, но не вижу, чем мне это сможет помочь.

agentgoblin
()

Настрой sysctl vm.dirty* чтобы квоты записи диска в озу могли вмещать больше до блокировки приложений.
https://www.kernel.org/doc/html/latest/admin-guide/sysctl/vm.html#dirty-bytes
Для тяжелых на запись приложений можно использовать лимит, чтобы они не блокировали остальные приложения при исчерпании квоты.
У кардридера sd нужно задействовать dma.

naKovoNapalBaran
()
Последнее исправление: naKovoNapalBaran (всего исправлений: 1)

Плюсую за f2fs если ее выровнять по блокам стирания и группам распределения, то на sata ssd у меня не проседает скорость совсем.
Но может получиться что кардидер умеет лишь SDR12 12,5MB тогда как не оптимизируй фс и карту не выбирай, интерфейс быстрее не станет.

naKovoNapalBaran
()