ส่วนของดิสก์
ดิสก์มีขนาดเซกเตอร์คงที่โดยปกติ 512 ไบต์หรือ 4096 ไบต์บนดิสก์ที่ทันสมัยบางอย่าง ดิสก์เหล่านี้จะมีโหมดที่พวกเขาจำลองเซกเตอร์ 512 ไบต์ ดิสก์จะมีแทร็กที่มีจำนวนเซ็กเตอร์ต่างกัน แทร็กใกล้กับด้านนอกของดิสก์มีเซ็กเตอร์มากขึ้นเนื่องจากมีพื้นที่มากขึ้นสำหรับความหนาแน่นของบิตที่กำหนด สิ่งนี้ทำให้การใช้พื้นที่ดิสก์มีประสิทธิภาพมากขึ้น โดยทั่วไปแทร็กจะมีสิ่งต่างๆเช่น 1,000 512 ไบต์ในดิสก์ที่ทันสมัย
โครงสร้างการจัดรูปแบบบางอย่างยังสามารถรวมข้อมูลการแก้ไขข้อผิดพลาดใน secotrs ซึ่งปรากฏตัวเองในดิสก์ที่มีการจัดรูปแบบระดับต่ำที่มีภาค 520 หรือ 528 ไบต์ ในกรณีนี้เซกเตอร์ยังคงมีข้อมูลผู้ใช้ 512 ไบต์ Windows และ Linux ไม่รองรับสิ่งนี้โดยตรงแม้ว่า i5OS (IBM iSeries) และตัวควบคุม SAN ต่างๆ
โดยปกติเซกเตอร์ / หัว / แทร็กจะถูกแปลเป็นโลจิคัลบล็อกแอดเดรส เนื่องจากปัญหาในอดีตที่มีความเข้ากันได้แบบย้อนกลับทำให้รูปทรงเรขาคณิต (หัว x ส่วน x แทร็ก) ที่ระบบปฏิบัติการเห็น
RAID Stripe Size
คอนโทรลเลอร์ 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 มันเป็นตัวเลือกเวลา build ในการจัดสรรพื้นที่ของระบบส่วนใหญ่ไปยังตารางโดยทั่วไปแล้วจะทำในกลุ่มที่มีขนาดใหญ่กว่าโดยมีการจัดสรรบล็อกภายในกลุ่ม
การวางแนวของระบบไฟล์และบล็อกการจัดสรรข้อมูลสามารถสร้าง I / O หลาย ๆ ตัวสำหรับการเขียนบล็อกเดียวซึ่งสามารถทำให้ประสิทธิภาพลดลง
I / O Chunking
โดยปกติแล้ว DBMS จะทำ I / O ของมันในบล็อกมากกว่าหนึ่งบล็อก ตัวอย่างเช่นบน SQL Server I / O ทั้งหมดจะทำในกลุ่มของ 8 บล็อกรวม 64k) บน Oracle นี่สามารถกำหนดค่าได้ การตรวจสอบเอกสาร PostgreSQL อย่างไม่เป็นทางการไม่เปิดเผยคำอธิบายที่เฉพาะเจาะจงว่า PostgreSQL ทำสิ่งนี้หรือไม่ดังนั้นฉันไม่แน่ใจว่ามันทำงานบนแพลตฟอร์มนี้ได้อย่างไร
เมื่อก้อน I / O มีขนาดใหญ่กว่าขนาดบล็อกของระบบไฟล์หรือมีการจัดแนวที่ไม่ถูกต้องกับขอบเขตของแถบ RAID การเขียนดิสก์จากฐานข้อมูลอาจทำให้เกิดการเขียนดิสก์หลายครั้งซึ่งสร้างโทษประสิทธิภาพ
การใช้พื้นที่ดิสก์
ไม่มีพื้นที่ว่างในดิสก์เสีย - ฐานข้อมูล I / O จะใช้การดำเนินการทางกายภาพ I / O อย่างน้อยหนึ่งรายการบนดิสก์เพื่อดำเนินการให้เสร็จสมบูรณ์ แต่การปรับ I / O ที่ไม่ถูกต้องสามารถสร้างความไร้ประสิทธิภาพซึ่งจะทำให้ฐานข้อมูลช้าลง สิ่งสำคัญที่จะต้องมีการจัดตำแหน่งคือ:
RAID stripes และพาร์ติชั่น - พาร์ติชั่นควรเริ่มจากขอบเขตของ RAID RAID.
การจัดสรรระบบไฟล์ I / O และขอบเขตการโจมตีสไทรป์ / พาร์ติชั่น - ขอบเขตสไทรพด์ RAID จะต้องจัดแนวกับหน่วยการจัดสรรระบบไฟล์และควรเป็นขนาดของหน่วยการจัดสรรระบบไฟล์หลายขนาด
ขนาดการเขียนดิสก์และขนาดหน่วยการจัดสรรระบบไฟล์ ควรมีความสัมพันธ์แบบ 1: 1 ระหว่างการดำเนินการ I / O ฐานข้อมูลและการดำเนินการ I / O ของระบบไฟล์
การวางแนวไม่ได้สร้างปัญหาความสมบูรณ์ของข้อมูลมากขึ้นกว่าที่มีอยู่ ฐานข้อมูลและระบบไฟล์มีกลไกในสถานที่เพื่อให้แน่ใจว่าการดำเนินงานของระบบไฟล์เป็นแบบอะตอมมิก โดยทั่วไปความผิดพลาดของดิสก์จะส่งผลให้ข้อมูลสูญหาย แต่ไม่ใช่ปัญหาเรื่องความสมบูรณ์ของข้อมูล