ฉันมีพูล ZFS นี้ซึ่งประกอบด้วยไดรฟ์ Samsung 870 QVO ขนาด 1TB สองตัวที่ทำมิเรอร์ซึ่งฉันใช้มาประมาณหนึ่งปีเพื่อจัดเก็บรูปภาพของแขกเป็น ZVOLในช่วงเวลานั้น ฉันได้สร้าง / ยุ่งกับ / ทำลายอินสแตนซ์ VM จำนวนมาก; พูลนี้ได้เห็นกิจกรรมของดิสก์ค่อนข้างมาก
เมื่อคืนที่ผ่านมา ขณะดูประสิทธิภาพของ I/O ของดิสก์บนหนึ่งใน VM ฉันตระหนักว่าฉันไม่เคยตัดแต่ง SSD เหล่านี้มาก่อน ไม่รู้ว่าจะคาดหวังอะไร ฉันปิด VMs และวิ่ง การตัดแต่ง zfs
บนสระน้ำ
โดยรวมแล้วการดำเนินการทั้งหมดใช้เวลาถึง 16 ชั่วโมง (!) จึงจะเสร็จสมบูรณ์ สำหรับการอ้างอิงนี่คือสิ่งที่ gstat -pdo
ต้องพูดในช่วงเวลานั้น (เอาต์พุตทั่วไปโดยมีค่าเฉลี่ยมากกว่า 10 วินาที):
L(q) ops/s r/s kBps ms/r w/s kBps ms/w d/s kBps ms/d o/s ms/o %ไม่ว่าง ชื่อ
11 45 0 0 0.0 27 292 84.9 18 8497 114.3 0 82.9 101.0| ada0
12 37 0 0 0.0 26 283 92.1 11 6547 189.1 0 84.2 100.6| ada1
ไม่ว่าในกรณีใด ฉันอดทนปล่อยให้มันดำเนินไปจนจบ
จากนั้นเมื่อช่วงเช้าของวันนี้ ขณะที่ VM ทั้งหมดยังคงหยุดทำงาน ฉันจึงตัดสินใจเรียกใช้ การตัดแต่ง zfs
อีกครั้ง. เหตุผลของฉันคือเนื่องจากไม่มีกิจกรรมที่สำคัญในพูลนั้นเลยตั้งแต่ TRIM ครั้งล่าสุด และด้วยบล็อกส่วนใหญ่ที่ไม่ได้จัดสรรซึ่งควรจะเรียกคืนโดยคอนโทรลเลอร์ SSD ในครั้งแรก ครั้งนี้จะเร็วขึ้นมาก
สัญชาตญาณของฉันผิด: ตอนนี้ TRIM นี้ทำงานมาประมาณ 5 ชั่วโมงแล้ว และตามที่ สถานะ zpool -t
เสร็จไปแล้วกว่า 30% เห็นได้ชัดว่าฉันกำลังดูเวลาทำงานโดยรวมที่ใกล้เคียงกัน (ประมาณ 16 ชม. ให้หรือรับ)
พฤติกรรมนั้นคาดหวังหรือไม่ ? เพราะถ้าเป็นเช่นนั้น แน่นอนว่าฉันต้องขาดบางอย่างเกี่ยวกับวิธีการทำงานของ TRIM
หมายเหตุ:
- ฉันทราบข้อบกพร่องของซีรี่ส์ QVO (แฟลช MLC 4 บิต, แคชหลอก SLC จำนวนเล็กน้อยที่ฉาวโฉ่) ดังนั้นฉันจึงไม่ได้คาดหวังว่าจะมีการแสดงที่บ้าๆ บอๆ เริ่มต้นด้วย
- อาจมีบางอย่างผิดปกติกับการตั้งค่าของฉัน (สายเคเบิล SATA ไม่ดี ฯลฯ ..) แต่ถึงกระนั้นก็ไม่ได้อธิบายว่าทำไมระบบดูเหมือนจะไม่ได้รับประโยชน์จาก TRIM ก่อนหน้านี้ที่ทำงานบนพูลเดียวกัน