หนึ่งในเซิร์ฟเวอร์ SQL ของเราซึ่งทำงานอย่างเสถียรมานานพอสมควร (หลายปี) เพิ่งเกิดข้อผิดพลาดเกี่ยวกับหน่วยความจำไม่เพียงพอ จากบันทึกเหตุการณ์ของแอปพลิเคชันเราจะเห็น:
รหัสเหตุการณ์: 701
คำอธิบาย: มีหน่วยความจำระบบไม่เพียงพอที่จะเรียกใช้แบบสอบถามนี้
ทีมงานของเราที่จัดการเซิร์ฟเวอร์นี้ประกอบด้วยนักพัฒนาส่วนใหญ่ที่ทำหน้าที่ดูแลระบบเป็นสองเท่า อย่างไรก็ตามความเชี่ยวชาญหลักของเราคือการพัฒนา อย่างที่บอกไปแล้วว่าเรากำลังขาดทุนอยู่ว่าเราจะแก้ไขปัญหานี้อย่างไร เราได้ทำการค้นหาในฟอรัมและยังไม่พบอะไรเลยและไม่พบสิ่งใดที่ตรงกับความต้องการ
ดังนั้นนี่คือรายละเอียดเพิ่มเติมที่จะช่วยในการแก้ไขปัญหา:
- หน่วยความจำเซิร์ฟเวอร์ขั้นต่ำของเราตั้งเป็น 0
- หน่วยความจำเซิร์ฟเวอร์สูงสุดของเราตั้งไว้ที่ 2000
- หน่วยความจำกายภาพทั้งหมดคือ 3,325.85 MB (จาก sysinfo)
- หน่วยความจำเสมือนทั้งหมดคือ 7.10 GB (จาก sysinfo)
- เราไม่ได้ใช้ AWE เพื่อจัดสรรหน่วยความจำ แต่ตอนนี้เรามาดูว่ามันสร้างความแตกต่างหรือไม่
- ข้อผิดพลาดนี้เกิดจากงานที่สำรองข้อมูลบันทึกธุรกรรมโดยไม่เรียกใช้แบบสอบถาม
- เรามีเซิร์ฟเวอร์ที่เชื่อมโยงมากมาย ประเภทของ RDBMS ที่อยู่อีกด้านคือระบบ SQL Server (2005 และ 2000), Oracle 10g และ OSI PI
- ณ จุดนี้ไม่ต่อเนื่อง ดูเหมือนว่าเราจะไม่สามารถมีความสัมพันธ์ได้ตลอดเวลาหรือเหตุการณ์กับข้อผิดพลาด
- แน่นอนว่าการรีบู๊ตดูเหมือนจะทำให้มันหายไประยะหนึ่งซึ่งเหมาะสมเนื่องจากลักษณะของข้อความแสดงข้อผิดพลาด
- เซิร์ฟเวอร์นี้เป็นเซิร์ฟเวอร์แอปพลิเคชัน (บริการ Windows สองสาม) และเว็บเซิร์ฟเวอร์รวมถึงเซิร์ฟเวอร์ฐานข้อมูล
แก้ไข:
เราอยู่ใน SP3 โพสต์ส่วนใหญ่ที่เราพบก่อนหน้า SP1 ซึ่งไม่ได้ใช้กับเรา
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
ผลตอบแทน
9.00.4035.00 SP3 Standard Edition