Очень низкая производительность передачи файлов

Совсем недавно моя система действительно изо всех сил пыталась переместить большие объемы данных (иногда несколько больших файлов, иногда много маленьких). Проблема возникает, когда файлы переносятся с моего жесткого диска на внешнюю систему, либо на подключенный сетевой ресурс, либо на внешний USB. Сетевой ресурс и USB испытывали те же симптомы, но я не уверен, что они обязательно связаны.

Самым недавним примером были моменты, когда я пытался переместить папку общим объемом 1,9 ГБ со своего жесткого диска на USB-накопитель через Nautilus copy & amp; вставить. К тому времени, когда индикатор выполнения открылся, операция была выполнена примерно на 1/3, сообщив, что было передано 600 МБ. Скорость передачи в это время составляла 29 МБ / с, и она быстро снижалась. Он вырос с 29 МБ / с до 20 МБ / с за несколько секунд, с 20 до 10 примерно за 10 секунд и в итоге достиг дна на 6 МБ. Был также период около 30 секунд, когда вся операция, казалось, застопорилась, как, например, обновления не отображались в окне прогресса. Такая операция должна занять всего несколько секунд, а в итоге - около 3 минут.

Вчера я пытался переместить эту же папку в общий сетевой ресурс и испытал похожие симптомы. Потребовалось около 30 секунд, чтобы индикатор выполнения прошел половину пути, а затем все прекратилось. Сетевой монитор показал плоскую линию 0 байт / с.

У меня в машине новый SSD, поэтому я не думаю, что это узкое место.

Какие вещи я должен проверить, чтобы отследить корень этой проблемы?

Использование Ubuntu 12.10. Файлы, которые я пытался переместить, находились в моей домашней папке, в которой используется encryptfs.

2
задан 15 May 2013 в 23:41

1 ответ

«Какие вещи я должен проверить, чтобы отследить корень этой проблемы?»

Вам нужно взглянуть на то, что является общим для обоих переводов. Вы передавали один и тот же файл? Может ли этот файл быть создан? Вы были вне оперативной памяти для кэширования файлов? Как работал ваш процессор?

Шифрование раздела обычно имеет такой побочный эффект. Помните, что для передачи вашего файла вы должны декодировать его локально, а затем передать его по назначению. Это прозрачно для программы копирования / вызовов, но это все еще необходимо сделать. Если вы пытаетесь передать огромные файлы, память, в которой хранятся временные расшифрованные копии файла (часть файла), может быть переполнена.

Проверьте вашу свободную память во время передачи, используя free -m или просто free, и посмотрите, что, по ее словам, доступно для буферов и кеша.

Также имейте в виду, что Linux кэширует файловые операции. То есть, если пользовательский процесс считает, что данные были скопированы, это еще не значит, что на физические носители что-то записано. Это приводит к тому, что меньшие файлы пишутся действительно «быстро», но большие файлы имеют «всплеск» скорости, тогда когда заполнение кеша замедляется. Обычно это не так заметно, но если ваши кеши заполнены, или у вас мало свободной памяти (для новых кешей), или ваш ЦП недостаточно загружен (очень часто, когда люди шифруют вещи), тогда это займет больше времени.

0
ответ дан 15 May 2013 в 23:41

Другие вопросы по тегам:

Похожие вопросы: