W przypadku wielu nowych dysków twardych rozmiar sektora fizycznego wynosi 4096. Czy byłoby możliwe, aby system używał rozmiaru sektora logicznego o tym samym rozmiarze, zamiast domyślnego rozmiaru sektora logicznego 512?
Czy przyspieszy zbiorcze odczyty i zapisy? Gdzie można to skonfigurować?
hard-disk
performance
io
Matan
źródło
źródło
mkfs.*
powinny automatycznie używać optymalnego rozmiaru sektora. Możesz wykonać kilkamkfs.*
testów i sprawdzić wynik (w pełnym wyniku programu mkfs lub w powiązanym programie narzędziowym fs).Odpowiedzi:
512 bajtów nie jest tak naprawdę domyślnym rozmiarem sektora. To zależy od twojego sprzętu.
Możesz wyświetlić rozmiar sektora fizycznego / logicznego, który zgłasza twój dysk za pośrednictwem
/sys
pseudo systemu plików, na przykład:Jaka jest różnica między tymi dwiema wartościami?
physical_block_size
to minimalny rozmiar bloku, który dysk może zapisać w operacji atomowej.logical_block_size
to najmniejszy rozmiar, jaki dysk może zapisać (por. Dokumentacja jądra systemu Linux).Tak więc, jeśli masz dysk 4k, ma sens, że twój stos pamięci (system plików itp.) Używa czegoś równego lub większego niż rozmiar sektora fizycznego.
Wartości te są również wyświetlane w najnowszych wersjach
fdisk
, na przykład:W obecnych dystrybucjach linuksa programy (które powinny dbać o optymalny rozmiar sektora) podobnie
mkfs.xfs
wybiorą domyślnie optymalny rozmiar sektora (np. 4096 bajtów).Ale możesz również wyraźnie to określić za pomocą opcji, na przykład:
Lub:
W każdym razie większość
mkfs
wariantów wyświetli również używany rozmiar bloku podczas wykonywania.W przypadku istniejącego systemu plików rozmiar bloku można określić za pomocą polecenia:
Lub:
Lub:
Podczas tworzenia systemu plików na partycji należy sprawdzić, czy adres początkowy partycji jest rzeczywiście dopasowany do rozmiaru bloku fizycznego. Na przykład spójrz na dane
fdisk -l
wyjściowe, przekonwertuj adresy początkowe na bajty, podziel je przez fizyczny rozmiar bloku - przypomnienie musi wynosić zero, jeśli partycje są wyrównane.źródło
fdisk -l
, podzieliłem przez 8, a następnie 512. reszta nie byłafdisk -l
raportyUnits = sectors of 1 * 512 = 512 bytes
w jednym z moich systemów Linux - Tak więc, dla 512/4096 logicznego / fizycznego napędu z 2 partycji poczynając od 2048 i 1026048 I obliczeniowych2048*512%4096
i1026048*512%4096
- np w powłoce Pythona. Ponieważ oba wyrażenia są równe zero, te partycje są wyrównane do 4k.Nie, nie jest to możliwe, ani nie miałoby znaczenia, gdyby tak było. IO zazwyczaj wykonuje się w jednostkach co najmniej 4096 bajtów, i zwykle znacznie więcej.
źródło
Tak, jest to możliwe, jednak spowoduje to, że dysk zapełni się znacznie szybciej niż powinien. W przypadku plików mniejszych niż 512 KB każdy plik zajmuje wówczas pełne 4096 KB (4 MB) i wypełnia resztę sektora zerami z powodu niezdolności większości systemów plików (NTFS i podobnych) do umożliwienia współdzielenia sektorów przez pliki. Najlepszą opcją dla systemu plików byłoby zezwolenie na zmienne rozmiary sektorów, jednak zwiększa to rozmiar MFT (głównej tabeli plików) i zwiększa ryzyko uszkodzenia danych, jednocześnie zmniejszając możliwość łatwego odzyskiwania danych. Innymi słowy, granice nie byłyby w pełni znane oprogramowaniu do odzyskiwania. Tak więc, podczas gdy rozmiar sektora logicznego 4096K jest niesamowity dla dużych plików, dla zwykłego komputera do codziennego użytku to tylko kilka zer. Powiedziawszy to: istnieje możliwość przechowywania danych w samym MFT, jeśli chodzi o dane mniejsze niż rozmiar sektora logicznego. Oznacza to jednak, że MFT staje się ogromny, a dane byłyby zapisywane dwukrotnie (na dysku twardym znajdują się dwie kopie MFT). Będziesz także musiał określić maksymalny rozmiar MFT, który może powodować problemy, gdy albo osiągniesz maksimum, albo użycie dysku przekroczy to, co byłoby wolne dla MFT. Wszystko to opiera się na wykorzystaniu systemu plików NTFS. Z drugiej strony, NTFS pozwala na użycie kompresji natywnej dla plików na poziomie bloku dla dowolnego sektora logicznego o wielkości 4 MB lub mniejszej. To ograniczenie jest stosowane ze względu na sposób działania kompresji NTFS. 4 MB bloków jest odczytywanych i kompresowanych niezależnie od wielkości sektora logicznego. To oczywiście
Czy to trochę dla ciebie wyjaśnia?
źródło
źródło