Sektory dyskowe
Dysk ma stały rozmiar sektora, zwykle 512 bajtów lub 4096 bajtów na niektórych współczesnych dyskach; dyski te będą miały także tryb, w którym emulują sektory 512-bajtowe. Na dysku będą ścieżki o różnej liczbie sektorów; ścieżki bliżej zewnętrznej strony dysku mają więcej sektorów, ponieważ mają więcej miejsca dla danej gęstości bitów. Pozwala to na bardziej wydajne wykorzystanie miejsca na dysku; zwykle ścieżka ma na nowoczesnym dysku około 1000 sektorów 512 512 bajtów.
Niektóre struktury formatowania mogą również zawierać informacje dotyczące korekcji błędów w sekcjach, co przejawia się w tym, że dyski są formatowane na niskim poziomie za pomocą sektorów 520 lub 528 bajtów. W tym przypadku sektor nadal ma 512 bajtów danych użytkownika. Ani Windows, ani Linux nie obsługują tego bezpośrednio, chociaż i5OS (IBM iSeries) i różne kontrolery SAN.
Zwykle sektor / głowica / ścieżka jest tłumaczona na logiczny adres bloku; z powodu historycznych problemów z kompatybilnością wsteczną geometria (głowice x sektory x ścieżki) widziana przez system operacyjny (szczególnie na dyskach IDE i SATA) zwykle ma niewiele wspólnego z jego strukturą fizyczną.
Rozmiar paska RAID
Kontroler RAID może mieć rozmiar paska dla tablicy wykorzystującej paski (np. RAID-5 lub RAID-10). Jeśli tablica ma (na przykład) pasek 128k, każdy dysk ma 128k ciągłych danych, a następnie następny zestaw danych znajduje się na następnym dysku. Zwykle można spodziewać się uzyskania około jednego paska na obrót dysku, więc rozmiar paska może mieć wpływ na wydajność przy niektórych obciążeniach.
Wyrównanie partycji
Partycja dysku może, ale nie musi dokładnie wyrównywać się z paskiem RAID, i może spowodować obniżenie wydajności z powodu podzielonych odczytów, jeśli nie zostanie wyrównana. Niektóre systemy (np. Serwer Windows 2008) automatycznie skonfigurują partycje, aby dopasować je do rozmiarów pasków woluminu dysku. Niektóre (np. Serwer Windows 2003) tego nie zrobią i musisz użyć narzędzia do partycji, które obsługuje wyrównanie pasków, aby się upewnić.
Rozmiar bloku systemu plików
System plików przydzieli bloki pamięci w porcjach o określonej wielkości. Zasadniczo jest to konfigurowalne - na przykład NTFS będzie obsługiwał jednostki alokacji od (IIRC) 4K do 64K. Niewspółosiowość partycji i bloków systemu plików do pasków RAID może spowodować, że odczyt jednego bloku systemu plików wygeneruje wiele dostępów do dysku, przy czym tylko jeden byłby konieczny, gdyby bloki systemu plików były wyrównane prawidłowo z pasami RAID.
Rozmiar bloku bazy danych
Baza danych przydzieli miejsce w tabeli lub indeksie w określonym rozmiarze bloku. W przypadku SQL Server jest to 8K, a 8K jest wartością domyślną w wielu systemach. W niektórych systemach, takich jak Oracle, jest to konfigurowalne, aw PostgreSQL jest to opcja czasu kompilacji. W większości systemów przydzielanie przestrzeni do tabel odbywa się zwykle w większych porcjach, z blokami przydzielonymi w tych porcjach.
Niewłaściwe ustawienie systemu plików i bloków alokacji danych może generować wiele operacji we / wy dla pojedynczego zapisu bloku, co może prowadzić do zmniejszenia wydajności.
Chunking we / wy
Zwykle DBMS faktycznie wykonuje operacje we / wy w kawałkach więcej niż jednego bloku. Na przykład na serwerze SQL wszystkie operacje we / wy są wykonywane w częściach po 8 bloków, łącznie 64k). W Oracle można to konfigurować. Przypadkowa kontrola dokumentów PostgreSQL nie ujawnia konkretnego opisu, czy PostgreSQL to robi, więc nie jestem pewien, jak to działa na tej platformie.
Gdy porcja we / wy jest większa niż wielkość bloku systemu plików lub jest źle wyrównana z granicami pasków RAID, zapis dysku z bazy danych może spowodować zapis wielu dysków, co powoduje obniżenie wydajności.
Wykorzystanie miejsca na dysku
Nie marnuje się miejsca na dysku - operacje we / wy bazy danych wykorzystają jedną lub więcej fizycznych operacji we / wy na dysku do ukończenia - ale nieprawidłowo dostrojone operacje we / wy mogą generować nieefektywności, które spowalniają bazę danych. Główne rzeczy, które muszą być w linii, to:
Paski i partycje RAID - partycja powinna zaczynać się na granicy pasków RAID.
Alokacja we / wy systemu plików i granice pasków RAID / partycji - granica pasków RAID musi być wyrównana z jednostką alokacji systemu plików i powinna być wielokrotnością wielkości jednostki alokacji systemu plików.
Rozmiar zapisu na dysku i rozmiar jednostki alokacji systemu plików. Pomiędzy operacjami we / wy bazy danych a operacjami we / wy systemu plików powinna istnieć relacja 1: 1.
Niewspółosiowość nie stwarza większego problemu z integralnością danych niż byłby w innym przypadku. Baza danych i system plików mają mechanizmy zapewniające atomowe działanie systemu plików. Zasadniczo awaria dysku spowoduje utratę danych, ale nie problemy z integralnością danych.