SQL Errorlog ข้อความ FlushCache คงที่

Sep 04 2020

เซิร์ฟเวอร์ที่เป็นส่วนหนึ่งของ SQL 2017 Always on Availability Group (BAG) ฉันสังเกตเห็นข้อความเหล่านี้เพิ่มขึ้น ฉันเข้าใจว่าข้อความเหล่านี้เป็นข้อความที่ปรากฏในบันทึกเป็นมาตรฐานตั้งแต่ปี 2012 (การตั้งค่าสถานะการติดตามก่อนปี 2012) แต่ในช่วง 2 วันที่ผ่านมาข้อความเหล่านี้จะปรากฏขึ้นทุกๆสองสามนาทีไม่มีงานสำรองหรืองานบำรุงรักษาในเวลานี้

เซิร์ฟเวอร์กำลังทำหน้าที่เป็นความล้มเหลวรองที่ไม่สามารถอ่านได้เหนือคู่ค้าและเซิร์ฟเวอร์หลักไม่แสดงพฤติกรรมเดียวกัน

09/04/2020 10: 52: 24, spid82s, ไม่ทราบ, FlushCache: ล้าง 2303 bufs ด้วย 1881 เขียนใน 81090 ms (หลีกเลี่ยง 11 bufs สกปรกใหม่) สำหรับ db 7: 0 09/04/2020 10:52:07, spid52s, Unknown, เป้าหมายสุดท้ายที่โดดเด่น: 2 avgWriteLatency 86 09/04/2020 10: 52: 07, spid52s, Unknown, การเขียนเฉลี่ยต่อวินาที: 17.70 เขียน / วินาทีปริมาณงานเฉลี่ย: 0.19 MB / วินาทีความอิ่มตัวของ I / O: สวิตช์บริบท 13073 15434

นอกจากนี้ยังมีคำเตือนในบันทึกข้อผิดพลาดของระบบเกี่ยวกับปัญหาดิสก์ไม่กี่วินาทีหลังจากนี้กลุ่มความพร้อมใช้งานล้มเหลวนับตั้งแต่ข้อความ FlushCache เพิ่มขึ้น

มีใครมีประสบการณ์อะไรที่คล้ายกันหรือมีคำแนะนำผู้ดูแลระบบของฉันก็ดูที่ SAN และ VMware estate

มีความคิดที่ฉับพลันเหล่านี้อาจเกิดจากกิจกรรมการเจริญเติบโตอัตโนมัติหรือไม่?

คำตอบ

4 AaronBertrand Sep 04 2020 at 10:05

เปลี่ยนไปใช้จุดตรวจทางอ้อม (โดยทั่วไปตั้งค่าช่วงเวลาการกู้คืนเป็น 60 วินาทีอย่างน้อยสำหรับฐานข้อมูลผู้ใช้)

ฉันเขียนเกี่ยวกับปัญหานี้ที่นี่และที่นี่และคุณควรอ่านโพสต์เหล่านั้นอย่างครบถ้วนก่อนทำการเปลี่ยนแปลงแม้ว่า IMHO จะไม่ใช่เรื่องง่าย

ผลกระทบในสภาพแวดล้อมของเรารุนแรงและเกิดขึ้นทันทีและเป็นเรื่องง่ายที่จะพิสูจน์ว่าการเปลี่ยนแปลงนั้นมีความรับผิดชอบ ทุกฐานข้อมูลที่มีอาการเปลี่ยนไปจากจุดตรวจ 30-60 วินาทีและบันทึกข้อผิดพลาดที่เต็มไปด้วยข้อความเหล่านี้ไปยังจุดตรวจย่อยวินาทีและไม่มีรายการบันทึกข้อผิดพลาดอีกต่อไป

อาจมีเทคนิคการลดภาระงานของคุณด้วยเช่นดูโพสต์นี้โดย Itzik Ben-Ganแต่การทำให้จุดตรวจมีประสิทธิภาพมากขึ้นเป็นเส้นทางที่เร็วและง่ายกว่า พื้นที่เก็บข้อมูลและผู้ใช้ VM ของคุณไม่ได้หลุดออกจากเบ็ด มีปัญหาเกี่ยวกับดิสก์ที่พวกเขาต้องการแก้ไขอย่างแน่นอน (แต่ฉันไม่เห็นด้วยว่าข้อความ FlushCache เหล่านี้เป็นสาเหตุของความล้มเหลวใด ๆ มีแนวโน้มว่าพวกเขาจะเป็นเพียงเหยื่อ / อาการที่แตกต่างกัน)

3 DanCo Sep 04 2020 at 10:22

ตรวจสอบกับผู้ดูแลระบบจัดเก็บข้อมูลของคุณว่ามีการอัปเดตเฟิร์มแวร์เมื่อเร็ว ๆ นี้หรือระบบย่อยพื้นที่เก็บข้อมูลของคุณต้องการการอัปเดตเฟิร์มแวร์ที่ใหม่กว่า ฉันเคยเห็นข้อความนี้ในสภาพแวดล้อม SQL หลายครั้งและสิ่งหนึ่งที่คุณสามารถดูได้คือการกำหนดค่าเลเยอร์การจัดเก็บ (นี่คือสาเหตุทั่วไป) นอกจากนี้สิ่งหนึ่งในการตรวจสอบประสิทธิภาพดิสก์ของคุณโดยใช้ perfmon avg disk sec/Readเคาน์เตอร์ดิสก์ที่คุณจำเป็นต้องมุ่งเน้นไปที่: avg disk sec/Write, avg disk sec/Transfer,

คุณสามารถตรวจสอบลิงค์ต่อไปนี้ที่คุณสามารถดูได้ด้านล่าง:

  1. วิธีการทำงาน: เมื่อใดที่ข้อความ FlushCache ถูกเพิ่มในบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ SQL
  2. https://techcommunity.microsoft.com/t5/sql-server-support/how-it-works-when-is-the-flushcache-message-added-to-sql-server/ba-p/317038

เมื่อฉันพูดว่า storage layer ให้ตรวจสอบสิ่งต่อไปนี้: HBA / CNA, Fiber Cable, FC Switch, Ports, Storage controller, Software (MPIO drivers) - การกำหนดค่าทั้งหมด

สุดท้ายนี้ขอแนะนำให้ตรวจสอบและตรวจสอบข้อความเตือน / ข้อผิดพลาดในบันทึกเหตุการณ์ของคุณเสมอ อย่าปล่อยให้มันผ่านไปเพราะข้อความประเภทนี้ส่งผลระยะยาวตามท้องถนน