Скажімо, ми використовуємо ext4 (з увімкненим dir_index) для розміщення файлів 3M (із середнім розміром 750 КБ), і нам потрібно вирішити, яку схему папок ми будемо використовувати.
У першому рішенні ми застосовуємо хеш-функцію до файлу і використовуємо папку двох рівнів (це 1 символ для першого рівня та 2 символи для другого рівня): тому filex.for
хеш дорівнює abcde1234 , ми збережемо його в / path / a / bc /abcde1234-filex.for.
У другому рішенні ми застосовуємо хеш-функцію до файлу і використовуємо папку двох рівнів (це 2 символи для першого рівня та 2 символи для другого рівня): тому, будучи filex.for
хеш рівним abcde1234 , ми збережемо його в / path / ab / de /abcde1234-filex.for.
Для першого рішення ми матимемо наступну схему /path/[16 folders]/[256 folders]
із середнім рівнем 732 файлів на папку (остання папка, де файл буде перебувати).
У той час як у другому рішенні у нас буде /path/[256 folders]/[256 folders]
в середньому 45 файлів на папку .
Зважаючи на те, що ми збираємось писати / від’єднувати / читати файли ( але в основному читати ) з цієї схеми багато (в основному це система кешування nginx), чи це має значення в сенсі продуктивності, якщо ми обрали те чи інше рішення?
Також які інструменти ми могли б використати для перевірки / тестування цієї установки?
hdparm -Tt /dev/hdX
але це не може бути найдоцільнішим інструментом.
hdparm
- це не правильний інструмент, це перевірка необробленої продуктивності блокового пристрою, а не перевірка файлової системи.