Предыстория такая: я заменил raspbery pi 1B на Rpi 3. 10-и кратный прирост производительности не слишком далёк от правды. Даже тактовая производительность ядра выросла раза в 2. Этого будет вполне достаточно для большинства моих повседневных задач, так что надо делать! И всё было бы легко и просто, но хорошую SD-каротчку заменили на microSD, а я ещё не встречал microSD, которые быстро и отзывчиво работают в случае одновременного чтения и записи в несколько потоков.
Тормоза, подвисания всего до 10 секунд меня не удивили. Вынес корень системы на отдельную флешку (usb2, 8Gb, kingston, больше про неё ничего не известно), ФС ext4 с отключенным журналом, убил управление памятью через cgrops (косяк systemd), вынес своп на hdd и настроил swappines. Переключил i/o шедулер на noop. Полёт нормальный, примерно то, чего можно ожидать от старичков вроде пеньтиум М+ 512М оперативки.
Но флешка маленькая, поэтому купил дешёвый transced 32Gb, usb2, и поставил корнем. Настройки полностью аналогично предыдущему варианту. В случае одновременной записи и чтения на неё вся система начинает виснуть. Проявляется как полое отсутствие реакции на мышь, клавиатуру и остановку обновления интерфейса (все приложения), в Х-сервере, в консоли и в сессиях ssh. Если воспроизводится звук, то обычно продолжает играть, до исчерпания кеша. Пинг и транзитный трафик проходит. После завершения дисковой операции работа возобновляется, события ввода обрабатываются. Среднее время подвисания 3-5сек, в самом тяжёлом случае система не отвечала ни на что в течении 1,5 часа.
Я предположил, что дело в том, что дешёвая флешка работает корнем и какие то жутко важные, низкоуровневые операции ввода-вывода стопорят всю систему. Решил собрать тест для флешек чтобы найти и купить нормальную, быструю. Собственно тест: флешка формаируется в ext4, с неё воспроизводится видео битрайта 20 Мбайт/с, на неё копируется папка музыки и на ней располагается своп-файл гимпа, который в это время совершает преобразование полотна на 0,4 Гпикселя. Тестирование провожу на ноутбуке (gentoo, самосборное ядро, openRC вместо systemd, однозначно достаточное питание на портах).
Результат немного неожиданный: имею примерно такие же фризы всего кроме сети и звука, разве что 0-2 сек, но возникают часто или очень часто. И такая дисковая активность обычно заканчивается каким то сбоем ФС, кучей сообщений dmesg по поводу невозможности прочитать или записать блок и автоматическим перемонтированием в ro. Особенно странно, что ни одна программа, работающая с флешкой, не должна ставить раком весь рабочий стол, Х-сервер и чёрт ещё знает что.
P.S. Тот же тест, но над 64Gb SD на шине usb фризов не даёт, ошибок fs пока не замечено. Как и винда на «плохой» флешке - работает отзывчиво.