การจัดสรรพื้นที่ส่วนเกิน SSD - ยังคงมีอยู่หรือไม่?


14

แหล่งที่มาหลายแห่ง (แต่ไม่มาก) แนะนำว่าควรจัดสรรพื้นที่จัดสรร SSD ประมาณ 7% ของพื้นที่ SSD เพื่อลดการสึกหรอของไดรฟ์ มันยังใช้ได้หรือไม่ตอนนี้หรือสถานการณ์เปลี่ยนไป?


มันไม่สำคัญเพราะปัญหาการเปิดใช้งาน TRIM ดังที่ฉันพูด ฉันสงสัยว่า SU เหมาะสำหรับคำถามนี้ แต่ตอนนี้ต้องแก้ไขเพื่อพูดถึง Linux!
sourcejedi

พื้นที่ว่างช่วยให้ประสิทธิภาพดีขึ้น การสึกหรอของไดรฟ์นั้นเกินความจริงและอาจเป็นตำนานในขณะนี้ SSD คุณภาพดีมีอายุการใช้งานยาวนานกว่า 10 ปีเขียนได้ตลอด 24/7 นี่อาจเป็นบทความที่ดีในการตรวจสอบ: howtogeek.com/165472/ - การเขียนบล็อกว่างเปล่านั้นค่อนข้างเร็ว แต่การเขียนบล็อกที่เต็มไปด้วยบางส่วนนั้นเกี่ยวข้องกับการอ่านบล็อกที่เต็มไปบางส่วนแก้ไขค่าแล้วเขียนมัน กลับ. ทำซ้ำหลาย ๆ ครั้งนี้สำหรับไฟล์แต่ละไฟล์ที่คุณเขียนไปยังไดรฟ์ ---
อาทิตย์

คำตอบ:


15

โดยทั่วไป Windows จะใช้ TRIM ซึ่งหมายความว่าตราบใดที่คุณมีพื้นที่ว่าง X% ในระบบไฟล์ไดร์ฟจะเห็นว่า X% ไม่ได้ถูกจัดสรร [*] ไม่จำเป็นต้องจัดสรรพื้นที่ส่วนเกิน

ข้อยกเว้น: ในอดีต SSD ที่มีตัวควบคุม / เฟิร์มแวร์ Sandforce ยังไม่ได้กู้คืนประสิทธิภาพการทำงานเต็มที่หลังจาก TRIM :(

การสูญเสียประสิทธิภาพของไดรฟ์แบบเต็มอาจมีความสำคัญและมากกว่าไดรฟ์อื่น สิ่งนี้จะเกี่ยวข้องกับแอมพลิฟายเออร์สำหรับการเขียนสูงและเพิ่มการสึกหรอ ที่มา: ความคิดเห็น Anandtech

ดังนั้นจึงจำเป็นถ้าและถ้า

  • คุณไม่แน่ใจว่าจะใช้ TRIM อย่างไร AFAIK มันยังไม่เปิดใช้งานโดยค่าเริ่มต้นบน Linux เนื่องจากปัญหาเรื่องประสิทธิภาพของไดรฟ์เก่า & ที่มีพฤติกรรมไม่ดี
  • หรือคุณกังวลเกี่ยวกับการเติมไดร์ฟ Sandforce (และเนื้อหาจะไม่สามารถแก้ไขได้โดยตัวควบคุมอัจฉริยะ)

การเปิดใช้งาน TRIM บน Linux นั้นไม่ใช่เรื่องยากเกินไปและคุณไม่สังเกตเห็นปัญหาใด ๆ

โชคดีที่แบรนด์ยอดนิยมหลายยี่ห้อสร้างตัวควบคุมของตนเอง คอนโทรลเลอร์ Sandforce ไม่ได้รับความนิยมเท่าที่เคยเป็นมา ปัญหา Sandforce ทำให้ฉันสงสัยเกี่ยวกับการออกแบบตัวควบคุม "สมาร์ท" นั้นซึ่งก้าวร้าวมากในเวลานั้น ขอโทษที่ Sandforce แต่ฉันไม่มีการอ้างอิงสำหรับรุ่นคอนโทรลเลอร์ที่แน่นอนที่ได้รับผลกระทบ


[*] ระบบไฟล์เช่นมีพื้นที่ว่างมากมายเช่นกันเพื่อลดการกระจายตัว ดังนั้น TRIM จึงยอดเยี่ยมเพราะคุณไม่จำเป็นต้องเพิ่มระยะขอบความปลอดภัยสองจุดเข้าด้วยกันพื้นที่ว่างเดียวกันจะช่วยให้พวกเขาทั้งสอง :) ไดรฟ์สามารถใช้ประโยชน์จากพื้นที่ที่ไม่ได้จัดสรรเพื่อปรับปรุงประสิทธิภาพเช่นเดียวกับการหลีกเลี่ยงการสึกหรอสูงตามที่คุณพูด


