J'essaie de déterminer la taille optimale d'une grande copie de mon disque dur à l'aide de dd. J'essaie de comprendre quelle est la meilleure taille de bloc pour l'utiliser, ce qui, je suppose, est la taille du bloc matériel pour ce lecteur.
J'essaie de déterminer la taille optimale d'une grande copie de mon disque dur à l'aide de dd. J'essaie de comprendre quelle est la meilleure taille de bloc pour l'utiliser, ce qui, je suppose, est la taille du bloc matériel pour ce lecteur.
Réponses:
La commande lsblk est idéale pour cela:
lsblk -o NAME,PHY-SeC
Les resultats:
NAME PHY-SEC
sda 512
├─sda1 512
├─sda2 512
└─sda5 512
Linux expose la taille du secteur physique dans les fichiers /sys/block/sdX/queue/physical_block_size
. Cependant, pour obtenir les meilleures performances, vous devriez probablement faire quelques essais avec différentes tailles et mesures. Je ne pouvais pas trouver une claire réponse à qu'utiliser exactement la taille du bloc physique obtiendrait le résultat optimal (même si je suppose que ce ne peut pas être un mauvais choix).
hdparm
va probablement vous mentir.
$ sudo hdparm -I /dev/sda | grep -i physical
Physical Sector size: 4096 bytes
hdparm -I /dev/sda | grep Sector
est plus agréable, car il montrera les tailles physique et logique à la fois, pour une comparaison facile.
Le mien n'est pas destiné à être une réponse complète, mais j'espère que cela aidera aussi.
Voici un petit quelque chose de http://mark.koli.ch/2009/05/howto-whole-disk-backups-with-dd-gzip-and-p7zip.html
Pour une sauvegarde plus rapide, il peut être utile de déterminer la taille de bloc optimale du périphérique de disque que vous allez sauvegarder. En supposant que vous sauvegardiez / dev / sda, voici comment utiliser la commande fdisk pour déterminer la meilleure taille de bloc:
rescuecd#/> /sbin/fdisk -l /dev/sda | grep Units
Units = cylinders of 16065 * 512 = 8225280 bytes
Notez que la sortie de fdisk indique "cylindres of 16065 * 512". Cela signifie qu'il y a 512 octets par bloc sur le disque. Vous pouvez améliorer considérablement la vitesse de la sauvegarde en augmentant la taille du bloc par un multiple de 2 à 4. Dans ce cas, la taille optimale du bloc peut être 1k (512 * 2) ou 2k (512 * 4). BTW, devenir gourmand et utiliser une taille de bloc de 5k (512 * 10) ou quelque chose de excessif ne va pas aider; le système finira par créer un goulot d'étranglement sur le périphérique lui-même et vous ne pourrez pas extraire des performances supplémentaires du processus de sauvegarde. (emphase ajoutée)
Je soupçonne que la différence de performance entre une taille de bloc quasi optimale et optimale pour une configuration donnée est négligeable à moins que le jeu de données ne soit énorme. En effet, un utilisateur de FixUnix (poste de 2007) a affirmé que ses temps optimaux n’étaient que 5% plus rapides que les temps sous-optimaux. Peut-être pourriez-vous augmenter un peu plus votre efficacité en utilisant un multiple de la taille du "cluster" ou de la taille de bloc du système de fichiers.
Bien sûr, si vous vous éloignez trop des deux côtés de la taille optimale du bloc, vous rencontrerez des problèmes.
Le résultat final est que vous ne gagnerez probablement qu'environ 5% de performances (soit 3 minutes par heure) avec la taille de bloc optimale absolue. Par conséquent, demandez-vous s'il vaut la peine de consacrer du temps et des efforts à la recherche. Tant que vous restez loin des valeurs extrêmes, vous ne devriez pas souffrir.
echo "p" | /sbin/fdisk /dev/sda...
au lieu de /sbin/fdisk -l /dev/sda...
? le second sera plus propre et n'essaiera pas de faire des changements.
/sbin/fdisk -l /dev/sda | grep Units
. Cela aurait pu être changé au cours des deux dernières années. En tout cas, j'ai mis à jour votre réponse.
Chaque transfert de disque génère une interruption que le processeur doit gérer. Un disque typique à 50Mb / s voudra en générer 100 000 par seconde à une taille de bloc de 512b. Un processeur normal en traiterait 10 sur des milliers, une taille de bloc plus grande (2 ^ x) serait donc plus pratique systèmes jusqu'à 64k ISA DMA) serait plus pratique ...
De plus, vous pouvez regarder dans la sortie de lshw
pour vérifier d'autres résultats (et aussi parce que je ne semble pas avoir de hdparm
disponibilité sur ma distribution). Cela pourrait aider à le réduire:
sudo lshw | awk 'BEGIN {IGNORECASE=1;} /SCSI/,!//{print}'