Linux посмотреть скорость копирования

🐧 Альтернативы команды cp на Linux для демонстрации прогресса и скорости

Вы когда-нибудь хотели увидеть скорость и прогресс при копировании файлов с помощью командной строки?

Для копирования файлов, папок и других данных вы, вероятно, использовали бы команду ditto или «cp», если вы знакомы с командной строкой операционных систем Linux или Unix.

Хотя команды ditto и «cp» полезны, иногда использование простой команды «cp» может занять много времени и утомить.

Параметр «-v» (подробный) в команде «cp» может предоставить вам дополнительную информацию о процессе копирования.

Однако недостатком является то, что эта команда не включает индикатор хода процесса копирования.

В Linux есть другие альтернативные команды, которые могут копировать файлы и папки, показывая ход и скорость процесса копирования. Ниже приведены альтернативные команды:

1. Команда rsync

«Rsync» – одна из лучших команд, которая помогает копировать файлы через терминал.

Объем данных, копируемых из удаленного места назначения, уменьшается при использовании этой утилиты.

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

Команда «rsync» имеет следующий синтаксис:

Использование опции «-av» с «rsync» – самая простая форма этой команды.

Как показано ниже, данная команда скопирует все файлы, находящиеся в «testfolder», в целевую папку с именем «Downloads»:

Источник

Как измерить скорость жесткого диска

Иногда хочется быстро прикинуть, как работает дисковая подсистема, либо сравнить 2 жестких диска. Очевидно, что измерить реальную скорость дисков практически невозможно, она зависит от слишком большого числа параметров. Но получить некое представление о скорости дисков можно.

Проверка скорости чтения диска

Проще всего измерить скорость диска с помощью программы hdparm. Установить ее очень просто:

Теперь нужно вывести список дисков и разделов в системе:

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

Проверка скорости записи на диск

Для того, чтобы измерить скорость записи на диск, можно воспользоваться стандартной утилитой linux — dd. С ее помощью мы создадим на диске файл размером 1 Gb частями по 1Mb.

Измеряем скорость записи на диск:

Я измерял скорость на виртуальной машине, диск которой был размещен на RAID5, собранным из 5-ти дисков SAS 10к. В принципе, неплохой результат. Можно изменить размер файла и блоков, из которого он записывается. Если сделать файл побольше, результат скорости диска может получиться более приближенный к реальности.

А вот скорость диска на VDS, который я арендую. Результат в разы хуже:

Скорость диска на виртуальной машине, расположенной на втором SATA диске моего рабочего ноутбука:

Результат не очень, надо разбираться в чем дело. Давно возникли подозрения, что с диском что-то не то, заметно подтормаживают виртуальные машины, хотя раньше это было не заметно. Жаль, результатов более ранних тестов не сохранилось.

Читайте также:  Sharing folder from ubuntu to windows

Интересно было бы посмотреть на ваши результаты тестов. Если же вы хотите серьезно измерить скорость дисков, то вам сюда — Как правильно мерять производительность диска.

Источник

Скорость Диска (Чтения/Записи): Тест HDD, SSD в Linux

dd: ТЕСТ Скорости ЗАПИСИ Диска

Выполните следующую команду для определения скорости ЗАПИСИ на накопитель:

dd: ТЕСТ Скорости ЧТЕНИЯ Диска

Файл tempfile , сгенерированный предыдущей командой, был закэширован в буфер и скорость его чтения будет намного выше чем реальная скорость чтения непосредственно с жесткого диска.

Чтобы получить реальную скорость, необходимо предварительно очистить кэш.

Выполни следующую команду, чтобы узнать скорость ЧТЕНИЯ из буфера:

Очистите кэш и измерьте реальную СКОРОСТЬ чтения непосредственно с жесткого диска:

dd: ТЕСТ Скорость Чтения/Записи Внешнего Накопителя

Для проверки производительности какого-либо внешнего HDD, SSD, USB Флэшки либо другого съемного носителя или удаленной файловой системы, просто перейдите в точку монтирования и выполните приведенные выше команды.

Либо, вместо tempfile , можно непосредственно прописать путь к точке монтирования, например:

Напоминание: Все приведенные выше команды используют временный файл tempfile . Не забудьте удалить его по окончанию тестов.

hdparm: Проверка Производительности HDD, SSD, USB Флэш Накопителья

