เคาน์เตอร์ ARC ของ ZFS ขัดขืนหรือไม่


2

สมมติว่าฉันมีข้อมูลบางอย่างที่เข้าถึงได้บ่อยและมีข้อมูลที่เข้าถึงได้น้อย ฉันเข้าใจว่าในที่สุด ARC จะเรียนรู้ที่จะหยุดการหลีกเลี่ยงข้อมูลที่เข้าถึงบ่อยเพื่อให้มีที่ว่างสำหรับข้อมูลอื่นเพียงเพราะเพิ่งเข้าถึงข้อมูลอื่น สมมติว่าฉันใช้งานระบบ ZFS มาระยะหนึ่งแล้วและได้รับในรูปแบบการเข้าถึงนี้

ถ้าฉันรีบูทกล่องและข้อมูลที่เข้าถึงบ่อยถูกอ่านและใน ARC การอ่านข้อมูลอื่น ๆ จะทำให้เกิดการขับไล่ หรือ ZFS จำได้ว่ามีการใช้ข้อมูลบ่อยครั้งหรือไม่

หากขึ้นอยู่กับการนำไปใช้งานคำถามนี้เกี่ยวข้องกับ Solaris โดยเฉพาะ

คำตอบ:


1

ARC ไม่มีเคาน์เตอร์แบบถาวรใด ๆ ดังนั้นจะต้องเห็นรูปแบบการเข้าถึงของคุณอีกครั้งเพื่อตรวจสอบว่ามีบางสิ่งที่ใช้บ่อย อย่างไรก็ตามมันจะไม่ขับไล่สิ่งใดจนกว่าจะเต็ม / มีแรงกดดันต่อหน่วยความจำจากสิ่งอื่นในระบบดังนั้นในการบู๊ตครั้งแรก ทุกอย่าง ที่อ่านหรือเขียนจะสิ้นสุดในแคช ตราบใดที่ข้อมูลที่คุณเข้าถึงบ่อยๆได้รับการอ่านสองครั้งก่อนหน้านั้นควรทำให้มันเป็นรายการ“ MFU”

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับอัลกอริทึม ARC ที่นี่ . โดยสรุปแล้วมันทำมาจากสองรายการ LRU หนึ่งรายการสำหรับสิ่งที่ได้รับการประมวลผลครั้งเดียว ("รายการ MRU") และอีกรายการหนึ่งสำหรับรายการที่เข้าถึงสองครั้งหรือมากกว่า (รายการ "MFU" - ใช่ ชื่อไม่ถูกต้องใช้ LRU เพื่อขับไล่เพราะ LRU นั้นเร็วกว่าและง่ายกว่าที่จะติดตั้งมากกว่า MFU) นอกจากนี้ยังมี "รายการผี" ที่คอยติดตามกุญแจที่ถูกขับไล่เมื่อไม่นานมานี้ (แต่ไม่ใช่ข้อมูล) จากแต่ละรายการซึ่งช่วยในการพิจารณาว่าแคชทั้งสองขนาดใหญ่ควรสัมพันธ์กันอย่างไร

L2ARC นั้นยังคงอยู่ (โดยปกติจะเก็บไว้ใน SSD) แต่ไม่ได้ใช้อัลกอริธึม ARC (ยังเป็นชื่อย่อยอีกชื่อหนึ่ง) ฉันเชื่อว่ามันแค่ปัดเศษข้อมูลในแคช นอกจากนี้ฉันเชื่อว่าคุณไม่สามารถนำกลับมาใช้ใหม่ได้หลังจากรีบูตเว้นแต่ว่าคุณกำลังใช้ OpenZFS ของ Nexenta (ฉันไม่คิดว่าพวกเขาจะลงจอดต้นน้ำเลย)

ยกเว้นฟีเจอร์“ Persistent L2ARC” ของ Nexenta ไม่มีคำตอบนี้ในเฉพาะแพลตฟอร์ม

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