Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

ภาพรวมการปรับเทียบ Oracle 11g I/O

ทุกครั้งที่ 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';

รูปภาพต่อไปนี้แสดงข้อความค้นหาและผลลัพธ์:

ภาพรวมการปรับเทียบ Oracle 11g I/O แสดงรายการผลลัพธ์ของคำสั่งในเซลล์

หมายเหตุ: สามารถดำเนินการสอบเทียบได้ครั้งละหนึ่งรายการบนอินสแตนซ์ฐานข้อมูล

กำลังเรียกใช้การปรับเทียบ 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 ขั้นตอนรวมถึงขั้นตอนต่อไปนี้:

  1. โพรซีเดอร์จะออกการอ่านขนาดบล็อกฐานข้อมูลแบบสุ่ม (โดยค่าเริ่มต้น 8 KB) ไฟล์ข้อมูลทั้งหมดจากอินสแตนซ์ฐานข้อมูลทั้งหมด ขั้นตอนนี้ให้การดำเนินการสูงสุดI/O ต่อวินาที (IOPS) ในพารามิเตอร์เอาต์พุต (max_iops ) ที่ฐานข้อมูลสามารถคงอยู่ได้ ค่าของ max_iops เป็นตัวชี้วัดที่สำคัญสำหรับฐานข้อมูลการประมวลผลธุรกรรมออนไลน์ (OLTP) พารามิเตอร์เอาต์พุต actual_latency ให้เวลาแฝงเฉลี่ยสำหรับภาระงานนี้ คุณสามารถระบุเวลาแฝงเป้าหมายเฉพาะที่คุณต้องการด้วยพารามิเตอร์อินพุต max_latency ซึ่งระบุเวลาแฝงสูงสุดที่ยอมรับได้ในหน่วยมิลลิวินาทีสำหรับคำขอ I/O ขนาดบล็อกฐานข้อมูล

  2. ขั้นตอนนี้จะสุ่มอ่าน 1 MB ไปยังไฟล์ข้อมูลทั้งหมดจากอินสแตนซ์ฐานข้อมูลทั้งหมด ขั้นตอนนี้ให้ผลลัพธ์พารามิเตอร์เอาต์พุต max_mbps ซึ่งระบุเมกะไบต์สูงสุดต่อวินาที (MBPS) ของ I/O ที่ฐานข้อมูลสามารถรองรับได้ นี่เป็นตัวชี้วัดที่สำคัญสำหรับคลังข้อมูล

การสอบเทียบทำงานอย่างมีประสิทธิภาพมากขึ้นหากผู้ใช้ระบุnum_physical_disks พารามิเตอร์อินพุต ซึ่งระบุจำนวนฟิสิคัลดิสก์โดยประมาณในระบบจัดเก็บข้อมูลฐานข้อมูล

เนื่องจากโอเวอร์เฮดจากการรันเวิร์กโหลด I/O การสอบเทียบ I/O ควรดำเนินการเฉพาะเมื่อฐานข้อมูลไม่ได้ใช้งาน หรือระหว่างชั่วโมงเร่งด่วน เพื่อลดผลกระทบของปริมาณงานการสอบเทียบ I/O ต่อปริมาณงานฐานข้อมูลปกติ

รูปภาพต่อไปนี้แสดงผลลัพธ์จาก DBMS_RESOURCE_MANAGER.CALIBRATE_IO ขั้นตอน:

ภาพรวมการปรับเทียบ Oracle 11g I/O แสดงรายการผลลัพธ์ของคำสั่งในเซลล์

ข้อควรพิจารณาในการสอบเทียบ

ก่อนดำเนินการสอบเทียบ 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 และขนาดที่เหมาะสมได้ ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม