แหล่งที่มาหลายแห่ง (แต่ไม่มาก) แนะนำว่าควรจัดสรรพื้นที่จัดสรร SSD ประมาณ 7% ของพื้นที่ SSD เพื่อลดการสึกหรอของไดรฟ์ มันยังใช้ได้หรือไม่ตอนนี้หรือสถานการณ์เปลี่ยนไป?
แหล่งที่มาหลายแห่ง (แต่ไม่มาก) แนะนำว่าควรจัดสรรพื้นที่จัดสรร SSD ประมาณ 7% ของพื้นที่ SSD เพื่อลดการสึกหรอของไดรฟ์ มันยังใช้ได้หรือไม่ตอนนี้หรือสถานการณ์เปลี่ยนไป?
คำตอบ:
โดยทั่วไป Windows จะใช้ TRIM ซึ่งหมายความว่าตราบใดที่คุณมีพื้นที่ว่าง X% ในระบบไฟล์ไดร์ฟจะเห็นว่า X% ไม่ได้ถูกจัดสรร [*] ไม่จำเป็นต้องจัดสรรพื้นที่ส่วนเกิน
ข้อยกเว้น: ในอดีต SSD ที่มีตัวควบคุม / เฟิร์มแวร์ Sandforce ยังไม่ได้กู้คืนประสิทธิภาพการทำงานเต็มที่หลังจาก TRIM :(
การสูญเสียประสิทธิภาพของไดรฟ์แบบเต็มอาจมีความสำคัญและมากกว่าไดรฟ์อื่น สิ่งนี้จะเกี่ยวข้องกับแอมพลิฟายเออร์สำหรับการเขียนสูงและเพิ่มการสึกหรอ ที่มา: ความคิดเห็น Anandtech
ดังนั้นจึงจำเป็นถ้าและถ้า
การเปิดใช้งาน TRIM บน Linux นั้นไม่ใช่เรื่องยากเกินไปและคุณไม่สังเกตเห็นปัญหาใด ๆ
โชคดีที่แบรนด์ยอดนิยมหลายยี่ห้อสร้างตัวควบคุมของตนเอง คอนโทรลเลอร์ Sandforce ไม่ได้รับความนิยมเท่าที่เคยเป็นมา ปัญหา Sandforce ทำให้ฉันสงสัยเกี่ยวกับการออกแบบตัวควบคุม "สมาร์ท" นั้นซึ่งก้าวร้าวมากในเวลานั้น ขอโทษที่ Sandforce แต่ฉันไม่มีการอ้างอิงสำหรับรุ่นคอนโทรลเลอร์ที่แน่นอนที่ได้รับผลกระทบ
[*] ระบบไฟล์เช่นมีพื้นที่ว่างมากมายเช่นกันเพื่อลดการกระจายตัว ดังนั้น TRIM จึงยอดเยี่ยมเพราะคุณไม่จำเป็นต้องเพิ่มระยะขอบความปลอดภัยสองจุดเข้าด้วยกันพื้นที่ว่างเดียวกันจะช่วยให้พวกเขาทั้งสอง :) ไดรฟ์สามารถใช้ประโยชน์จากพื้นที่ที่ไม่ได้จัดสรรเพื่อปรับปรุงประสิทธิภาพเช่นเดียวกับการหลีกเลี่ยงการสึกหรอสูงตามที่คุณพูด
คอนโทรลเลอร์ SSD รุ่นใหม่นั้นฉลาดพอที่จะไม่จำเป็นต้องใช้การ overprovisioning ในชีวิตประจำวันมากนัก อย่างไรก็ตามยังคงมีสถานการณ์ส่วนใหญ่ในสภาพแวดล้อมดาต้าเซ็นเตอร์ที่แนะนำให้ overprovisioning เพื่อทำความเข้าใจว่าทำไมการเตรียมใช้งานมากเกินไปจึงมีประโยชน์จำเป็นต้องเข้าใจวิธีการทำงานของ SSD
SSDs ใช้ชนิดของหน่วยความจำที่เรียกว่าNAND หน่วยความจำแฟลช ไม่เหมือนกับฮาร์ดไดรฟ์เซลล์ NAND ที่มีข้อมูลไม่สามารถเขียนทับได้โดยตรง ไดรฟ์จำเป็นต้องลบข้อมูลที่มีอยู่ก่อนจึงจะสามารถเขียนข้อมูลใหม่ได้ นอกจากนี้ในขณะที่ SSD เขียนข้อมูลในหน้าที่มีขนาด 4 KB ถึง 16 KB แต่สามารถลบข้อมูลในกลุ่มเพจขนาดใหญ่ที่เรียกว่าบล็อกโดยทั่วไปจะมีขนาดหลายร้อย KB ถึงขนาดหลาย MB ใน SSD ที่ทันสมัย
NAND ยังมีจำนวนความอดทนในการเขียนที่จำกัด เพื่อหลีกเลี่ยงการเขียนข้อมูลซ้ำโดยไม่จำเป็นเพื่อลบบล็อกและเพื่อให้แน่ใจว่าไม่มีบล็อกได้รับจำนวนการเขียนที่ไม่เหมาะสมไดรฟ์จะพยายามกระจายการเขียนโดยเฉพาะการเขียนแบบสุ่มขนาดเล็กไปยังบล็อกต่าง ๆ หากการเขียนแทนที่ข้อมูลเก่ามันจะทำเครื่องหมายหน้าเก่าว่าไม่ถูกต้อง เมื่อเพจทั้งหมดในบล็อกถูกทำเครื่องหมายว่าไม่ถูกต้องไดรฟ์จะสามารถลบได้โดยไม่ต้องเขียนข้อมูลที่ถูกต้องใหม่
หากไดรฟ์มีพื้นที่ว่างเหลือน้อยหรือไม่มีเลยก็จะไม่สามารถกระจายการเขียนได้ แต่ไดรฟ์จะต้องลบบล็อกทันทีเนื่องจากการเขียนจะถูกส่งไปยังไดรฟ์เขียนข้อมูลที่ถูกต้องภายในบล็อกเหล่านั้นไปยังบล็อกอื่น ผลนี้ในข้อมูลเพิ่มเติมถูกเขียนไป NAND กว่าถูกส่งไปยังไดรฟ์, ปรากฏการณ์ที่เรียกว่าการเขียนขยาย การขยายการเขียนมีความเด่นชัดโดยเฉพาะอย่างยิ่งกับปริมาณงานที่เน้นการเขียนแบบสุ่มเช่นการประมวลผลธุรกรรมออนไลน์ (OLTP)และจำเป็นต้องรักษาไว้ให้น้อยที่สุดเพราะส่งผลให้ประสิทธิภาพและความอดทนลดลง
เพื่อลดการขยายการเขียนระบบที่ทันสมัยส่วนใหญ่สนับสนุนคำสั่งที่เรียกว่าTRIMซึ่งบอกไดรฟ์ที่บล็อกไม่มีข้อมูลที่ถูกต้องอีกต่อไปเพื่อให้สามารถลบได้ นี่เป็นสิ่งจำเป็นเนื่องจากไดรฟ์นั้นจำเป็นต้องสมมติว่าข้อมูลที่ถูกลบโดยระบบปฏิบัติการยังคงใช้ได้ซึ่งจะขัดขวางความสามารถของไดรฟ์ในการรักษาพื้นที่ว่างให้เพียงพอ
อย่างไรก็ตามบางครั้ง TRIM นั้นไม่สามารถทำได้เช่นเมื่อไดรฟ์อยู่ในกล่องหุ้มภายนอก (กล่องหุ้มส่วนใหญ่ไม่รองรับ TRIM) หรือเมื่อใช้ไดรฟ์กับระบบปฏิบัติการรุ่นเก่า นอกจากนี้ภายใต้ภาระงานการเขียนแบบสุ่มที่มีความเข้มข้นสูงการเขียนจะถูกกระจายไปทั่วภูมิภาคขนาดใหญ่ของ NAND พื้นฐานซึ่งหมายความว่าการบังคับให้เขียนข้อมูลใหม่และการขยายการเขียนของผู้เข้าร่วมสามารถเกิดขึ้นได้แม้ว่าไดรฟ์จะไม่เต็ม
SSD ที่เก่าที่สุดมีเฟิร์มแวร์ที่มีอายุน้อยกว่าซึ่งมักจะเขียนข้อมูลซ้ำบ่อยกว่าที่จำเป็น ผู้ควบคุม Indilinx และ JMicron ตอนต้น ( JMF602 น่าอับอายสำหรับการพูดติดอ่างและประสิทธิภาพการเขียนแบบสุ่มลึก ) ได้รับความทุกข์ทรมานจากการขยายการเขียนที่สูงมากภายใต้ปริมาณงานเขียนแบบสุ่มที่เข้มข้นบางครั้งเกิน 100x (ลองนึกภาพการเขียนข้อมูลมากกว่า 100 MB ไปยัง NAND เมื่อคุณพยายามเขียน 1 MB!) คอนโทรลเลอร์รุ่นใหม่ที่มีประโยชน์ของกำลังการประมวลผลที่สูงขึ้นอัลกอริธึมการจัดการแฟลชที่ปรับปรุงแล้วและการรองรับ TRIM นั้นสามารถจัดการกับสถานการณ์เหล่านี้ได้ดีกว่ามากแม้ว่าภาระงานการเขียนแบบสุ่มจำนวนมาก
Overprovisioning จัดเตรียมพื้นที่ว่างให้กับไดรฟ์ขนาดใหญ่เพื่อจัดการการเขียนแบบสุ่มและหลีกเลี่ยงการเขียนข้อมูลซ้ำซ้อน SSD ทั้งหมดได้รับการกำหนดให้มากไปจนถึงระดับน้อยที่สุด บางคนใช้ความแตกต่างระหว่าง GB และ GiB เท่านั้นเพื่อให้พื้นที่ว่างประมาณ 7% สำหรับไดรฟ์เพื่อทำงานกับในขณะที่คนอื่นมี overprovisioning มากขึ้นเพื่อเพิ่มประสิทธิภาพการทำงานสำหรับความต้องการของโปรแกรมเฉพาะ ตัวอย่างเช่น SSD ระดับองค์กรสำหรับ OLTP แบบเขียนอย่างหนักหรือปริมาณงานฐานข้อมูลอาจมี NAND แบบฟิสิคัล 512 GiB แต่มีความจุโฆษณา 400 GB แทนที่จะเป็น SSD ทั่วไป 480 ถึง 512 GB ที่มี NAND ในปริมาณใกล้เคียงกัน
หากเวิร์กโหลดของคุณมีความต้องการเป็นพิเศษหรือหากคุณใช้ไดรฟ์ในสภาพแวดล้อมที่ไม่รองรับ TRIM คุณสามารถ overprovision space ด้วยตนเองโดยแบ่งพาร์ติชันของไดรฟ์เพื่อให้ไม่ใช้พื้นที่บางส่วน ตัวอย่างเช่นคุณสามารถแบ่งพาร์ติชัน 512 GB SSD เป็น 400 GB และปล่อยให้พื้นที่ที่เหลือไม่ได้ถูกจัดสรรและไดรฟ์จะใช้พื้นที่ที่ไม่ได้จัดสรรเป็นพื้นที่ว่าง อย่างไรก็ตามโปรดทราบว่าพื้นที่ที่ไม่ได้ถูกจัดสรรนี้จะต้องถูกตัดออกถ้ามันถูกเขียนไปก่อน ไม่เช่นนั้นจะไม่มีประโยชน์เนื่องจากไดรฟ์จะเห็นพื้นที่ว่างดังกล่าว (ยูทิลิตี้การแบ่งพาร์ทิชันควรฉลาดพอที่จะทำสิ่งนี้ แต่ฉันไม่แน่ใจ 100% โปรดดูที่"การที่ Windows แบ่งพื้นที่ว่าง (ไม่ฟอร์แมต) ใน SSD หรือไม่?" )
ในสภาพแวดล้อมของผู้บริโภคทั่วไปที่รองรับ TRIM SSD นั้นน้อยกว่า 70-80% และไม่ได้รับการกระแทกอย่างต่อเนื่องเมื่อมีการเขียนแบบสุ่มการขยายการเขียนโดยทั่วไปจะไม่เป็นปัญหาและโดยทั่วไปแล้วไม่จำเป็นต้องมีการ
ในท้ายที่สุดผู้บริโภคส่วนใหญ่จะไม่เขียนข้อมูลลงบนดิสก์เพียงพอที่จะทำให้ NAND เสื่อมสภาพภายในอายุการใช้งานที่ตั้งใจของ SSD ส่วนใหญ่แม้ว่าจะมีการขยายการเขียนสูงดังนั้นจึงไม่ใช่เรื่องที่จะต้องนอนหลับ
ขนาดของพื้นที่เพิ่มเติมนั้นมีความแตกต่างกันมากระหว่างไดรฟ์ SSD แต่โดยทั่วไปยังคงเป็นจริง