Próbuję ustalić optymalny rozmiar dużej kopii z dysku twardego za pomocą dd. Próbuję dowiedzieć się, jaki najlepszy rozmiar bloku to użyć, a moim zdaniem byłby to rozmiar bloku sprzętowego dla tego napędu.
linux
hard-drive
dd
Płomień
źródło
źródło
Odpowiedzi:
Polecenie lsblk jest do tego świetne:
Wyniki:
źródło
Linux ujawnia rozmiar sektora fizycznego w plikach
/sys/block/sdX/queue/physical_block_size
. Chociaż, aby uzyskać najlepszą wydajność, prawdopodobnie powinieneś zrobić małe testy z różnymi rozmiarami i miarą. Mogę nie znaleźć się jasną odpowiedź na to stosując dokładnie fizyczny rozmiar bloku by uzyskać optymalny wynik (choć zakładam, że nie może być zły wybór).źródło
hdparm
prawdopodobnie cię okłamie.http://wayback.archive.org/web/20150921015457/https://nxadm.wordpress.com/2010/04/30/4096-physical-block-size-drives/
źródło
hdparm -I /dev/sda | grep Sector
jest ładniejszy, ponieważ pokaże jednocześnie zarówno fizyczne, jak i logiczne rozmiary, dla łatwego porównania.Mój nie ma być całkowitą odpowiedzią, ale mam nadzieję, że to też pomoże.
Oto coś z http://mark.koli.ch/2009/05/howto-whole-disk-backups-with-dd-gzip-and-p7zip.html
3 - Określ odpowiedni rozmiar bloku
W celu szybszego tworzenia kopii zapasowej może pomóc ustalić optymalny rozmiar bloku urządzenia dyskowego, którego kopię zapasową chcesz wykonać. Zakładając, że masz zamiar wykonać kopię zapasową / dev / sda, oto jak możesz użyć polecenia fdisk, aby określić najlepszy rozmiar bloku:
Zauważ, że wyjście fdisk mówi „cylindry 16065 * 512”. Oznacza to, że na dysku jest 512 bajtów na blok. Można znacznie poprawić szybkość tworzenia kopii zapasowej, zwiększając rozmiar bloku o wielokrotność od 2 do 4. W takim przypadku optymalny rozmiar bloku może wynosić 1k (512 * 2) lub 2k (512 * 4). BTW, chciwość i użycie bloku o wielkości 5k (512 * 10) lub czegoś nadmiernego nie pomoże; ostatecznie system będzie wąskim gardłem w samym urządzeniu i nie będziesz w stanie wycisnąć żadnej dodatkowej wydajności z procesu tworzenia kopii zapasowej. (podkreślenie dodane)
Podejrzewam, że różnica w wydajności między prawie optymalnym a optymalnym rozmiarem bloku dla danej konfiguracji jest znikoma, chyba że zestaw danych jest ogromny. Rzeczywiście, użytkownik FixUnix (post z 2007 roku) twierdził, że jego optymalne czasy były tylko 5% szybsze niż nieoptymalne. Być może możesz wycisnąć nieco większą wydajność, używając wielokrotności rozmiaru „klastra” lub rozmiaru bloku systemu plików.
Oczywiście, jeśli przesuniesz się zbyt daleko w dowolną stronę optymalnego rozmiaru bloku, napotkasz problemy.
Najważniejsze jest to, że prawdopodobnie uzyskasz tylko około 5% wydajności (tj. 3 minuty na godzinę) przy absolutnie optymalnym rozmiarze bloku, więc zastanów się, czy warto poświęcić swój czas i wysiłek na dalsze badania. Dopóki trzymasz się z dala od ekstremalnych wartości, nie powinieneś cierpieć.
źródło
echo "p" | /sbin/fdisk /dev/sda...
zamiast/sbin/fdisk -l /dev/sda...
? drugi będzie czystszy i nie będzie próbował dokonywać żadnych zmian./sbin/fdisk -l /dev/sda | grep Units
. Mogło to ulec zmianie w ciągu ostatnich dwóch lat. W każdym razie zaktualizowałem twoją odpowiedź.Każdy transfer dysku generuje przerwanie, które procesor musi obsłużyć. Typowy dysk 50 Mb / s będzie chciał generować 100 000 z nich co sekundę przy rozmiarze bloku 512b Normalny procesor poradziłby sobie z dziesiątkami tysięcy takich bloków, dlatego większy (2 ^ x) rozmiar bloku byłby bardziej przydatny (4k jako domyślny rozmiar bloku FS w większości systemy do 64k ISA DMA) byłyby bardziej praktyczne ...
źródło
Dodatkowo możesz przejrzeć dane wyjściowe,
lshw
aby zweryfikować inne wyniki (a także dlatego, że wydaje się, że nie mamhdparm
dostępnych w mojej dystrybucji). Może to pomóc w zawężeniu:źródło