Есть ли способ показать скорость копирования файлов на Mac?

24

Есть ли способ показать скорость копирования файлов на Mac? Например, при копировании файла с жесткого диска на SDHC-карту и наоборот.

Причина в том, что я могу проверить максимальную скорость SDHC-карты на моем ПК Dell, но, похоже, что там интерфейс карты ограничен до 20 МБ / с для чтения или записи. Поэтому я хочу проверить, как на iMac 27 дюймов. Может быть, можно использовать какую-нибудь тестовую программу, но я все же хотел бы найти какой-нибудь простой способ определить скорость копирования файлов на Mac.

nopole
источник

Ответы:

33

Если вам удобно в Терминале, вы можете использовать rsync для копирования некоторых файлов из одного места в другое, и он даст вам сводную статистику по скорости:

rsync -a --progress --stats --human-readable path_to_source path_to_dest

Например, rsync --stats --human-readable ~ / Рабочий стол / Большой файл / Тома / OtherDisk / Dir

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

rsync -a --progress --stats --human-readable 

( обратите внимание, что после --human-readableзавершения этой команды должен быть один или несколько пробелов , и перед тем, как будут указаны имена исходного и конечного файлов, произойдет разрыв)

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

Вывод вышеуказанной команды будет похож на:

[jnet@Kyle ~]$ rsync -a --progress --stats --human-readable /Users/jnet/Pictures/Screen\ Caps /Volumes/Scratch 
building file list ... 
644 files to consider
Screen Caps/
Screen Caps/.DS_Store
      21.51K 100%    0.00kB/s    0:00:00 (xfer#1, to-check=642/644)
Screen Caps/Can someone downvote me please.pdf
      78.19K 100%    8.29MB/s    0:00:00 (xfer#2, to-check=641/644)
Screen Caps/Can someone downvote me please.png
     399.61K 100%   14.66MB/s    0:00:00 (xfer#3, to-check=640/644)
Screen Caps/ChefVMMemtest.png
       8.29K 100%  207.68kB/s    0:00:00 (xfer#4, to-check=639/644)
[...]
Number of files: 644
Number of files transferred: 638
Total file size: 176.85M bytes
Total transferred file size: 176.85M bytes
Literal data: 176.85M bytes
Matched data: 0 bytes
File list size: 12574
File list generation time: 0.002 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 176.92M
Total bytes received: 14.09K

sent 176.92M bytes  received 14.09K bytes  14.15M bytes/sec
total size is 176.85M  speedup is 1.00
JBRWilkinson
источник
Будет ли файл скопирован в «кэш жесткого диска» и считается завершенным? (хотя данные физически не копируются на жесткий диск. Например, если копировать файл объемом 500 МБ с внутреннего жесткого диска на USB-накопитель, данные могут быть «считаны» в кэш-память ОЗУ и записаны на USB-накопитель, и пока он все еще пишет, файл уже объявлен как «завершенное копирование», и поэтому скорость копирования указана неточно.)
nopole
@ 太極 者 無極 而 生 Нет. Файлы не копируются в кэш. Кэш делает копирование более быстрым, если 1. скорость линии намного выше, чем у диска, и 2. размер передачи полностью помещается в выделенный кэш. Кэш-память используется таким образом, что максимальная скорость линии может поддерживаться, потому что она быстрее, чем у любого диска или линии передачи. Но операционная система постоянно записывает этот кэш на диск. Но это правда, что когда не осталось ничего для передачи и когда кэш все еще заполнен, ОС сообщает о завершении передачи. Вот почему вам нужно синхронизировать или размонтировать / извлечь и дождаться освобождения буфера. НТН.
Пол-Себастьян Маноле
man rsyncв терминале и ищите кеш. Похоже, версия rsync для OS X отказывается от кэширования ОС.
JBRWilkinson
@JBRWilkinson ОС может сделать кеширование прозрачным, но я думаю, что в этом случае он выполняет rsyncсистемный вызов UNIX и использует опцию «НЕ ИСПОЛЬЗОВАТЬ КЭШ», поэтому это чистое копирование на устройство, и в кэш-памяти ОЗУ ничего нет
nopole
13

Самый простой способ - просто подключиться к общим измерениям скорости ввода-вывода, которые поддерживает система.

Если вам понравилась командная строка, она diskutil listпокажет вам, какие диски отображаются disk0, disk1и т.д., и iostat 1будет сбрасывать скорость передачи каждую секунду. Вам нужно будет нажать Control-C, чтобы выйти из этой программы, когда закончите. Кроме того, если вы хотите более продолжительное измерение, просто измените на 1сколько секунд вы хотите усреднить скорости ввода-вывода.

Если вам нравятся графики, «Activity Monitor» агрегирует IO со всех дисков. Выберите вкладку «Активность диска», там есть график зависимости количества операций ввода-вывода в секунду или пропускной способности (данных) в течение времени для всех дисков вместе взятых.

введите описание изображения здесь

Пьер Ватле
источник