ทุกครั้งที่ Oracle ® Database อ่านหรือเขียนข้อมูลไปยังดิสก์ ฐานข้อมูลจะสร้างการดำเนินการอินพุตและเอาต์พุต (I/O) ของดิสก์ ประสิทธิภาพของแอปพลิเคชันซอฟต์แวร์จำนวนมากถูกจำกัดโดยดิสก์ I/O และแอปพลิเคชันที่ใช้เวลาส่วนใหญ่ของหน่วยประมวลผลกลาง (CPU) ที่รอกิจกรรม I/O ให้เสร็จสิ้นจะถูกผูกไว้กับ I/O การปรับเทียบ I/O ช่วยแก้ไขปัญหานี้
แนะนำตัว
การสร้างระบบย่อย I/O ที่มั่นคงเป็นส่วนสำคัญในการสร้างโครงสร้างพื้นฐานสำหรับแอปพลิเคชัน หากส่วนประกอบใดๆ ในสแต็ก I/O มีปริมาณงานจำกัด มันจะกลายเป็นลิงก์ที่อ่อนแอที่สุดในโฟลว์ I/O เนื่องจากปริมาณงานในโลกแห่งความเป็นจริงไม่สามารถทำซ้ำได้ง่าย การตรวจสอบความถูกต้องของระบบย่อย I/O จึงเป็นงานที่น่ากลัวเสมอ
คุณลักษณะการปรับเทียบ I/O ของ Oracle Database ช่วยให้คุณสามารถประเมินประสิทธิภาพของระบบย่อยพื้นที่จัดเก็บ และตรวจสอบว่าปัญหาด้านประสิทธิภาพ I/O เกิดจากฐานข้อมูลหรือโดยระบบย่อยของพื้นที่จัดเก็บ ต่างจากเครื่องมือสอบเทียบ I/O ภายนอกอื่นๆ ที่ออกการดำเนินการ I/O ตามลำดับ คุณลักษณะ I/Ocalibration ของ Oracle Database จะออกการดำเนินการ I/O แบบสุ่มโดยใช้ไฟล์ข้อมูลของ Oracle เพื่อเข้าถึงสื่อจัดเก็บข้อมูล ซึ่งให้ผลลัพธ์ที่ตรงกับประสิทธิภาพที่แท้จริงของฐานข้อมูลมากขึ้น
คุณลักษณะ Calibrate I/O ขึ้นอยู่กับฟังก์ชัน PL/SQL ที่เรียกว่าDBMS_RESOURCE_MANAGER.CALIBRATE_IO()
. เมื่อเรียกใช้ Calibrate I/O มันจะสร้างปริมาณงานที่มีลักษณะดังต่อไปนี้:
- I/O แบบเข้มข้น อ่านอย่างเดียว I/O แบบสุ่ม (db_block_size)
- บล็อกขนาดใหญ่ (1 MB) ปริมาณงาน I/O ตามลำดับ
ผลลัพธ์จากการปรับเทียบ I/O ควรได้รับการตรวจสอบและเปรียบเทียบกับอัตราปริมาณงานที่คาดหวัง (ปริมาณงานโดยรวมสูงสุดของระบบย่อย I/O) I/Ocalibration สามารถใช้เพื่อประเมินประสิทธิภาพของระบบย่อยหน่วยเก็บข้อมูลและเพื่อพิจารณาว่าปัญหาด้านประสิทธิภาพของ I/O เป็นผลมาจากโฮสต์ฐานข้อมูลหรือระบบย่อยหน่วยเก็บข้อมูลหรือไม่
บล็อกนี้ครอบคลุมหัวข้อต่อไปนี้:
- ข้อกำหนดเบื้องต้นสำหรับการสอบเทียบ I/O
- กำลังเรียกใช้การปรับเทียบ I/O
- ข้อควรพิจารณาในการสอบเทียบ
ข้อกำหนดเบื้องต้นสำหรับการสอบเทียบ I/O
ก่อนดำเนินการสอบเทียบ I/O ตรวจสอบให้แน่ใจว่าเป็นไปตามข้อกำหนดต่อไปนี้:
- ผู้ใช้จะต้องได้รับ
SYSDBA
สิทธิพิเศษ TIMED_STATISTICS
ต้องตั้งค่าเป็นTRUE
.- ต้องเปิดใช้งาน I/O แบบอะซิงโครนัส
เมื่อใช้ระบบไฟล์ สามารถเปิดใช้งาน I/O แบบอะซิงโครนัสได้โดยการตั้งค่า FILESYSTEMIO_OPTIONS
พารามิเตอร์การเริ่มต้นเป็น SETALL
.
ด้วย I/O แบบซิงโครนัส เมื่อคำขอ I/O ถูกส่งไปยังระบบปฏิบัติการ กระบวนการเขียนจะถูกบล็อกจนกว่าการดำเนินการจะเสร็จสิ้น ด้วย I/O แบบอะซิงโครนัส กระบวนการเรียกยังคงทำงานต่อไปโดยไม่ปิดกั้นคำขออื่นๆ ที่ยังคงดำเนินการอยู่
ตรวจสอบให้แน่ใจว่าเปิดใช้งาน I/O แบบอะซิงโครนัสสำหรับไฟล์ข้อมูลโดยเรียกใช้การสืบค้น SQL ต่อไปนี้:
COL NAME FORMAT A50
SELECT NAME,ASYNCH_IO FROM V$DATAFILE F,V$IOSTAT_FILE I
WHERE F.FILE#=I.FILE_NO
AND FILETYPE_NAME='Data File';
รูปภาพต่อไปนี้แสดงข้อความค้นหาและผลลัพธ์:
แสดงรายการผลลัพธ์ของคำสั่งในเซลล์หมายเหตุ: สามารถดำเนินการสอบเทียบได้ครั้งละหนึ่งรายการบนอินสแตนซ์ฐานข้อมูล
กำลังเรียกใช้การปรับเทียบ I/O
เข้าถึงคุณลักษณะการปรับเทียบ I/O ของ Oracle Database โดยใช้DBMS_RESOURCE_MANAGER.CALIBRATE_IO
ขั้นตอน. โพรซีเดอร์นี้ออกเวิร์กโหลดแบบอ่านอย่างเดียวของ I/O (ประกอบด้วยการดำเนินการ I/O แบบสุ่ม 1 MB) ไปยังไฟล์ฐานข้อมูลเพื่อกำหนด IOPS สูงสุด (คำขอ I/O ต่อวินาที) และ MBPS (เมกะไบต์ของ I/O ต่อวินาที) ที่สามารถคงไว้โดยระบบย่อยการจัดเก็บ
การปรับเทียบ I/O ด้วย DBMS_RESOURCE_MANAGER.CALIBRATE_IO
ขั้นตอนรวมถึงขั้นตอนต่อไปนี้:
-
โพรซีเดอร์จะออกการอ่านขนาดบล็อกฐานข้อมูลแบบสุ่ม (โดยค่าเริ่มต้น 8 KB) ไฟล์ข้อมูลทั้งหมดจากอินสแตนซ์ฐานข้อมูลทั้งหมด ขั้นตอนนี้ให้การดำเนินการสูงสุดI/O ต่อวินาที (IOPS) ในพารามิเตอร์เอาต์พุต (
max_iops
) ที่ฐานข้อมูลสามารถคงอยู่ได้ ค่าของmax_iops
เป็นตัวชี้วัดที่สำคัญสำหรับฐานข้อมูลการประมวลผลธุรกรรมออนไลน์ (OLTP) พารามิเตอร์เอาต์พุตactual_latency
ให้เวลาแฝงเฉลี่ยสำหรับภาระงานนี้ คุณสามารถระบุเวลาแฝงเป้าหมายเฉพาะที่คุณต้องการด้วยพารามิเตอร์อินพุตmax_latency
ซึ่งระบุเวลาแฝงสูงสุดที่ยอมรับได้ในหน่วยมิลลิวินาทีสำหรับคำขอ I/O ขนาดบล็อกฐานข้อมูล -
ขั้นตอนนี้จะสุ่มอ่าน 1 MB ไปยังไฟล์ข้อมูลทั้งหมดจากอินสแตนซ์ฐานข้อมูลทั้งหมด ขั้นตอนนี้ให้ผลลัพธ์พารามิเตอร์เอาต์พุต
max_mbps
ซึ่งระบุเมกะไบต์สูงสุดต่อวินาที (MBPS) ของ I/O ที่ฐานข้อมูลสามารถรองรับได้ นี่เป็นตัวชี้วัดที่สำคัญสำหรับคลังข้อมูล
การสอบเทียบทำงานอย่างมีประสิทธิภาพมากขึ้นหากผู้ใช้ระบุnum_physical_disks
พารามิเตอร์อินพุต ซึ่งระบุจำนวนฟิสิคัลดิสก์โดยประมาณในระบบจัดเก็บข้อมูลฐานข้อมูล
เนื่องจากโอเวอร์เฮดจากการรันเวิร์กโหลด I/O การสอบเทียบ I/O ควรดำเนินการเฉพาะเมื่อฐานข้อมูลไม่ได้ใช้งาน หรือระหว่างชั่วโมงเร่งด่วน เพื่อลดผลกระทบของปริมาณงานการสอบเทียบ I/O ต่อปริมาณงานฐานข้อมูลปกติ
รูปภาพต่อไปนี้แสดงผลลัพธ์จาก DBMS_RESOURCE_MANAGER.CALIBRATE_IO
ขั้นตอน:
ข้อควรพิจารณาในการสอบเทียบ
ก่อนดำเนินการสอบเทียบ I/O ให้คำนึงถึงข้อควรพิจารณาต่อไปนี้:
- เรียกใช้การปรับเทียบเพียงครั้งเดียวในฐานข้อมูลที่ใช้ระบบย่อยการจัดเก็บเดียวกัน หากคุณเรียกใช้การสอบเทียบในฐานข้อมูลแยกกันที่ใช้ระบบย่อยหน่วยเก็บข้อมูลเดียวกัน การสอบเทียบจะล้มเหลว
- ปิดฐานข้อมูลเพื่อลด I/O บนอินสแตนซ์
- สำหรับการกำหนดค่า Oracle Real Application Clusters (RAC) ตรวจสอบให้แน่ใจว่าได้เปิดอินสแตนซ์ทั้งหมดเพื่อปรับเทียบระบบย่อยการจัดเก็บข้อมูลในโหนดต่างๆ
- สำหรับฐานข้อมูล Oracle RAC เวิร์กโหลดจะถูกสร้างขึ้นพร้อมกันจาก allinstances
- The
num_physical_disks
พารามิเตอร์อินพุตเป็นทางเลือก ด้วยการตั้งค่าพารามิเตอร์นี้เป็นจำนวนฟิสิคัลดิสก์โดยประมาณในระบบพื้นที่เก็บข้อมูลของฐานข้อมูล การสอบเทียบจะรวดเร็วและแม่นยำยิ่งขึ้น
ตลอดเวลาระหว่างกระบวนการสอบเทียบ I/O คุณสามารถสอบถามสถานะการสอบเทียบใน V$IO_CALIBRATION_STATUS
ดู. หลังจากการปรับเทียบ I/O เสร็จสมบูรณ์ ดูผลลัพธ์ใน DBA_RSRC_IO_CALIBRATE
ตารางคล้ายกับตัวอย่างต่อไปนี้:
คอลัมน์ | ความคุ้มค่า |
---|---|
START_TIME | 31-ส.ค. 60 04.40.09.920679 น. |
END_TIME | 31-ส.ค. 60 04.47.41.210939 น. |
MAX_IOPS | 39 |
MAX_MBPS | 60 |
MAX_PMBPS | 69 |
แฝง | 24 |
NUM_PHYSICAL_DISKS | 1 |
บทสรุป
คุณลักษณะการจัดการทรัพยากร I/O (IORM) และการปรับเทียบ I/O มีประโยชน์สำหรับการทำความเข้าใจข้อจำกัดของสถาปัตยกรรม I/O ปัจจุบันของคุณ หลังจากการปรับเทียบเสร็จสิ้นแล้ว สามารถใช้ข้อมูลเพื่อดำเนินการออกแบบ I/O และขนาดที่เหมาะสมได้ ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม