У меня действительно странная ситуация здесь. Мой компьютер работает нормально, по крайней мере, в большинстве случаев, но есть одна вещь, с которой я не могу справиться. Когда я пытаюсь скопировать файл с моего pendrive, все в порядке - у меня скорость 16-19M / s, это работает довольно хорошо. Но когда я пытаюсь скопировать что-либо в тот же Pendrive, мой компьютер зависает. Указатель мыши перестает двигаться на секунду или две, затем немного перемещается и снова останавливается. Когда что-то играет, например, в Amarok, звук действует как пулемет. Скорость прыгает с 500К / с до 15М / с, в среднем 8М / с. Это происходит только тогда, когда я копирую что-то в Pendrive. Когда процесс копирования завершен, все возвращается на круги своя.
Я перепробовал все - другой Pendrive, другой USB-порт на передней панели или эти порты сзади, я даже поменял USB-контакты на материнской плате (лицевая панель), но независимо от того, куда я кладу флешку, она всегда одинакова. Я попробовал другую файловую систему , - fat32
, ext4
. У меня нет проблем с устройством на Windows, на моем ноутбуке. Это должен быть мой компьютер или что-то в моей системе. Я понятия не имею, что искать. Я использую тестирование Debian с автономным Openbox. Мой компьютер довольно старый - Pentium D 3 ГГц, 1 ГБ ОЗУ, 1,5 ТБ WD Green диск. Если у вас есть что-то, что поможет мне решить эту проблему, я буду рад это услышать.
Я не знаю, какую еще информацию я должен предоставить, но если вам что-то нужно, просто спросите, я обновлю этот пост как можно скорее.
Я пытался воспроизвести эту проблему на Ubuntu 13.04 Live CD. Я установил свой зашифрованный раздел + зашифрованный своп и подключил мой Pendrive к USB-порту. Затем я попытался запустить некоторые приложения, и теперь у меня ~ 820 МБ в ОЗУ и около 400 МБ в SWAP. Там нет проблем с копированием, нет замораживания вообще, все так, как и должно быть. Итак, похоже, что это вина системы, но где именно? Что вызвало бы такое странное поведение?
ionice -c3 cp something.tgz /media/pendrive
. Это поместит вновь порожденныйcp
процесс в третий (= самый низкий) класс приоритета «idle».Ответы:
Используете ли вы 64-разрядную версию Linux с большим объемом памяти? В этом случае проблема может заключаться в том, что Linux может на несколько минут заблокировать большие записи на медленных устройствах, таких как, например, SD-карты или USB-накопители. Это известная ошибка, которая должна быть исправлена в более новых ядрах.
Смотрите http://lwn.net/Articles/572911/
Обходной путь: как корневая проблема:
Я добавил его в мой
/etc/rc.local
файл на моих 64-битных компьютерах.TANSTAAFL ; это изменение может (и, вероятно, уменьшит) пропускную способность этих устройств - это компромисс между задержкой и скоростью. Вернуться к предыдущему поведению вы можете
... которые являются значениями по умолчанию, что означает, что поведение при обратной записи будет контролироваться параметрами
dirty_ratio
иdirty_background_ratio
.Примечание для не очень опытных людей с linux: файлы
/proc
- это псевдофайлы - просто каналы связи между ядром и пользовательским пространством. Никогда не используйте редактор, чтобы изменить или посмотреть на них; вместо этого получите приглашение оболочки --- например, сsudo -i
(разновидности Ubuntu) илиsu root
и используйтеecho
иcat
).Обновление 2016/04/18 кажется, что, в конце концов, проблема все еще здесь. Вы можете посмотреть на это на LWN.net , в этой статье об очередях обратной записи .
источник
uname -a
возвращается3.13.0-32-generic
, так что да. Но я не проверял, был ли патч для проблемы, наконец, интегрирован в ядро или нет. У меня есть машина на 16 ГБ, и, кажется, она работает нормально без обходного пути, хотя я должен сказать, что я не пробовал с особенно медленными устройствами.vim
когда - либо . Получить корневую оболочку (сsudo -i
) и использовать вышеупомянутые команды.Причиной может быть усиление записи, поскольку система пытается записать фрагментами, которые меньше, чем блок стирания (выполняется чтение / мод / запись) + смещение блока.
Чтобы проверить ваши текущие настройки, выполните:
Вы можете настроить правила зала для этих устройств:
В этом случае я заменил max_sectors для всех устройств, которые использовали значение по умолчанию от 240 (USB-накопитель) до 32K секторов или 2K секторов.
В моей системе (Mageia 4, 3.14.24 core i7) я должен был сделать это из-за ужасно низкой скорости записи (2 МБ / с) на Kingston DT101 G2 16 ГБ:
и добавить:
И
dd
скорость записи выросла в 3 раза.mc
cp
вероятно, в 10-20 раз (после того, как я запустил первый сектор на 8192-м секторе и переформатировал с кластерами, выровненными по 64 тыс.):чтобы проверить выравнивание (проверьте, что [начальный сектор данных] должен быть кратным 128 (размер кластера)). Отрегулируйте количество зарезервированных секторов (-R), если необходимо.
По умолчанию max_sectors (240), по-видимому, вызывают сильное усиление записи на некоторых дешевых новых накопителях. Но будьте очень осторожны с такими высокими настройками, подобный эффект достигается в 2048 секторах (вероятно, 1M стереть блоки:
Проверьте все ваши старые USB-устройства, чтобы они все еще работали хорошо. Используйте атрибуты vendor / model в файлах правил, чтобы быть более конкретными.
источник
аппаратное и программное обеспечение
Я столкнулся со странной проблемой, похожей на эту, с USB-накопителями, и в моих исследованиях это почти всегда проблема с драйверами или с конкретным оборудованием в ПК / материнской плате.
Я знаю это, потому что у меня есть несколько систем с одинаковым оборудованием, и на одной я могу выполнить эту операцию без проблем, в то время как на другой проблема проявляется.
Что делать?
Ваши варианты действительно ограничены здесь. Единственное, что вы можете сделать, - это убедиться, что в вашей системе установлена последняя версия BIOS / прошивки, и что у вас есть последние версии пакетов вашего disto.
Кроме того, все, что я могу предложить, это убедиться, что вы избежите этой ситуации, не пытаясь копировать файлы, пока идет другая копия.
Если у вас такой тип личности, когда подобные вещи вас раздражают, вы можете попробовать другой дистрибутив Linux и повторить шаги, которые приведут к вашей проблеме. Это просто устранило бы проблему, связанную с дистрибутивом, или проблему с оборудованием, как я описал выше. Это было бы небольшим утешением, но я всегда хотел бы знать вещи, а не зарывать голову в песок, и нет.
Что-нибудь еще?
Если вы действительно одержимы, вы можете попробовать запустить приложение, с которым вы копируете,
strace
в надежде поймать систему при любом зависании системного вызова. Вы должны быть в состоянии сделать это и из командной строки.пример
Затем, пока он работает, начните еще один.
Надеемся, что система зависнет во время этой операции, и, возможно, вам повезет, и вы обнаружите дым в любом из этих файлов журнала.
источник
strace
и он почти мгновенно остановился, поэтому подождал несколько секунд и остановил процесс. У меня есть журнал 1Mb, но я не могу его прочитать, я не знаю, что искать. Вы можете проверить это здесь pastebin.com/u29RvqgC - это не полный журнал (ограничен 500Kb), но в конце были только строки, подобные тем, что были в конце. Я постараюсь воспроизвести эту проблему с Ubuntu Live CD.