Powiedzmy, że używamy ext4 (z włączonym dir_index) do hostowania około 3M plików (o średnim rozmiarze 750 KB) i musimy zdecydować, jakiego schematu folderów będziemy używać.
W pierwszym rozwiązaniu stosujemy funkcję skrótu do pliku i używamy folderu dwupoziomowego (1 znak dla pierwszego poziomu i 2 znaki do drugiego poziomu): dlatego, że filex.for
skrót jest równy abcde1234 , będziemy przechowywać go na / path / a / bc /abcde1234-filex.for.
W drugim rozwiązaniu stosujemy funkcję skrótu do pliku i używamy folderu dwóch poziomów (2 znaki dla pierwszego poziomu i 2 znaki dla drugiego poziomu): dlatego, że filex.for
skrót jest równy abcde1234 , będziemy przechowywać go na / path / ab / de /abcde1234-filex.for.
W przypadku pierwszego rozwiązania mamy następujący schemat /path/[16 folders]/[256 folders]
ze średnią 732 plików na folder (ostatni folder, w którym plik będzie się znajdować).
Podczas gdy na drugim rozwiązaniu będziemy mieli /path/[256 folders]/[256 folders]
ze związkiem średnio 45 plików w folderze .
Biorąc pod uwagę, że zamierzamy zapisywać / rozłączać / czytać pliki ( ale głównie czytać ) z tego schematu (zasadniczo system buforowania nginx), czy ma to znaczenie pod względem wydajności, jeśli wybraliśmy jedno lub drugie rozwiązanie?
Jakich narzędzi możemy użyć do sprawdzenia / przetestowania tej konfiguracji?
hdparm -Tt /dev/hdX
ale może nie być to najbardziej odpowiednie narzędzie.
hdparm
nie jest właściwym narzędziem, jest to sprawdzenie surowej wydajności urządzenia blokowego, a nie test systemu plików.