Дискові сектори
Диск має фіксований розмір сектора, як правило, 512 байт або 4096 байт на деяких сучасних дисках; ці диски також матимуть режим, коли вони імітують 512 байтових секторів. Диск матиме доріжки з різною кількістю секторів; доріжки, розташовані ближче до зовнішньої сторони диска, мають більше секторів, оскільки вони мають більше місця для заданої щільності біта. Це дозволяє більш ефективно використовувати простір на диску; Зазвичай доріжка має щось на зразок 1000 512 байтових секторів на сучасному диску.
Деякі структури форматування можуть також включати інформацію про виправлення помилок у секторах, що проявляється у форматі дисків низького рівня з 520 або 528 байтовими секторами. У цьому випадку в секторі все ще є 512 байти даних користувачів. Ні Windows, ні Linux не підтримують це безпосередньо, хоча i5OS (IBM iSeries) та різні контролери SAN.
Зазвичай сектор / голова / трек перекладається в логічну блокову адресу; через історичні проблеми із зворотною сумісністю, геометрія (головки x сектори x доріжки), що спостерігається операційною системою (особливо на дисках IDE та SATA), зазвичай не має нічого спільного з її фізичною структурою.
Розмір смуги RAID
Контролер RAID може мати розмір смуги для масиву, використовуючи смугастий (наприклад, RAID-5 або RAID-10). Якщо масив має (для exmaple) смужку 128k, кожен диск має 128k суміжних даних, а потім наступний набір даних знаходиться на наступному диску. Зазвичай ви можете розраховувати отримати приблизно одну смужку за оборот диска, тому розмір смуги може впливати на продуктивність на певних робочих навантаженнях.
Вирівнювання розділів
Дисковий розділ може або не може точно вирівнюватися з смужкою RAID, і може призвести до погіршення продуктивності через розбиття читання, якщо він не вирівняний. Деякі системи (наприклад, сервер Windows 2008) автоматично налаштовують розділи для вирівнювання за розмірами смуги диска. Деякі (наприклад, сервер Windows 2003) не будуть, і вам потрібно використовувати утиліту розділів, яка підтримує вирівнювання смуг, щоб переконатися, що вони роблять.
Розмір блоку файлової системи
Файлова система виділить блоки зберігання в шматки певного розміру. Зазвичай це налаштовується - наприклад, NTFS буде підтримувати одиниці розподілу від (IIRC) 4K до 64K. Незміщення розділів і блоків файлової системи до смуг RAID може призвести до того, що один блок файлової системи зчитується, щоб генерувати декілька доступів диска, де потрібен би лише один, якщо блоки файлової системи правильно вирівняні з смугами RAID.
Розмір блоку бази даних
База даних виділить простір у таблиці або індексі у певному розмірі блоку. У випадку з SQL Server це 8K, а 8K за замовчуванням у багатьох системах. У деяких системах, таких як Oracle, це налаштовується, а на PostgreSQL - це параметр часу збирання. У більшості систем розподіл простору для таблиць зазвичай виконується більшими фрагментами, з блоками, виділеними в цих фрагментах.
Невідповідність файлової системи та блоків розподілу даних може генерувати кілька записів вводу / виводу для одного запису блоку, що може призвести до продуктивного штрафу.
I / O Chunking
Зазвичай СУБД насправді виконує введення-виведення в шматки більш ніж одного блоку. Наприклад, на SQL Server усі введення / виведення виконуються в шматки з 8 блоків, 64 к. В цілому). У Oracle це налаштовується. Випадковий огляд документів PostgreSQL не виявляє конкретного опису того, чи робить це PostgreSQL, тому я не впевнений, як це працює на цій платформі.
Коли фрагмент вводу-виводу більше розміру блоку файлової системи або нерівний з межами смуги RAID, запис диска з БД може спричинити записування декількох дисків, що генерує штрафну ефективність.
Використання місця на диску
Не витрачається дискового простору - введення / виведення бази даних використовуватиме одну або кілька фізичних операцій вводу-виводу на диску для завершення, але неправильно налаштоване введення-виведення може призвести до неефективності, що сповільнить базу даних. Основні речі, які повинні бути узгоджені:
RAID-смуги та перегородки - розділ повинен починатися на межі смуги RAID.
Межі розподілу вводу / виводу файлової системи та межі смуги / перегородки рейду - межа смуги RAID повинна вирівнюватися з одиницею розподілу файлової системи та має бути кратною розміру одиниці розподілу файлової системи.
Розмір запису диска та розмір одиниці розподілу файлової системи. Між операціями вводу / виводу бази даних та операціями вводу / виводу файлової системи має бути 1: 1.
Невідповідність не створює більшої проблеми цілісності даних, ніж це було б інакше. База даних та файлова система мають механізми для забезпечення роботи файлової системи атомною. Зазвичай збій диска призведе до втрати даних, але не до питань цілісності даних.