คำตอบสั้น ๆ
เลือกext4และต่อด้วยdiscard
ตัวเลือกสำหรับการรองรับTRIMหรือใช้ FITRIM (ดูด้านล่าง) ใช้noatime
ตัวเลือกหากคุณกลัว "SSD wear"
อย่าเปลี่ยน I / O scheduler (CFQ) ที่เป็นค่าเริ่มต้นของคุณบนเซิร์ฟเวอร์ที่มีหลายแอพพลิเคชั่นเนื่องจากให้ความเป็นธรรมระหว่างกระบวนการและมีการสนับสนุน SSD อัตโนมัติ อย่างไรก็ตามใช้กำหนดเวลาบนเดสก์ท็อปเพื่อรับการตอบสนองที่ดีขึ้นภายใต้โหลด
เพื่อให้ง่ายต่อการรับประกันการจัดตำแหน่งข้อมูลที่เหมาะสมเซกเตอร์เริ่มต้นของแต่ละพาร์ติชันจะต้องมีค่าเท่ากับ 2048 (= 1 MiB) คุณสามารถใช้fdisk -cu /dev/sdX
เพื่อสร้างพวกเขา ในการแจกแจงล่าสุดมันจะดูแลสิ่งนี้ให้คุณโดยอัตโนมัติ
คิดสองครั้งก่อนใช้ swap บน SSD มันอาจจะเร็วกว่ามากเมื่อเทียบกับการสลับบน HDD แต่ก็จะใส่ดิสก์ได้เร็วขึ้น (ซึ่งอาจไม่เกี่ยวข้องดูด้านล่าง)
คำตอบที่ยาว
Ext4เป็นระบบไฟล์ Linux ที่พบมากที่สุด ให้ประสิทธิภาพที่ดีกับ SSD และรองรับคุณสมบัติTRIM (และ FITRIM) เพื่อรักษาประสิทธิภาพ SSD ที่ดีตลอดเวลา NILFSถูกออกแบบมาโดยเฉพาะอย่างยิ่งสำหรับไดรฟ์หน่วยความจำแฟลช แต่ไม่ได้ จริงๆทำงานได้ดีกว่าext4เกี่ยวกับการวัด Btrfsนั้นยังถือว่าอยู่ในช่วงทดลอง (และไม่ได้ผลดีกว่ากัน )
- ประสิทธิภาพของ SSD & TRIM:
TRIMคุณลักษณะล้างบล็อก SSD ที่ไม่ได้ใช้อีกต่อไปโดยระบบแฟ้ม นี่จะเป็นการเพิ่มประสิทธิภาพการเขียนในระยะยาวและแนะนำให้ใช้กับ SSD เนื่องจากการออกแบบ หมายความว่าระบบไฟล์จะต้องสามารถบอกไดรฟ์เกี่ยวกับบล็อกเหล่านั้นได้ discard
ตัวเลือกภูเขาext4จะออกเช่นTRIMคำสั่งเมื่อบล็อกระบบแฟ้มเป็นอิสระ นี่คือทิ้งออนไลน์
อย่างไรก็ตามพฤติกรรมนี้แสดงถึงค่าใช้จ่ายเล็กน้อย ตั้งแต่ Linux 2.6.37 คุณอาจหลีกเลี่ยงการใช้discard
และเลือกที่จะทำแบทช์ทิ้งเป็นครั้งคราวด้วย FITRIM แทน (เช่นจาก crontab) fstrim
ยูทิลิตี้ไม่นี้ (ออนไลน์) เช่นเดียวกับตัวเลือกของ-E discard
fsck.ext4
คุณจะต้องใช้เครื่องมือเหล่านี้ "รุ่นล่าสุด"
คุณอาจต้องการ จำกัด การเขียนบนไดรฟ์ของคุณเนื่องจาก SSD มีอายุการใช้งานที่ จำกัด ในเรื่องนี้ ไม่ต้องกังวลมากเกินไปอย่างไรก็ตาม SSD ขนาด 128 GB ในปัจจุบันสามารถรองรับข้อมูลที่เขียนอย่างน้อย 20 GB ต่อวันเป็นเวลามากกว่า 5 ปี (1,000 รอบการเขียนต่อเซลล์) คนที่ดีกว่า (และคนที่ยิ่งใหญ่กว่า) สามารถอยู่ได้นานกว่า: คุณอาจจะแทนที่มันในตอนนั้น
หากคุณต้องการใช้swapบน SSD เคอร์เนลจะสังเกตเห็นดิสก์ที่ไม่หมุนและจะสุ่มการใช้ swap (ระดับเคอร์เนลระดับการสึกหรอ): คุณจะเห็นSS
(Solid State) ในข้อความเคอร์เนลเมื่อเปิดใช้งาน swap:
การเพิ่มการสลับ 2097148k บน / dev / sda1 ลำดับความสำคัญ: -1 ขอบเขต: 1 ข้าม: 2097148k SS
นอกจากนี้ฉันเห็นด้วยกับคำตอบส่วนใหญ่ของaliasgar (แม้ว่าส่วนใหญ่จะเป็นแบบคัดลอกมาจากเว็บไซต์นี้ ) แต่ฉันต้องไม่เห็นด้วยกับส่วนกำหนดการ โดยค่าเริ่มต้นการจัดตารางเวลาที่กำหนดเส้นตายจะถูกปรับให้เหมาะสมกับดิสก์หมุนในขณะที่มันดำเนินการขั้นตอนวิธีการลิฟท์ ดังนั้นขออธิบายส่วนนี้
คำตอบยาวเกี่ยวกับ schedulers
เริ่มต้นจากเคอร์เนล 2.6.29 ดิสก์ SSD จะตรวจพบโดยอัตโนมัติและคุณอาจตรวจสอบสิ่งนี้ด้วย:
cat /sys/block/sda/queue/rotational
คุณควร1
หาฮาร์ดดิสก์และ0
SSD
ตอนนี้ CFQ scheduler สามารถปรับพฤติกรรมของมันตามข้อมูลนี้ ตั้งแต่ linux 3.1 cfq-iosched.txt
ไฟล์เอกสารเคอร์เนลบอกว่า :
CFQ มีการปรับแต่งบางอย่างสำหรับ SSD และหากตรวจพบสื่อที่ไม่หมุนเวียนซึ่งสามารถรองรับความลึกคิวที่สูงขึ้น (คำขอหลายรายการพร้อมกันในเที่ยวบินในเวลาเดียวกัน) [... ]
นอกจากนี้ตัวกำหนดตารางเวลาจะพยายาม จำกัด การเคลื่อนไหวของส่วนหัวที่ไม่เรียงลำดับบนดิสก์ที่หมุนได้ตามหมายเลขเซ็กเตอร์ เธซเธฑ doc เคอร์เนลdeadline-iosched.txt
, fifo_batch
คำอธิบายตัวเลือก :
คำขอถูกจัดกลุ่มเป็น `` batches '' ของทิศทางข้อมูลเฉพาะ (อ่านหรือเขียน) ซึ่งให้บริการเพื่อเพิ่มเซกเตอร์
อย่างไรก็ตามการปรับพารามิเตอร์นี้เป็น 1 เมื่อใช้ SSD อาจน่าสนใจ:
พารามิเตอร์นี้ปรับแต่งความสมดุลระหว่างเวลาแฝงต่อคำขอและปริมาณงานรวม เมื่อเวลาในการตอบสนองต่ำเป็นความกังวลหลักจะมีขนาดเล็กกว่าดีกว่า (ซึ่งค่า 1 จะให้บริการแก่ผู้ที่มาก่อนได้ก่อน) การเพิ่ม fifo_batch โดยทั่วไปจะช่วยเพิ่มปริมาณงานที่ค่าใช้จ่ายของการเปลี่ยนแปลงความล่าช้า
เกณฑ์มาตรฐาน บางอย่างชี้ให้เห็น ว่าประสิทธิภาพการทำงานระหว่างตัวกำหนดเวลาที่ต่างกันมีความแตกต่างกันเล็กน้อย ถ้าเช่นนั้นทำไมไม่แนะนำความยุติธรรมล่ะ? เมื่อCFQ ไม่ดีน้อยมากในม้านั่ง อย่างไรก็ตามในการตั้งค่าเดสก์ท็อปคุณมักจะได้รับการตอบสนองที่ดีขึ้นโดยใช้กำหนดเวลาที่รอโหลดเนื่องจากการออกแบบ (อาจมีค่าใช้จ่ายในการรับส่งข้อมูลที่ต่ำกว่า)
fifo_batch=1
ที่กล่าวว่าเป็นมาตรฐานที่ดีกว่าจะลองใช้กับเส้นตาย
ในการใช้ Deadline บน SSD ตามค่าเริ่มต้นคุณสามารถสร้างไฟล์ได้/etc/udev.d/99-ssd.rules
ดังนี้
# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
gdisk
&grub 2.0.x
, (ฉันเดาว่ามีคนพูดถึงคำตอบด้านล่าง) และ MBR เป็นวิธีดั้งเดิมที่ใช้วิธีเก่าgrub 0.9.7
และfdisk
.. คุณสามารถหาข้อมูลเพิ่มเติมได้ที่นี่: wiki.archlinux.org/index.php/Solid_State_Drives