เรามีเซิร์ฟเวอร์ฐานข้อมูลการผลิตใน SQL 2005 ทุกอย่างทำงานได้ตามปกติ แต่หลังจากผ่านไปสองสัปดาห์เราจะเห็นว่าประสิทธิภาพการทำงานลดลง การรีสตาร์ท SQL Server จะทำให้ประสิทธิภาพกลับสู่ปกติ
พื้นหลังบางส่วน:
- ใช้งานฐานข้อมูลมากกว่า 1,200 ฐานข้อมูล (ส่วนใหญ่เป็นผู้เช่ารายเดียวและมีหลายผู้เช่า) ก่อนที่ใครจะบรรยายเกี่ยวกับการย้ายไปยังผู้เช่าหลายคนเท่านั้นมีเหตุผลที่ถูกต้องในการรักษาโครงสร้างนี้ ......
- RAM คือ 16 GB หลังจากรีสตาร์ทจะใช้เวลาไม่นานสำหรับ SQL Server ที่จะกลับไปใช้งานขนาด 15 GB
- การเชื่อมต่อฐานข้อมูล Active มีประมาณ 80 การเชื่อมต่อซึ่งเรารู้สึกว่าค่อนข้างดีเนื่องจากมีพูลการเชื่อมต่อหนึ่งต่อเว็บเซิร์ฟเวอร์ต่อกระบวนการดังนั้นเราจึงไม่มีปัญหาการรั่วไหลของการเชื่อมต่อ
เราได้ลองหลายสิ่งหลายอย่างในเวลาที่ไม่มาก: - รัน DBCC DROPCLEANBUFFERS (พร้อม CHECKPOINT) เพื่อล้างแคชข้อมูล มันไม่มีผลกระทบหรือไม่ล้างการใช้ RAM ใด ๆ ) - รัน FREEPROCCACHE และ FREESYSTEMCACHE เพื่อล้างแผนคิวรีและเก็บแคช proc ไม่มีผลกระทบ.
การรีสตาร์ท SQL Server อย่างชัดเจนนั้นไม่เหมาะในสภาพแวดล้อมการใช้งานจริง เรากำลังพลาดอะไรบางอย่าง ใครบ้างที่ผ่านสิ่งนี้?
อัปเดต: เมษายน 28-2012 ยังคงต่อสู้กับปัญหานี้ ฉันลดหน่วยความจำสำหรับ SQL Server เหลือ 10 GB เพื่อตัดทอนการโต้แย้งใด ๆ กับระบบปฏิบัติการ ฉันเข้าใกล้เพื่อ จำกัด ให้แคบลง แต่ต้องการความช่วยเหลือจากขั้นตอนต่อไปของฉัน
นี่คือสิ่งที่ฉันพบหลังจากรีสตาร์ท SQL Server ไฟล์เพจจะอยู่ระหว่าง 12.3 GB และ 12.5 GB มันจะเป็นแบบนั้นต่อไปอีกหลายวัน เธรดเซิร์ฟเวอร์ทั้งหมดจะอยู่ระหว่าง 850 ถึง 930 และมีความเสถียรและสอดคล้องกันสำหรับวันที่สิ้นสุด (sqlserver อยู่ระหว่าง 55 ถึง 85 ต่อเนื่องขึ้นอยู่กับปริมาณการใช้งาน)
จากนั้นก็มี "เหตุการณ์" ฉันไม่รู้ว่าเหตุการณ์คืออะไรฉันไม่สามารถดูได้ในบันทึกและฉันไม่สามารถเห็นสิ่งใดที่สอดคล้องกันในวันของสัปดาห์หรือเวลาที่เกิดขึ้น แต่สิ่งที่น่าสนใจที่เขาทำคือ pagefile ข้ามไปเป็น 14.1 หรือ 14.2 GB และเธรดข้ามไประหว่าง 1750 และ 1785
การตรวจสอบ perfom เมื่อสิ่งนี้เกิดขึ้นกว่า 900 กระทู้เหล่านั้นคือ sqlserver ดังนั้นฉันไปที่ sp_who2 เพื่อดูว่าเธรดเหล่านี้มาจากไหน ... และมีเพียง 80 หรือมากกว่านั้นการเชื่อมต่อฐานข้อมูล
ดังนั้น .... ไม่มีใครมีความคิดใด ๆ ว่าฉันสามารถค้นหาตำแหน่งที่เหลือของเธรด 900 เหล่านี้บนเซิร์ฟเวอร์ SQL ได้อย่างไรและพวกเขากำลังทำอะไร
ปรับปรุง: มิถุนายน 01-2012 ยังคงต่อสู้กับปัญหา สำหรับทุกคนที่อ่านข้อความนี้ปัญหาของเธรดที่กระโดดขึ้นมาได้รับการแก้ไขแล้ว ปัญหานี้เกิดจากซอฟต์แวร์สำรองข้อมูล ComVault มันกำลังสร้างเธรดที่พยายามสำรองฐานข้อมูลที่ไม่ได้อยู่ที่นั่นอีกต่อไป (มันกำลังดูแลรายการของฐานข้อมูลก่อนหน้านี้) แทนที่จะเพียงแค่สำรองฐานข้อมูลปัจจุบัน
แต่ - ปัญหายังคงอยู่และเราต้องเริ่มใหม่ทุกสัปดาห์ให้หรือใช้เวลาสองสามวัน ทำงานกับทีม Rackspace เพื่อดูว่าพวกมันสามารถส่องแสงได้หรือไม่