เป็นไปได้หรือไม่ที่จะตรวจจับคอนโทรลเลอร์ Sandforce เมื่อมี SSD ติดตั้งอยู่
marmistrz

ไม่มีการอ่านออกมาตรฐานหรือการทดสอบที่ฉันรู้ คุณจำเป็นต้องรู้ว่าไดรฟ์คืออะไรและลองค้นหามัน เกี่ยวกับสิ่งที่ฉันเห็นคือ "หมายเลขรุ่น" เช่นใน GNOME ดิสก์เช่น "M4-CT128M4SSD2" ซึ่งอาจจับคู่กันไม่ได้ ขอโทษอีกครั้ง. ฉันเชื่อว่า Samsung ใช้ตัวควบคุมของตนเองและ Crucial / Micron ใช้ Marvell OCZ / Toshiba ใช้ตัวควบคุมหลายอย่างรวมถึง Sandforce
sourcejedi

นี่ถือว่าคุณมีพื้นที่ว่างบนระบบไฟล์ใช่ไหม? : D
endolith

เฉพาะส่วนที่คุณตอบโปรดได้นี่เป็นเวลากว่าหนึ่งปีแล้ว ฉันคิดว่าคุณหมายถึง "[สมมุติ] ฉันไม่มีระเบียบวินัย, ต้องการระบบของฉันที่จะผลักดันการต่อต้านอย่างต่อเนื่องและไม่มีซอฟต์แวร์ที่จะตั้งสัญญาณเตือนระดับสูง" ซึ่งเป็นคำวิจารณ์ที่ถูกต้องสมบูรณ์แบบแม้จะน่าสนใจจากใครบางคนที่จะต้องพิจารณาการจัดสรรพื้นที่มากเกินไป
sourcejedi

7

คอนโทรลเลอร์ SSD รุ่นใหม่นั้นฉลาดพอที่จะไม่จำเป็นต้องใช้การ overprovisioning ในชีวิตประจำวันมากนัก อย่างไรก็ตามยังคงมีสถานการณ์ส่วนใหญ่ในสภาพแวดล้อมดาต้าเซ็นเตอร์ที่แนะนำให้ overprovisioning เพื่อทำความเข้าใจว่าทำไมการเตรียมใช้งานมากเกินไปจึงมีประโยชน์จำเป็นต้องเข้าใจวิธีการทำงานของ SSD

SSD ต้องรับมือกับข้อ จำกัด ของหน่วยความจำแฟลชเมื่อเขียนข้อมูล

SSDs ใช้ชนิดของหน่วยความจำที่เรียกว่าNAND หน่วยความจำแฟลช ไม่เหมือนกับฮาร์ดไดรฟ์เซลล์ NAND ที่มีข้อมูลไม่สามารถเขียนทับได้โดยตรง ไดรฟ์จำเป็นต้องลบข้อมูลที่มีอยู่ก่อนจึงจะสามารถเขียนข้อมูลใหม่ได้ นอกจากนี้ในขณะที่ SSD เขียนข้อมูลในหน้าที่มีขนาด 4 KB ถึง 16 KB แต่สามารถลบข้อมูลในกลุ่มเพจขนาดใหญ่ที่เรียกว่าบล็อกโดยทั่วไปจะมีขนาดหลายร้อย KB ถึงขนาดหลาย MB ใน SSD ที่ทันสมัย

NAND ยังมีจำนวนความอดทนในการเขียนที่จำกัด เพื่อหลีกเลี่ยงการเขียนข้อมูลซ้ำโดยไม่จำเป็นเพื่อลบบล็อกและเพื่อให้แน่ใจว่าไม่มีบล็อกได้รับจำนวนการเขียนที่ไม่เหมาะสมไดรฟ์จะพยายามกระจายการเขียนโดยเฉพาะการเขียนแบบสุ่มขนาดเล็กไปยังบล็อกต่าง ๆ หากการเขียนแทนที่ข้อมูลเก่ามันจะทำเครื่องหมายหน้าเก่าว่าไม่ถูกต้อง เมื่อเพจทั้งหมดในบล็อกถูกทำเครื่องหมายว่าไม่ถูกต้องไดรฟ์จะสามารถลบได้โดยไม่ต้องเขียนข้อมูลที่ถูกต้องใหม่

SSD ต้องการพื้นที่ว่างเพื่อให้สามารถทำงานได้อย่างเหมาะสม แต่ไม่ใช่ทุกภาระงานที่เอื้อต่อการรักษาพื้นที่ว่าง

