ประสิทธิภาพที่แย่ลงบนเซิร์ฟเวอร์ใหม่


11

เราอยู่บนเซิร์ฟเวอร์เฉพาะ (quad-core เดียว, RAM 6 GB) และกำลังย้ายไปยังเซิร์ฟเวอร์เฉพาะใหม่ (2x hex-core, 32 GB RAM) ทั้งสองเป็น Windows Server 2008, SQL Server 2008 ประสิทธิภาพการทำงานบนเซิร์ฟเวอร์ใหม่นั้นแย่กว่าเซิร์ฟเวอร์เก่าที่ช้ากว่าเล็กน้อย

ในการทดสอบแอปพลิเคชัน ASP.NET ของเราทำงานช้าลง 10 - 20% การเรียกใช้ข้อความค้นหาราคาแพงทีละรายการด้วยสถิติ IO และสถิติเวลาแสดงเวลาที่ผ่านไปมากกว่า 10 - 20% บนเซิร์ฟเวอร์ใหม่ โปรไฟล์การสืบค้นข้อมูล SQL แสดงการใช้งาน CPU ที่สูงขึ้นสำหรับการสืบค้นที่มีราคาแพง

ตัวจัดการงานบนเซิร์ฟเวอร์ใหม่แสดงให้เห็นว่า sqlserver.exe ใช้ RAM ขนาด 22 GB แต่ค่าของ CPU ยังคงต่ำอยู่เสมอ

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

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

มีอะไรอีกที่ฉันขาดหายไปจากที่นี่?

แก้ไข: MAXDOP ตั้งไว้ที่ 6

เซิร์ฟเวอร์เก่ามีระบบปฏิบัติการฐานข้อมูลและ tempdb อยู่ในฟิสิคัลไดรฟ์เดียวกัน (RAID 10) รวม 4 15k 3 Gb / s 3.5 นิ้ว SAS เซิร์ฟเวอร์ใหม่มีชุดไดรฟ์สามชุด: ระบบปฏิบัติการบน RAID 1, ฐานข้อมูลบน RAID 10, tempdb บน RAID 5 รวม 9 15K 6 Gb / s 2.5 นิ้ว SAS

เซิร์ฟเวอร์เก่ามี 1 x Intel Xeon E5620 2.40 GHz Quad-Core 8 เธรด (กว้าง H / T) เซิร์ฟเวอร์ใหม่มี 2 x Intel Xeon E5-2640 2.5 GHz หก -Core 12 เธรด (w H / T)

แก้ไข 2: นี่คือการวิเคราะห์ขั้นสุดท้าย:

แผนการใช้พลังงานมีความสมดุลไม่ได้มีประสิทธิภาพสูง เปลี่ยนไปมากกว่านั้น

Tempdb อยู่ใน RAID 5 ไม่ใช่ RAID 10 เพิ่ม HD อีกอันเพื่อสร้างการกำหนดค่า RAID 10 ที่แตกต่างกันสองรายการหนึ่งรายการสำหรับ tempdb และอีกหนึ่งรายการสำหรับทุกสิ่งอื่น

ไม่รวมไฟล์ที่เกี่ยวข้องกับ SQL (mdf, ldf, ndf, bak) จากการสแกนไวรัส

สร้างดัชนีใหม่ทั้งหมดหลังจากย้ายไปยังเซิร์ฟเวอร์ใหม่ มีการแยกส่วนอย่างมาก - อาจเป็นผลมาจากการสำรองข้อมูลคัดลอกกู้คืนหรือไม่

และฉันรู้ว่าตัวประมวลผลการกระโดดนั้นไม่ใหญ่ ข้อความค้นหาจะไม่ทำงานเร็วกว่านี้มากนัก แต่ด้วยตัวประมวลผลเพิ่มเติมแกนเพิ่มเติมและ RAM มากกว่าเราจะสามารถปรับขนาดได้มากขึ้น


นอกจากแผนการใช้พลังงานของ O / S คุณสามารถตั้งค่า BIOS ที่เกี่ยวข้องได้เช่น: stackoverflow.com/a/27807572/538763
crokusek

คำตอบ:


11

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

คำแนะนำของฉันจะย้าย tempdb เพื่อจู่โจม 10


4

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


3

คุณไม่ได้พูดอะไรเกี่ยวกับฮาร์ดดิสก์ของคุณและจำนวนไฟล์ tempdb ที่คุณมี มีคำแนะนำทั่วไปที่ nr ของ tempdbs = จำนวนของคอร์สูงถึง 32 นอกจากนี้ยังมีสวิตช์เพื่อโยนเพื่อให้แน่ใจว่าใช้ dbs อุณหภูมิเท่ากัน

อย่างไรก็ตามข้อมูลเชิงลึก: http://www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-%281230%29-tempdb-should-always-have-one-data- ไฟล์ต่อโปรเซสเซอร์ core.aspx นอกจากนี้ยังมีคุณเปลี่ยนบรรจุสำหรับตารางและดัชนีในระหว่างการโยกย้ายหรือไม่ การสำรองข้อมูลและคืนค่าอาจสิ้นสุดการกำหนดค่าเริ่มต้นเป็นช่องว่างภายในดัชนี (รวมถึงคลัสเตอร์)

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