ทำไม Azure SQL Server ของฉันช้าจัง


10

ขณะนี้เรามี VM ที่มีความสามารถต่ำมากและกำลังเสนอให้ย้ายไปยัง Azure VM ที่มีสเปคที่ดีกว่า ปัญหาคือ Azure VM ช้ากว่า VM ดั้งเดิมมากถึงแม้ว่ามันจะเป็นสเป็คที่สูงกว่าก็ตาม

เซิร์ฟเวอร์ดั้งเดิมคือ VM แบบ 2 คอร์ที่มีหน่วยความจำ 2GB ซึ่งเป็นเว็บเซิร์ฟเวอร์ มันรัน Microsoft SQL Server Web Edition 2008 R2 และเนื่องจากเซิร์ฟเวอร์นี้จะใช้สำหรับสิ่งอื่น ๆ ที่เราได้มีการ จำกัด หน่วยความจำเซิร์ฟเวอร์สูงสุดใน SQL Server เพื่อ512MB

เซิร์ฟเวอร์ใหม่เป็น VM 4 คอร์ที่มีหน่วยความจำ 7GB ซึ่งเป็นเซิร์ฟเวอร์ฐานข้อมูลเท่านั้น กำลังเรียกใช้ Microsoft SQL Server Standard Edition 2008 R2 และเราไม่ได้ จำกัด จำนวนหน่วยความจำที่ SQL Server สามารถใช้ได้

นี่เป็นหนึ่งในสองเซิร์ฟเวอร์ที่ติดตั้งในสภาพแวดล้อมที่ทำมิรเรอร์ แต่ฐานข้อมูลที่ฉันรันการทดสอบไม่ได้ทำมิเรอร์ ฐานข้อมูลอื่น ๆ บนเซิร์ฟเวอร์นี้ไม่ได้รับปริมาณการใช้งานมากในขณะนี้ (ในความเป็นจริงการตรวจสอบกิจกรรมไม่แสดงกิจกรรมบนฐานข้อมูลอื่น ๆ ในขณะที่ฉันทำการทดสอบเหล่านี้)

ฉันรู้ว่าปัญหาเกี่ยวกับ Azure VM คือฮาร์ดไดรฟ์เป็นทรัพยากรเครือข่ายเพื่อที่จะเป็นแหล่งที่มาของการชะลอตัวลง แต่ก็ยังช้าลงแม้ว่าจะมีการอ่านฟิสิคัล 0 รายการที่แสดงในสถิติ IO

ฉันได้ปฏิบัติตามคำแนะนำในการปรับแต่งในหน้านี้บน Azure VM รวมถึงการสตริปดิสก์ (ดิสก์สองตัวต่อไดรฟ์) และวางไฟล์บันทึกและข้อมูลในไดรฟ์แยกต่างหาก

สิ่งเดียวที่ฉันยังไม่ได้ทำคือเปิดใช้งานการบีบอัดหน้า จำกัด การเติบโตอัตโนมัติในฐานข้อมูลและย้ายบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ SQL และติดตามไดเรกทอรีไฟล์ไปยังดิสก์ข้อมูล ฉันไม่ได้ทำแบบนั้นบนเซิร์ฟเวอร์เก่าเช่นกัน

เซิร์ฟเวอร์เก่าไม่มีการปรับจูนนี้เสร็จแล้วและไฟล์บันทึกและข้อมูลอยู่ในไดรฟ์เดียวกันซึ่งไม่ได้ถูกสไทรพ์

ฐานข้อมูลบนเซิร์ฟเวอร์ปัจจุบันคือ 65 GB (45 data และ 20 log) ซึ่งใหญ่เกินไปสำหรับการถ่ายโอนไปยังเซิร์ฟเวอร์ใหม่ดังนั้นฉันกำลังทดสอบ DB ที่เล็กกว่า (6 data และ 13.5 log)

ผลลัพธ์บนเซิร์ฟเวอร์เก่าคือCPU time = 1311 ms, elapsed time = 1057 ms.และบนเซิร์ฟเวอร์ใหม่CPU time = 1281 ms, elapsed time = 2525 ms. นั่นเป็นเพียงการเรียกใช้เพียงครั้งเดียว แต่ผลลัพธ์แสดงถึงสิ่งที่ฉันเห็นตามปกติ

เซิร์ฟเวอร์ใหม่ดูเหมือนว่าจะมีเวลาที่ผ่านไปอย่างต่อเนื่องนานกว่าเวลา CPU อย่างมาก เป็นปัญหาหรือไม่และมีบางอย่างที่ฉันสามารถทำได้เพื่อติดตามสิ่งที่เป็นสาเหตุ

ฉันสามารถทำขั้นตอนอื่นใดเพื่อค้นหาสาเหตุที่เซิร์ฟเวอร์นี้ทำงานช้ามากเมื่อดูเหมือนว่าเซิร์ฟเวอร์ควรจะเร็วกว่าเซิร์ฟเวอร์เก่า


1
Maxdop 1 คุณเปรียบเทียบแผนการดำเนินการใช้ก่อนและหลังรอสถิติและตรวจสอบการบล็อกหรือไม่
Aaron Bertrand

1
มีไดรฟ์ข้อมูลกี่ตัว? ด้วยการจัดเก็บ Blob หน้ามาตรฐานแต่ละไดรฟ์จะถูก จำกัด ให้น้อยกว่า 300 IOPS ในระดับพื้นฐานหรือ 500 ในมาตรฐานซึ่งน้อยกว่าดิสก์หมุนรอบตัวมาก จำเป็นที่จะต้องมีไดรฟ์ให้มากที่สุด (vhd) เพื่อเพิ่ม IOPS และแบนด์วิดธ์ให้สูงสุด คุณสามารถใช้ Windows Storage Spaces เพื่อหลีกเลี่ยงความจำเป็นในการสร้างไฟล์ข้อมูลแยกต่างหากในแต่ละไดรฟ์
Dan Guzman

เซิร์ฟเวอร์ใหม่มี 4 VHDs สไทรพ์เป็นสองไดรฟ์ดังนั้นฉันมี 1,000 IOPS สำหรับบันทึกและ 1,000 IOPS สำหรับข้อมูล
Steve Kaye

VHD การจัดเก็บบล็อกหน้ามาตรฐานให้แบนด์วิดท์ประมาณ 30MB / วินาทีเนื่องจากการควบคุมปริมาณดังนั้นรวมเพียง 60MB / วินาที พิจารณาสร้าง 14 VHDs ข้อมูลสูงถึง 420MB / วินาทีและทำการสตริปทั้งหมด
Dan Guzman

ฉันสามารถมีดิสก์ได้ 8 แผ่นเท่านั้นเนื่องจากเป็นอินสแตนซ์ A3 ดังนั้นฉันจึงต้องอัปเกรดเป็น A4 เพื่อทำสิ่งที่มีราคาเป็นสองเท่า ฉันไม่คิดว่านี่เป็นปัญหาของไดรฟ์ แต่เนื่องจากการทดสอบด้านบนทั้งหมดมี 0 การอ่านทางกายภาพที่ระบุไว้ในสถิติ IO
Steve Kaye

คำตอบ:


2

สำหรับสิ่งที่คุ้มค่าฉันสิ้นสุดการเปลี่ยน VM ใน Azure จากประเภท A เป็นประเภท D แล้วแนบดิสก์อื่นและย้าย TEMPDB ไปยังดิสก์นั้น ดังนั้น VM สุดท้ายของฉันตอนนี้คือ D2 Standard พร้อม RAM 7 GB และดิสก์ข้อมูลสามตัวหนึ่งไฟล์สำหรับไฟล์ MDF อีกหนึ่งไฟล์สำหรับไฟล์ LDF และดิสก์ TEMPDB ใหม่

ฉันเลิกพยายามเข้าใจกับ A3 สิ่งที่คุณพูดถึงและเพียงอัพเกรดเครื่องเสมือน ฉันไปจาก A2 ถึง A3 และถึงแม้ว่าฉันจะพบการปรับปรุงบางอย่างฉันก็เลยเปลี่ยนมาใช้ D2 VM

ในเอกสารที่คุณระบุ Microsoft แนะนำ D3 สำหรับ Enterprise Edition หรือ D2 สำหรับเว็บหรือ Standard Edition และการใช้ Premium Storage รวมถึงสิ่งอื่น ๆ ในรายการตรวจสอบที่จุดเริ่มต้นของเอกสาร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.