hdparm — это утилита для командной строки в Linux, которая позволяет просматривать и менять параметры жестких дисков.

Так же она может использоваться в качестве простой утилиты для сравнительного анализа, которая позволяет быстро узнать скорость ЧТЕНИЯ с диска.

hdparm доступен из стандартных репозиториев в большинстве Linux дистрибутивах.

Установите hdparm , в зависимости от вашего Linux дистрибутива.

В Linux Mint, Ubuntu, Debian:

Источник

Linux: проверка скорости чтения-записи HDD

На этом диске будут проводится тесты, описанные ниже:

Western Digital Caviar Green 500GB 64МB WD5000AZRX 3.5

О том, как получить подробные данные о вашем жестком диске — можно прочитать в статье Linux: получение информации о hardware — HDD.

tune2fs

Более подробную информацию об используемой файловой системе посмотреть можно с помощью tune2fs :

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

Самый простой способ проверки скорости чтения/записи на жесткий диск ( hard disk input/output value ):

Лучше выполнять его хотя бы 1-2 минуты. Почему — пояснение в следующих примерах:

424 МБ/с — по сравнению с 113 MB/s в предыдущем примере — почему такая разница?

dd вывел результат кеширования в буфер оперативной памяти, а не непосредственно на диск.

Укажем выполнить не 100 операций, а 1000 — что бы система успела выполнить синхронизацию RAM и HDD, после чего dd покажет нам результаты:

113 MB/s — тоже более реальный результат для это жесткого диска.

Другой способ — прямо указать dd дождаться окончания синхронизации данных (т.е. после фактического завершения операций записи/чтения данных на диск):

Теперь рассмотрим некоторые утилиты.

hdparm

Начнём с программы hdparm :

Ключ -t ( Timing buffered disk) отображает скорость чтения с диска напрямую из буфера кеша, и является показателем того, как быстро жесткий диск может поддерживать последовательное чтение данных под Linux, без задержек, вызванных работой файловой системы.

Ключ -T (Timing cached reads) показывает скорость чтения напрямую из буфера кеша Linux без учёта доступа к диску. Этот показатель главным образом отображает работу процессора, кэша и оперативной памяти тестируемой системы.

Читайте также:  Как снять образ windows server 2012

seeker

Одним из очень важных параметров скорости работы жесткого диска является «seek time» — время поиска. Это время, которое требуется жестком диску, что бы считывающая головка достигла сектора, содержащего необходимые данные. Что бы проверить этот параметр — воспользуемся утилитой seeker :

К сожалению, что бы её запустить под Debian / Ubuntu придётся немного повозиться.

Для начала, качаем .rpm пакет с сайта:

Например, вполне работоспособным (на Ubuntu 12.04 x64) оказался пакет seeker-3.0-2.el6.x86_64.rpm для CentOS 5.

На следующей странцие http://pkgs.org/centos-5-rhel-5/epel-x86_64/seeker-3.0-2.el5.x86_64.rpm/download/ выбираем:

Download packages from the official mirror:
binary package, source package

binary — и сохраняем пакет .rpm на диск.

Далее, потребуется создать пакет .deb . Для этого можно воспользоваться утилитой alien . Как ей пользоваться — описано в статье Установка Java 7 на Ubuntu 12.10.

iozone

Следующая утилита — iozone , которая фактически умеет выполнять все тесты, описанные выше. В Ubuntu 12.04 она требует установки, поэтому выполняем:

Теперь запустим и рассмотрим результаты:

(тут показана лишь малая часть всего вывода)

Ключ -a запускает iozone в автоматическом режиме, в котором утилита будет использовать для тестирования block size от 4k до 16384k (16M), и размер файлов от 64k до 524288k (512M).

Все результаты скорости указаны в KB/Sec.

Первая колонка — KB отображает размер файла.
Вторая колонка — reclen — отображает используемый размер блока (block size).
Третья колнка — write — отображает время, затраченное на создание/запись нового файла. Это всегда более сложная задача для диска и файловой системы, так как связана с назначением inode , созданием новой записи в журнале событий (для Journaled File System ) и т.п.
Четвёртая колонка — rewrite — указывается скорость перезаписи уже существующего файла.
Пятая колонка — read — скорость чтения существующего файла.
Шестая колонка — reread — скорость чтения файла, который уже был прочитан ( reread file ).
Седьмая колонка — random read — показывает скорость доступа к случайной части (!) файла.

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

Сохранить результаты можно с ключём -b (файл должен быть совсемстим с форматом эл. таблиц):

Есть ещё много утилит, однако на этом хочется закончить.

Основная часть этой статьи является вольным переводом (с некоторыми попавками в описаниях) статьи Linux File System Read Write Performance Test.

Источник

Можно ли увидеть скорость копирования и процент копий?

У меня проблемы при копировании больших файлов с помощью nautilus (он застревает). Мне нужно скопировать, используя cp . Я хотел бы знать, есть ли какие-либо параметры, которые показывают скопированный%, а также скорость передачи.

rsync имеет флаг, progress2 который показывает общий процент:

Если вы разрешите другие инструменты, чем cp это возможно. Для одного файла вы можете использовать pv . Это небольшой инструмент, предоставляющий хорошую статистику.

Если у вас есть несколько файлов или каталогов, вы можете использовать tar:

Вы можете обернуть его в функцию оболочки. Меньше печатать, и вы получаете семантику, близкую к семантике cp . Вот очень простая (и не защищенная от ошибок!) Функция:

Читайте также:  Windows microsoft release preview что это

Обратите внимание, что некоторые версии tar не поддерживают вышеупомянутый синтаксис (например, Solaris tar ), и вы должны использовать следующий вариант:

Вы называете это так

Вы можете улучшить его, чтобы pv получить оценку оставшегося времени.

Другое решение (как упомянуто в комментарии о frostschutz) — использовать rsync с —progress опцией:

rsync работает лучше всего для отображения прогресса во время процесса копирования.

Как объяснено в других ответах, cp не предоставляет такую ​​функциональность. Тем не менее, progress (ранее назывался cv) — небольшой инструмент, который очень полезен для предоставления этой недостающей функции.

Этот инструмент можно описать как команду Tiny Dirty Linux Only * C, которая ищет базовые команды coreutils (cp, mv, dd, tar, gzip / gunzip, cat, . ), которые в настоящее время выполняются в вашей системе, и отображает процент скопированных данные.

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

Можно ли увидеть скорость копирования и процент копий?

Да, можно отображать ход выполнения команды cp на терминале.

Способ № 1: (использовать progress )

Откройте новый терминал и введите progress его, чтобы отобразить ход выполнения cp команды и других команд, таких как:

cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, 7z, zcat, bzcat, lzcat, split, gpg

Если вы не установили progress , вы можете установить его из репозитория, например , в CentOS этой команде: yum -y install progress .

Затем, после запуска cp команды в фоновом режиме или после cp обычного запуска , откройте другой терминал, поэтому просто попробуйте эту команду:

Смотрите вывод:

Способ № 2: (используйте патч cp )

Или загрузите GNU coreutils и исправьте его.

Скопируйте два файла cp и mv loacated под coreutils-8.21/src/ к /usr/local/bin :

Или скопируйте его, используя ваш файловый менеджер от имени root

Добавьте следующие строки в ваш

Индикатор выполнения может отображаться без –g или –progress-bar в соответствии с рекомендациями автора

Смотрите вывод:

Заметил, что это сообщение было несколько старым. Но когда я решил проблему, я решил опубликовать свое решение.

Сценарий: у нас очень большая структура каталогов, которую мы хотим скопировать, поэтому мы запускаем команду cp -R sourcedir destdir в одном окне терминала.

Откройте другое окно терминала или перенесите процесс в фоновый режим (Ctrl+Z,bg ) , а затем сделаем индикатор прогресса в гетто:

Сначала мы получаем общий размер структуры каталогов, которую мы хотим скопировать, вы делаете это с помощью:

du -sh /path/sourcedirectory/

Преобразуйте результат в гигабайты (G), затем замените n на результат, полученный в переменной sourcesize. После того, как вы вставили sourceize и destdir (каталог назначения), выполните команду ниже.

Это будет печатать прогресс каждые 10 секунд с сообщениями, такими как:

Я знаю, что это решение не учитывает скорость копирования, но можно было бы добавить это, расширив приведенные выше команды, возможно превратив его в сценарий bash, чтобы его было легче читать. Например, проверяя, сколько данных копируется pr. В единицу времени скорость должна быть тривиальной для расчета и отображения.

Источник

Оцените статью