อาการ
เมื่อคุณเรียกใช้อินสแตนซ์ของ Microsoft SQL Server ๒๐๑๗ภายในคอนเทนเนอร์ของ Linux Docker คุณอาจได้รับข้อความแสดงข้อผิดพลาดของหน่วยความจำ
สาเหตุ
SQL Server บน Linux ตามค่าเริ่มต้นใช้ขีดจำกัดของ๘๐% ของหน่วยความจำกายภาพทั้งหมดเมื่อไม่ได้เปิดใช้งานการกำหนดค่าของหน่วยความจำ memorylimitmb สำหรับ Docker คอนเทนเนอร์ SQL ที่ใช้ในการพิจารณา๘๐% ของหน่วยความจำโฮสต์ทั้งหมดแทนที่จะจำกัดหน่วยความจำ๘๐% ที่จัดสรรให้กับคอนเทนเนอร์ Docker ขีดจำกัดของหน่วยความจำที่ไม่ถูกต้องนี้จะช่วยให้ SQL Server พยายามใช้หน่วยความจำมากกว่าที่พร้อมใช้งานสำหรับคอนเทนเนอร์และอาจเป็นผู้สมัครสำหรับการเลิกจ้างโดย OOM ฆาตกร
บันทึกย่อ เมื่อคุณสร้างรูป Docker ที่คุณต้องระบุ– m เพื่อจำกัดหน่วยความจำ Docker ดูบทความต่อไปนี้สำหรับข้อมูลเพิ่มเติม
การแก้ไข
การแก้ไขสำหรับปัญหานี้จะรวมอยู่ในการอัปเดต SQL Server ต่อไปนี้:
การอัปเดตที่สะสม10สำหรับ SQL Server ๒๐๑๗
บันทึกย่อถ้า memorylimitmb การกำหนดค่า ของหน่วยความจำ ไม่ได้รับการกำหนดค่าแล้วการแก้ไขนี้จะช่วยให้ SQL Server สามารถจำกัดตัวเองให้เป็นขีดจำกัดของ๘๐% ของหน่วยความจำที่จัดสรรให้กับคอนเทนเนอร์ได้
เกี่ยวกับ SQL Server รุ่น
รุ่นใหม่แต่ละรุ่นสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนและการแก้ไขปัญหาด้านความปลอดภัยทั้งหมดที่อยู่ในรุ่นก่อนหน้า เราขอแนะนำให้คุณติดตั้งรุ่นล่าสุดสำหรับ SQL Server เวอร์ชันของคุณ:
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
อ้างอิง
เรียนรู้เกี่ยวกับคำ ศัพท์ มาตรฐานที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์