При проигрывании вокруг я заставил это работать:
mv foo/bar/poit/zoid/narf.txt
Хит входит
сохранить последний параметр.
Теперь используйте ↑ для получения в последний раз введенными в строке назад. Введите пространство и получить последнее используемое использование параметра:
Высокий звук +.
Я очень не хочу вызвать ошибку, но это сделало задание в этом варианте использования.
%CPU должен быть низким во время копии. ЦП говорит дисковый контроллер "данные захвата из секторов X–Y в буфер памяти в Z". Затем это идет и делает что-то еще (или сон, если нет ничего иного). Аппаратные средства инициировали прерывание, когда данные находятся в памяти. Затем ЦП должен скопировать его несколько раз и говорит сетевую плату "пакеты передачи в ячейках памяти A, B, и C". Затем это возвращается к выполнению чего-то еще.
Вы продвигаете ~240mbps. На гигабитной LAN необходимо смочь сделать по крайней мере 800 Мбит/с, но:
Для того, чтобы разыскать узкое место, iostat -kx 10
будет полезной командой. Это покажет Вам использование на Ваших локальных жестких дисках. Если можно выполнить это на файловом сервере, он скажет Вам, насколько занятый файловый сервер.
Общее решение будет для ускорения того узкого места, для которого, конечно, у Вас нет бюджета. Но, существует несколько особых случаев, где можно найти более быстрый подход:
lzop
или возможно gzip --fastest
.rsync
действительно не поможет здесь, поскольку это должно будет считать файл с обеих сторон для нахождения дельты. Вместо этого Вам нужно что-то, что отслеживает дельту, поскольку Вы изменяете файл... Большинство подходов здесь является определенным для приложения. Но его возможное, что Вы могли подстроить что-то с, например, картопостроитель устройства (см. совершенно новую цель dm-эры), или btrfs.И, так как Вы отмечаете, что Вы не системный администратор, я предполагаю, что означает, что у Вас есть системный администратор. Или по крайней мере кто-то ответственный за файловый сервер и сеть. Необходимо, вероятно, спросить him/her/them, они должны быть намного более знакомы со специфическими особенностями установки. Ваш системный администратор (администраторы) должен, по крайней мере, смочь сказать Вам, какую скорость передачи можно обоснованно ожидать.
Это могло, возможно, быть более быстрой альтернативой, и Вы не забьете сеть в течение двух дней: Возьмите один или два больших USB (USB 3, если у Вас есть он), или диски FireWire, подключите его к серверу и скопируйте файлы в диск. Несите диск к своей локальной машине. Скопируйте файлы в машину.
Ваше определение эффективных назад. Более эффективное внедрение тратит впустую меньше процессорного времени. На локальной копии Вы насчитываете приблизительно 74 МБ/с пропускной способности (чтение + запись), который почти так хорош, как единственный жесткий диск собирается добраться.
Если у Вас есть прямой SSH (или SFTP) доступ (спросите своего системного администратора), можно использовать scp
со сжатием (-C
):
scp -C you@server:/path/to/yourfile .
Конечно, это только полезно, если файл сжимаем, и это будет использовать больше процессорного времени, так как он будет использовать шифрование (потому что это по SSH), и сжатие.
-c none
, но это, кажется, нестандартно.
– Brendan Long
18.06.2013, 05:32
ssh
в и распаковка это..
– Brendan Long
18.06.2013, 18:47
cp
реализация наиболее вероятна не узкое место. Попытайтесь наблюдать использование IO через iotop
и на сервере и на кластерном узле. Это даст Вам общее представление, где можно улучшить производительность.
Другая подсказка, должен постараться не копировать те же данные из того же хоста. Например, если Вы будете иметь идентичный 20G файл для распределения от файлового сервера по сети ко всем кластерным узлам, то это будет работать намного быстрее к тому, если Вы скопируете файлы одноранговым способом, а не one-server-to-all-clients. Это - бит, более сложный для реализации, но можно даже попытаться использовать некоторую командную строку p2p как прямой концентратор подключения.
Если в этом 20G файлы, некоторая часть обще, и некоторые - кластерный конкретный узел, рассматривают разделение ее в общие, и определенные части и затем распределяют общую часть p2p способом.
Природа / содержание тех файлов может иметь некоторое значение. Я понял, что необходимо скопировать 200 файлов, ~20 ГБ, которые каждый, от одного компьютера до другого, то, что это?
Если те файлы сжимаемы или с подобным / идентичные части, у Вас есть два подхода:
архивируйте их перед копированием или создайте туннель между компьютерами с zip, включают на нем. Так, если сеть будет узким местом, то это будет немного быстрее
если файлы очень похожи, или совместно используют некоторые части общего содержания среди них, попытайтесь использовать rsync. Это проведет некоторое время, находя то, что распространено среди файлов и не должно будет копировать его буквально, потому что это восстановит его на основе того, что распространено.
править
Необходимо ли будет много раз копировать те файлы?? (как копия-> используют те файлы->, изменяют что-то в файлах в компьютере-> файлы копии снова к компьютеру B)
Если так, rsync будет полезен, потому что он попытается обнаружить то, что равно среди версий, и не копируйте то, что неизменно.
И третий метод: если вышеупомянутое корректно (изменения в файле, то скопируйте все файлы снова во второй компьютер), Вы могли попробовать некоторых binary diff
просто изменить во втором компьютере, что было изменено в первом компьютере.
Я вижу следующее здесь, шифрование не является хорошей идеей, поскольку оно могло бы возможно УВЕЛИЧИТЬ объем данных, который будет передан.
Если Вы копируете между двумя системами, то узкое место является, конечно, соединением между серверами.
Если Вы копируете локально, посмотрите на то, как процесс идет, это является ЕДИНСТВЕННЫМ, распараллелил, таким образом стандартное использование утилит Linux:
- for all blocks in a file
read a block
write a block
Нет НИКАКОГО параллелизма к этой операции.
К вещам скорости можно использовать что-то вроде этого:
buffer -i infile -o outfile -m size-of-shared-memory-default-1MByte
Посмотрите буфер (1) страница справочника для получения дополнительной информации.
Буферные наборы команд два процесса для выполнения процесса копии одновременно: один для чтения и другого для записи, и это использует буфер общей памяти для передавания данных между двумя процессами. Буфер общей памяти является Вашим классическим кольцевым буфером, который предотвращает перезапись незаписанных данных и запись данных, уже записанных. Я использовал эту программу для отключения приблизительно 10-20% времени копии в передачах от диска для записи на ленту.
Почему бы не попробовать алгоритм распространения P2P, если необходимо обновить весь кластер одновременно?
https://github.com/lg/murder - то, что использует Твиттер
Существует BTSync, который можно попробовать также.
Вы могли бы хотеть попытаться упаковать все файлы в единственный архив (не должен быть сжат). По моему опыту, копируя, что один архив быстрее, чем копирование большого количества отдельных файлов
Если Вы копируете те же наборы файлов часто с Вашего локального компьютера на сервер с незначительными изменениями тут и там. Можно ускорить передачу при помощи rsync или DVCS (например, hg или мерзавец).
мерзавец или hg могут отслеживать и обнаружить дельты и только передать те дельты. В случае использования мерзавца, так как обе стороны имеют полную историю репозитория, выясняя, что дельта является очень дешевой.
rsync использует форму прокручивающегося алгоритма вычисления контрольной суммы для обнаружения дельт без предварительных знаний того, что с другой стороны. В то время как требуется больше работы для rsync для вычисления дельт, это не должно хранить целую историю файла.
Попробуйте bbcp . Тестирование в нашей среде показало, что в cp есть какой-то встроенный регулятор. Просто будьте осторожны, потому что, когда вы снимаете губернатора, вы можете пометить свой сервер и вызвать сбой. В нашем случае мы отключили сервер, чтобы сделать копию, поэтому быстрее было лучше. Это позволило сократить время передачи на несколько часов.
Перед копированием убедитесь, что целевые файлы не существуют.
Иногда удивительно, сколько времени тратится даже на простое копирование на тот же хост (без подключения к сети ).
См. мой ответ на другой вопрос cp здесь . Короче говоря, перезапись существующего файла намного медленнее, чем его усечение или удаление связи, а затем копирование.Последний в 8 раз быстрее для файла размером 1,2 ГБ.