หากไดรฟ์มีพื้นที่ว่างเหลือน้อยหรือไม่มีเลยก็จะไม่สามารถกระจายการเขียนได้ แต่ไดรฟ์จะต้องลบบล็อกทันทีเนื่องจากการเขียนจะถูกส่งไปยังไดรฟ์เขียนข้อมูลที่ถูกต้องภายในบล็อกเหล่านั้นไปยังบล็อกอื่น ผลนี้ในข้อมูลเพิ่มเติมถูกเขียนไป NAND กว่าถูกส่งไปยังไดรฟ์, ปรากฏการณ์ที่เรียกว่าการเขียนขยาย การขยายการเขียนมีความเด่นชัดโดยเฉพาะอย่างยิ่งกับปริมาณงานที่เน้นการเขียนแบบสุ่มเช่นการประมวลผลธุรกรรมออนไลน์ (OLTP)และจำเป็นต้องรักษาไว้ให้น้อยที่สุดเพราะส่งผลให้ประสิทธิภาพและความอดทนลดลง

เพื่อลดการขยายการเขียนระบบที่ทันสมัยส่วนใหญ่สนับสนุนคำสั่งที่เรียกว่าTRIMซึ่งบอกไดรฟ์ที่บล็อกไม่มีข้อมูลที่ถูกต้องอีกต่อไปเพื่อให้สามารถลบได้ นี่เป็นสิ่งจำเป็นเนื่องจากไดรฟ์นั้นจำเป็นต้องสมมติว่าข้อมูลที่ถูกลบโดยระบบปฏิบัติการยังคงใช้ได้ซึ่งจะขัดขวางความสามารถของไดรฟ์ในการรักษาพื้นที่ว่างให้เพียงพอ

อย่างไรก็ตามบางครั้ง TRIM นั้นไม่สามารถทำได้เช่นเมื่อไดรฟ์อยู่ในกล่องหุ้มภายนอก (กล่องหุ้มส่วนใหญ่ไม่รองรับ TRIM) หรือเมื่อใช้ไดรฟ์กับระบบปฏิบัติการรุ่นเก่า นอกจากนี้ภายใต้ภาระงานการเขียนแบบสุ่มที่มีความเข้มข้นสูงการเขียนจะถูกกระจายไปทั่วภูมิภาคขนาดใหญ่ของ NAND พื้นฐานซึ่งหมายความว่าการบังคับให้เขียนข้อมูลใหม่และการขยายการเขียนของผู้เข้าร่วมสามารถเกิดขึ้นได้แม้ว่าไดรฟ์จะไม่เต็ม

SSD รุ่นใหม่พบว่าแอมพลิฟายเออร์การเขียนน้อยกว่าไดรฟ์รุ่นเก่าอย่างมีนัยสำคัญ

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 ส่วนใหญ่แม้ว่าจะมีการขยายการเขียนสูงดังนั้นจึงไม่ใช่เรื่องที่จะต้องนอนหลับ


1

ขนาดของพื้นที่เพิ่มเติมนั้นมีความแตกต่างกันมากระหว่างไดรฟ์ SSD แต่โดยทั่วไปยังคงเป็นจริง


คุณมีข้อมูลอ้างอิงเกี่ยวกับเรื่องนี้หรือไม่?
Léo Lam

คุณหมายถึงการอ้างอิงสำหรับไดรฟ์ที่เฉพาะเจาะจง? ไดรฟ์จำนวนมาก (ไม่เพียง แต่ SSD) มีการอ้างอิงทางเทคนิคสาธารณะ แต่ขออภัยฉันไม่มีเวลาค้นหา อย่างไรก็ตามหากคุณสนใจในการอ้างอิงทั่วไปให้ตรวจสอบสิ่งนี้: samsung.com/global/business/sem Semiconductoror/minisite/SSD/…
Tomasz Klim

1
ใช่ฉันสงสัยว่าสิ่งนี้ยังคงเป็นจริงสำหรับไดรฟ์ทั้งหมดหรือเฉพาะรุ่นหรือแบรนด์ที่เฉพาะเจาะจงเท่านั้นเนื่องจากคำตอบอื่น ๆ ชี้ให้เห็นว่าการจัดสรรพื้นที่ส่วนเกินนั้นไม่จำเป็นสำหรับไดรฟ์รุ่นล่าสุด
Léo Lam

คำตอบอื่น ๆ ไม่ถูกต้อง การขับเคลื่อนด้วยคอนโทรลเลอร์ของ Sandforce นั้นมีพื้นที่เหลือเฟือ นั่นเป็นความจริงอย่างสมบูรณ์แบบ แต่ก็ยังมีคอนโทรลเลอร์ SSD อื่น ๆ ที่ใช้พื้นที่เพิ่มเติมไม่มาก เช่นนี้อาจจะไม่เปลี่ยนแปลง
Tomasz Klim

1
จาก doc สำหรับ Samsung SSD: "มีตัวเลือกเสมอในการจัดสรรพื้นที่เพิ่มเติมด้วยตนเองเพื่อประสิทธิภาพที่ดียิ่งขึ้น (เช่นภายใต้ภาระงานที่ต้องการ)" เช่นพวกเขาแนะนำว่าคุณไม่จำเป็นต้องเริ่มพิจารณาสิ่งนี้หากคุณไม่มี " ปริมาณงานที่ต้องการ "
sourcejedi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.