LINUX.ORG.RU

Тормоза Knoppix при работе с флэшки

 , , ,


1

1

Поставил на флэшку Knoppix (7.7.1, 8.2.0) — а он тормозит не по-детски, флэшку не попускает, моргает глазом почти беспрерывно, проц в это время загружен под завязку. Когда попускается — всё летает, но поскольку практически любое телодвижение вроде открытия новой вкладки браузера вызывает обращение к диску, то делать что-то очень тягостно. Это как-то решаемо, оптимизируемо? Куда копать, чего курить?

Сам весьма закоренелый виндузятник — не от большой любви, а от закоренелой привычки, но время от времени случаются приступы попыток подружиться с пингвином. Тем паче повод есть хороший — с интернет-банкингом как-то играть в азартные мастдаевские игры «антивирь не заметила очередной троян» сильно неохота, поэтому хожу сугубо с изолированных систем. Сперва пробовал виндовые лайвы типа Ieshua — хорошо, приятно, но поскольку хочется не только в режиме «только чтение», то вероятность подцепить — и сохранить на флэшке — пакость остаётся и там. Посему без вариантов взгляд упал в сторону Linux. Пробовал что-то время от времени — не вдохновляло, то набор софта какой-то странный, то банально на моём железе толком не стартовало, в конце-концов Porteus вроде глянулся — пока он был как бы самосборным, но чё-то всё равно не то. Решился наконец на Knoppix — а понравилось, из коробки приличный фарш — всё что для моих целей надо, и с железом никаких проблем — влёт всё определяет, не падает, не ругается, всё находит. Но не в последнюю очередь потому что он рекламируется настойчиво как система именно для флэшек.

С DVD всё летает, несмотря на то что всё время что-то подгружает и не самую, прямо скажем, большую скорость доступа у этого типа девайсов. Ну а обещание, что с флэшки будет грузиться в 5 раз быстрее — так и вовсе вдохновляло и рисовало радужные перспективы. Ну да, грузится быстрее. Зато процесс работы в самой системе несколько… ммм… утомителен.

Я так глядел на это дело и меня стала посещать мысль, что оно не просто так обращается, а активно пишет, причём медленно. Под виндой скорость записи падает на порядки когда копируешь множество мелких файлов. Да и, думаю, в любой системе. Нет, ну я понимаю, что тут оверлей и оно туда пихает. Но не так же, что вообще не попускаться! Посмотрел, как там этот оверлей смонтирован — Riserfs, читаю вики что за зверь — написано «журналируемая файловая система». Тут меня всякие смутные подозрения начали брать, что при таких раскладах это не только тормоза, но и быстрая хана флэшке. Стал искать, как это дело победить — но конкретно по Knoppix'у что-то не нашёл, хотя вообще тема «тормоза при загрузке с флэшки» не нова. Но советы по этой теме дают обычно по системам, просто стандартно инсталлированным на флэшку как жёсткий диск, а тут, я так понимаю, несколько иной подход к оптимизации нужен, поскольку есть неизменяемый имидж с фаршем и надо то ли его самого менять, то ли настройки поверх него, специфичные для Knoppix'а. Поэтому нужен совет именно кноппиксовода.


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

Так вот, LiveCD / LiveUSB, в первую очеред LiveCD системы устроены так:
есть squashfs образ настроенной Linux системы, это своего рода архив, в котором находятся сжатые некоторым способом файлы корневой файловой системы Linux;
во время запуска стартовые сценарии в initramfs монтируют этот squashfs образ куда-либо, т.к. он доступен только на чтение, то для записи нужна некоторая файловая система;
т.к. Live системы исторически запускались с CD / DVD диска, т.е. носителя, доступного только на чтение, то файловые системы доступные на запись создавались в оперативной памяти, например tmpfs;
далее файловые системы, доступные на чтение и доступная на запись монтируются каскадно, создавая новую виртуальную файловую систему, при обращении к которой данные записываются на файловую систему, куда можно писать, а считываются с обоих файловых систем, в зависимости от уже имеющися изменений;
т.е. если файл ещё не изменялся, то он будет считываться из squashfs образа, а если есть его изменённая версия, то он будет считываться из файловой системы, доступной на запись.

Так вот когда knoppix запускается с CD/DVD диска файловая система для записи создаётся в оперативной памяти и поэтому всё работает быстро.

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

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

Эта технология называется persistent.

Возможно, надо применять другую файловую систему в файле образе для сохранения изменений.

Но вообще, странно, на всех относительно современных компьютерах Live системы с сохранением изменений на флешку в файл работали довольно быстро.

Применение squashfs образов со сжатой файловой системой минимизирует операции чтения с медленного накопителя.

Если у тебя всё тормозит, ну либо у тебя медленная флешка, смени её. Либо у тебя слишком слабое и плохое оборудование компьютера. Меняй компьютер.

Попробуй другой Live дистрибутив.

Удачи.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Железо как железо — не новое, но не прошлый век — Athlon II X2 250, флэшка — Transcend Jetflash 16 Gb, пишет 8-9 мб/с на длинных файлах, читает — 20-21 мб/с, ничего особо выходящего за пределы.

А файловую систему Кноппикс меня как-то не спрашивает какую применять — у него фирменная гуёвая утилита для установки, в которой всего три опции.

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

меня как-то не спрашивает какую применять

Это можно переделать руками.

Попробуй не создавать никакую, проверишь есть тормоза или нет.

пишет 8-9 мб/с на длинных файлах, читает — 20-21 мб/с, ничего особо выходящего за пределы.

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

Скорее всего, если у тебя там KDE или что там в качестве оболочки, работает какая-то программа, которая периодически записывает / считывает данные с флешки. Например в KDE есть kworker, у него есть своя база данных, что он делает я не помню, ибо не так уж много пользовался KDE, но он точно может грузить процессор и занимать дисковую активность, отключ его.

Есть команда iotop, которая позволит увидеть кто использует диск.

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

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

iotop
какие программы пишут / читают диск.

Скорее всего, это что-то от запущенной оболочки, но возможно и какой-то сервис.

Ибо в Linux нет особо каких-то фоновых процессов, нужных для работы системы.

Когда определишь название процесса погугли что это, можно ли отключить и как.

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

Любопытно: если сперва устанавливать систему в режиме только для чтения, а потом уже добавить возможность сохранения юзерских данных читкодом mkimage во время загрузки, то этот файл форматируется не в riserfs, а в ext2. И бегает несколько шустрее. Хотя всё равно пилит и подтормаживает.

iotop показывает, что пишут в основном kworker, chromium и loop0, время от времени выскакивает активность и каких-то других процессов.

Choo ()
Ответ на: комментарий от kostik87

А как? Беглый гуглопоиск говорит, что это процесс ядра, его нельзя отключить.

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

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

Беглый гуглопоиск говорит, что это процесс ядра, его нельзя отключить.

ТЬФУ, ну да, значит попутал, видимо никак, пробуй оптимизировать.

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

ХЗ, попробуй написать какой-нибудь скрипт.

kostik87 ★★★★★ ()