Saya mencoba mencari ukuran optimal untuk salinan besar dari hard drive saya menggunakan dd. Saya mencoba mencari tahu apa ukuran blok terbaik untuk menggunakannya, yang akan saya asumsikan adalah ukuran blok perangkat keras untuk drive itu.
Saya mencoba mencari ukuran optimal untuk salinan besar dari hard drive saya menggunakan dd. Saya mencoba mencari tahu apa ukuran blok terbaik untuk menggunakannya, yang akan saya asumsikan adalah ukuran blok perangkat keras untuk drive itu.
Jawaban:
The lsblk perintah besar untuk ini:
lsblk -o NAME,PHY-SeC
Hasil:
NAME PHY-SEC
sda 512
├─sda1 512
├─sda2 512
└─sda5 512
Linux memperlihatkan ukuran sektor fisik dalam file /sys/block/sdX/queue/physical_block_size
. Meskipun, untuk mendapatkan kinerja terbaik Anda mungkin harus melakukan sedikit pengujian dengan ukuran dan ukuran yang berbeda. Aku bisa tidak menemukan suatu yang jelas jawaban dalam menggunakan persis ukuran blok fisik akan mendapatkan hasil yang optimal (meskipun saya menganggap itu tidak bisa menjadi pilihan yang buruk).
hdparm
kemungkinan besar akan membohongi Anda.
$ sudo hdparm -I /dev/sda | grep -i physical
Physical Sector size: 4096 bytes
hdparm -I /dev/sda | grep Sector
lebih baik, karena akan menunjukkan ukuran fisik dan logis sekaligus, untuk perbandingan mudah.
Milik saya tidak dimaksudkan untuk menjadi jawaban yang lengkap, tapi saya harap itu juga membantu.
Berikut adalah sedikit sesuatu dari http://mark.koli.ch/2009/05/howto-whole-disk-backups-with-dd-gzip-and-p7zip.html
Untuk pencadangan yang lebih cepat, ini dapat membantu menentukan ukuran blok optimal dari perangkat disk yang akan Anda cadangkan. Dengan asumsi Anda akan mencadangkan / dev / sda, inilah cara Anda dapat menggunakan perintah fdisk untuk menentukan ukuran blok terbaik:
rescuecd#/> /sbin/fdisk -l /dev/sda | grep Units
Units = cylinders of 16065 * 512 = 8225280 bytes
Perhatikan output fdisk mengatakan "silinder 16065 * 512". Ini berarti bahwa ada 512 byte per blok pada disk. Anda dapat secara signifikan meningkatkan kecepatan cadangan dengan meningkatkan ukuran blok dengan kelipatan 2 hingga 4. Dalam hal ini, ukuran blok yang optimal mungkin 1k (512 * 2) atau 2k (512 * 4). BTW, menjadi serakah dan menggunakan ukuran blok 5k (512 * 10) atau sesuatu yang berlebihan tidak akan membantu; akhirnya sistem akan mengalami hambatan pada perangkat itu sendiri dan Anda tidak akan dapat memeras kinerja tambahan apa pun dari proses pencadangan. (penekanan ditambahkan)
Saya menduga perbedaan dalam kinerja antara ukuran blok hampir-optimal dan optimal untuk konfigurasi yang diberikan diabaikan kecuali kumpulan data sangat besar. Memang, seorang pengguna di FixUnix (posting dari 2007) mengklaim waktu optimalnya hanya 5% lebih cepat daripada yang sub-optimal. Mungkin Anda bisa memeras sedikit lebih banyak efisiensi dengan menggunakan beberapa ukuran "cluster" atau ukuran blok sistem file.
Tentu saja, jika Anda bergerak terlalu jauh ke kedua sisi ukuran blok optimal Anda akan mengalami masalah.
Intinya adalah Anda kemungkinan akan mendapatkan hanya sekitar 5% dalam kinerja (yaitu 3 menit per jam) dengan ukuran blok optimal mutlak, jadi pertimbangkan apakah sepadan dengan waktu dan upaya Anda untuk penelitian lebih lanjut. Selama Anda menjauh dari nilai-nilai ekstrem, Anda seharusnya tidak menderita.
echo "p" | /sbin/fdisk /dev/sda...
bukan /sbin/fdisk -l /dev/sda...
? yang kedua akan lebih bersih dan tidak akan berusaha melakukan perubahan.
/sbin/fdisk -l /dev/sda | grep Units
. Itu mungkin telah berubah dalam dua tahun terakhir. Bagaimanapun, saya telah memperbarui jawaban Anda.
Setiap transfer disk menghasilkan interupsi yang harus ditangani prosesor. Disk 50Mb / s biasanya ingin menghasilkan 100000 dari mereka setiap detik pada ukuran blok 512b. Prosesor normal akan menangani 10s dari ribuan, sehingga ukuran blok yang lebih besar (2 ^ x) akan lebih praktis (4k sebagai ukuran blok FS standar di sebagian besar sistem hingga ukuran 64k ISA DMA) akan lebih praktis ...
Selain itu, Anda dapat melihat melalui keluaran lshw
untuk memverifikasi hasil lainnya, (dan juga karena saya tampaknya tidak hdparm
tersedia di distro saya.) Ini mungkin membantu mempersempitnya:
sudo lshw | awk 'BEGIN {IGNORECASE=1;} /SCSI/,!//{print}'