Existe-t-il un moyen de montrer la vitesse de copie des fichiers sur un Mac?

24

Existe-t-il un moyen de montrer la vitesse de copie des fichiers sur un Mac? Par exemple, lors de la copie d'un fichier du disque dur vers la carte SDHC et vice versa.

La raison en est que je peux vérifier la vitesse maximale d'une carte SDHC sur mon PC Dell, mais il semble que là-bas, l'interface de la carte est limitée à 20 Mo / s en lecture ou en écriture. Je veux donc vérifier comment c'est sur l'iMac 27 pouces. Peut-être qu'un programme de test peut être utilisé, mais j'aime toujours trouver un moyen simple de dire la vitesse de copie des fichiers sur Mac.

nopole
la source

Réponses:

33

Si vous êtes à l'aise dans le terminal, vous pouvez utiliser rsync pour copier certains fichiers d'un endroit à un autre et cela vous donnera des statistiques récapitulatives sur la vitesse:

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

Par exemple, rsync --stats --human-readable ~ / Desktop / Large-File / Volumes / OtherDisk / Dir

Vous pouvez également taper dans le terminal juste la commande:

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

( notez qu'il doit y avoir un ou plusieurs espaces après --human-readablepour terminer cette commande et interrompre avant que les noms des fichiers source et de destination ne soient fournis)

Faites ensuite glisser le fichier / dossier que vous souhaitez copier et déposez-le dans la fenêtre du terminal, puis faites glisser et déposez le répertoire de destination. Faire glisser et déposer un fichier / dossier sur une fenêtre de terminal placera le chemin de ce fichier / dossier dans la fenêtre de terminal. Le glissement d'un fichier est préférable dans la plupart des cas, car il gérera un espace dans n'importe quel dossier ou nom de fichier. Dans ce cas, l'espace a besoin d'un \ pour indiquer de ne pas terminer le nom de fichier exactement à l'opposé d'avoir besoin de l'espace plus tôt.

La sortie de la commande ci-dessus sera similaire à:

[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
la source
le fichier sera-t-il copié dans le "cache du disque dur" et considéré comme une copie terminée? (bien que les données ne soient pas physiquement copiées sur le disque dur. Par exemple, si vous copiez un fichier de 500 Mo du disque dur interne vers le lecteur USB, les données peuvent être "lues" dans le cache RAM du système d'exploitation et écrites sur le lecteur USB, et alors qu'il est encore en train d'écrire, le fichier est déjà signalé comme "copie terminée" et la vitesse de copie est donc déclarée inexactement élevée.)
nopole
@ 太極 者 無極 而 生 Non. Les fichiers ne sont pas copiés dans le cache. Le cache ne rend la copie plus rapide que si 1. la vitesse de la ligne est beaucoup plus élevée que la vitesse du lecteur de disque et 2. la taille du transfert tient entièrement dans le cache alloué. Le cache est utilisé de telle sorte que la vitesse de ligne maximale puisse être maintenue car elle est plus rapide que n'importe quel lecteur ou ligne de transfert. Mais le système d'exploitation écrit tout le temps ce cache sur le disque. Mais il est vrai que lorsqu'il n'y a plus rien à transférer et que le cache est encore plein, le système d'exploitation signale le transfert comme terminé. C'est pourquoi vous devez synchroniser ou démonter / éjecter et attendre que le tampon soit vidé. HTH.
Paul-Sebastian Manole
man rsyncdans le terminal et recherchez Cache. Il semble que la version OS X de rsync opte pour la mise en cache du système d'exploitation.
JBRWilkinson
@JBRWilkinson, le système d'exploitation peut rendre la mise en cache transparente, mais je pense que dans ce cas, il rsynceffectue l'appel système UNIX et utilise l'option "NE PAS UTILISER CACHE", il s'agit donc d'une copie pure sur l'appareil et rien n'est dans le cache RAM
nopole
13

La méthode la plus simple consiste à exploiter simplement les mesures de vitesse d'E / S globales que le système maintient.

Si vous aimez la ligne de commande, diskutil listmontre - vous ce que les lecteurs carte à laquelle disk0, disk1etc ... et iostat 1déchargera le transfert des vitesses de chaque seconde. Vous devrez appuyer sur Control-C pour quitter ce programme une fois terminé. De plus, si vous voulez une mesure plus longue, changez simplement le 1nombre de secondes que vous souhaitez pour faire la moyenne des vitesses d'E / S.

Si vous aimez les graphiques, le "Moniteur d'activité" agrégera les E / S de tous les disques. Sélectionnez l'onglet "Activité du disque", il y a un graphique en direct de l'IO par seconde ou du débit (données) par seconde au fil du temps pour tous les lecteurs combinés.

entrez la description de l'image ici

Pierre Watelet
la source