มีเคล็ดลับมากมายสำหรับการปรับแต่ง SSD ของคุณใน Linux และรายงานสรุปจำนวนมากเกี่ยวกับสิ่งที่ได้ผลและสิ่งที่ไม่ได้ผล เราใช้เกณฑ์มาตรฐานของเราเองด้วยการปรับแต่งบางอย่างเพื่อแสดงให้คุณเห็นความแตกต่างที่แท้จริง
เกณฑ์มาตรฐาน
ในการเปรียบเทียบดิสก์ของเราเราใช้ไฟล์ ชุดทดสอบ Phoronix . ฟรีและมีที่เก็บสำหรับ Ubuntu ดังนั้นคุณจึงไม่ต้องรวบรวมตั้งแต่เริ่มต้นเพื่อเรียกใช้การทดสอบอย่างรวดเร็ว เราทดสอบระบบของเราทันทีหลังจากติดตั้ง Ubuntu Natty 64 บิตใหม่โดยใช้พารามิเตอร์เริ่มต้นสำหรับระบบไฟล์ ext4
รายละเอียดระบบของเรามีดังนี้:
- AMD Phenom II quad-core ที่ 3.2 GHz
- เมนบอร์ด MSI 760GM E51
- แรม 3.5 GB
- AMD Radeon 3000 ในตัวพร้อม RAM 512MB
- Ubuntu Natty
และแน่นอน SSD ที่เราใช้ทดสอบคือไดรฟ์ OCZ Onyx ขนาด 64GB ( $ 117 ใน Amazon.com ในขณะที่เขียน)
การปรับแต่งที่โดดเด่น
มีการเปลี่ยนแปลงเล็กน้อยที่ผู้คนแนะนำเมื่ออัปเกรดเป็น SSD หลังจากกรองสิ่งเก่า ๆ ออกไปแล้วเราได้จัดทำรายการการปรับแต่งสั้น ๆ ที่ Linux distros ไม่ได้รวมไว้เป็นค่าเริ่มต้นสำหรับ SSD สามในนั้นเกี่ยวข้องกับการแก้ไขไฟล์ fstab ของคุณดังนั้นให้สำรองข้อมูลก่อนดำเนินการตามคำสั่งต่อไปนี้:
sudo cp / etc / fstab /etc/fstab.bak
หากมีบางอย่างผิดพลาดคุณสามารถลบไฟล์ fstab ใหม่และแทนที่ด้วยสำเนาข้อมูลสำรองของคุณ หากคุณไม่รู้ว่ามันคืออะไรหรือต้องการทบทวนวิธีการทำงานลองดูที่ HTG อธิบาย: Linux fstab คืออะไรและทำงานอย่างไร
การหลีกเลี่ยงเวลาในการเข้าถึง
คุณสามารถช่วยเพิ่มอายุการใช้งาน SSD ของคุณได้โดยการลดจำนวนระบบปฏิบัติการที่เขียนลงดิสก์ หากคุณต้องการทราบว่าแต่ละไฟล์หรือไดเร็กทอรีถูกเข้าถึงครั้งล่าสุดเมื่อใดคุณสามารถเพิ่มสองตัวเลือกนี้ในไฟล์ / etc / fstab ของคุณ:
noatime, nodiratime
เพิ่มไปพร้อมกับตัวเลือกอื่น ๆ และตรวจสอบให้แน่ใจว่าทั้งหมดคั่นด้วยจุลภาคและไม่มีช่องว่าง
กำลังเปิดใช้ TRIM
คุณสามารถเปิดใช้ TRIM เพื่อช่วยจัดการประสิทธิภาพของดิสก์ในระยะยาว เพิ่มตัวเลือกต่อไปนี้ในไฟล์ fstab ของคุณ:
ทิ้ง
ใช้งานได้ดีกับระบบไฟล์ ext4 แม้ในฮาร์ดไดรฟ์มาตรฐาน คุณต้องมีเวอร์ชันเคอร์เนลอย่างน้อย 2.6.33 หรือใหม่กว่า คุณจะได้รับความคุ้มครองหากคุณใช้ Maverick หรือ Natty หรือเปิดใช้งานแบ็คพอร์ทใน Lucid แม้ว่าสิ่งนี้จะไม่ได้ปรับปรุงการเปรียบเทียบเริ่มต้นโดยเฉพาะ แต่ก็ควรทำให้ระบบทำงานได้ดีขึ้นในระยะยาวดังนั้นระบบจึงทำให้เป็นรายการของเรา
Tmpfs
แคชของระบบถูกเก็บไว้ใน / tmp เราสามารถบอกให้ fstab ติดตั้งสิ่งนี้ใน RAM เป็นระบบไฟล์ชั่วคราวเพื่อให้ระบบของคุณสัมผัสฮาร์ดไดรฟ์น้อยลง เพิ่มบรรทัดต่อไปนี้ที่ด้านล่างของไฟล์ / etc / fstab ของคุณในบรรทัดใหม่:
tmpfs / tmp ค่าเริ่มต้น tmpfs, เวลา, โหมด = 1777 0 0
บันทึกไฟล์ fstab ของคุณเพื่อยอมรับการเปลี่ยนแปลงเหล่านี้
การสลับตัวจัดกำหนดการ IO
ระบบของคุณไม่ได้เขียนการเปลี่ยนแปลงทั้งหมดลงในดิสก์ทันทีและคำขอหลายรายการจะเข้าคิว ตัวกำหนดตารางเวลาอินพุต - เอาท์พุตเริ่มต้น - cfq - จัดการสิ่งนี้ได้ แต่เราสามารถเปลี่ยนสิ่งนี้เป็นสิ่งที่ทำงานได้ดีกว่าสำหรับฮาร์ดแวร์ของเรา
ขั้นแรกให้ระบุตัวเลือกที่คุณสามารถใช้ได้ด้วยคำสั่งต่อไปนี้โดยแทนที่“ X” ด้วยอักษรของไดรฟ์รูทของคุณ:
cat / sys / block / sdX / คิว / ตัวกำหนดตารางเวลา
การติดตั้งของฉันอยู่บน sda คุณควรเห็นตัวเลือกต่างๆ
หากคุณมีกำหนดเวลาคุณควรใช้สิ่งนั้นเพราะจะช่วยให้คุณปรับแต่งเพิ่มเติมลงไปอีกขั้น ถ้าไม่เช่นนั้นคุณควรจะใช้ noop ได้โดยไม่มีปัญหา เราจำเป็นต้องแจ้งให้ OS ใช้ตัวเลือกเหล่านี้ทุกครั้งหลังการบู๊ตดังนั้นเราจึงต้องแก้ไขไฟล์ rc.local
เราจะใช้ nano เนื่องจากเราคุ้นเคยกับบรรทัดคำสั่ง แต่คุณสามารถใช้โปรแกรมแก้ไขข้อความอื่น ๆ ที่คุณต้องการได้ (gedit, vim ฯลฯ )
ฉับพลัน / Etc / rc.ぉหรือ l
เหนือบรรทัด“ exit 0” ให้เพิ่มสองบรรทัดนี้หากคุณกำลังใช้กำหนดเวลา:
กำหนดเส้นตาย> / sys / block / sdX / que / ตัวกำหนดตาราง
เสียงสะท้อน 1> / sys / block / sdX / que / iosched / fifo_batch
หากคุณใช้ noop ให้เพิ่มบรรทัดนี้:
echo noop> / sys / block / sdX / que / ตัวกำหนดตารางเวลา
อีกครั้งให้แทนที่“ X” ด้วยอักษรระบุไดรฟ์ที่เหมาะสมสำหรับการติดตั้งของคุณ มองข้ามทุกสิ่งเพื่อให้แน่ใจว่ามันดูดี
จากนั้นกด CTRL + O เพื่อบันทึกแล้วกด CTRL + X เพื่อออก
เริ่มต้นใหม่
เพื่อให้การเปลี่ยนแปลงเหล่านี้มีผลคุณต้องรีสตาร์ท หลังจากนั้นคุณควรตั้งค่าทั้งหมด หากมีสิ่งผิดปกติเกิดขึ้นและคุณไม่สามารถบู๊ตได้คุณสามารถยกเลิกแต่ละขั้นตอนข้างต้นได้อย่างเป็นระบบจนกว่าจะกลับมาบูตได้อีกครั้ง คุณยังสามารถใช้ไฟล์ LiveCD หรือ LiveUSB เพื่อกู้คืน ถ้าคุณต้องการ.
การเปลี่ยนแปลง fstab ของคุณจะดำเนินไปตลอดอายุการติดตั้งของคุณแม้จะมีการอัพเกรด แต่การเปลี่ยนแปลง rc.local ของคุณจะต้องถูกสร้างขึ้นใหม่หลังจากการอัปเกรดทุกครั้ง (ระหว่างเวอร์ชัน)
ผลการเปรียบเทียบ
ในการทำการวัดประสิทธิภาพเราได้ทำการทดสอบชุดดิสก์ ภาพด้านบนของการทดสอบแต่ละครั้งอยู่ก่อนการปรับแต่งการกำหนดค่า ext4 และภาพล่างคือหลังจากการปรับแต่งและการรีบูต คุณจะเห็นคำอธิบายสั้น ๆ เกี่ยวกับสิ่งที่การทดสอบวัดผลตลอดจนการแปลผล
การทำงานของไฟล์ขนาดใหญ่
การทดสอบนี้บีบอัดไฟล์ 2GB พร้อมข้อมูลแบบสุ่มและเขียนลงดิสก์ การปรับแต่ง SSD ที่นี่แสดงให้เห็นว่ามีการปรับปรุงประมาณ 40%
IOzone จำลองประสิทธิภาพของระบบไฟล์ในกรณีนี้โดยการเขียนไฟล์ 8GB อีกครั้งเพิ่มขึ้นเกือบ 50%
ที่นี่ไฟล์ 8GB ถูกอ่าน ผลลัพธ์เกือบจะเหมือนกันโดยไม่ต้องปรับ ext4
AIO-Stress ทดสอบอินพุตและเอาต์พุตแบบอะซิงโครนัสโดยใช้ไฟล์ทดสอบ 2GB และขนาดบันทึก 64KB ที่นี่มีประสิทธิภาพเพิ่มขึ้นเกือบ 200% เมื่อเทียบกับ vanilla ext4!
การทำงานของไฟล์ขนาดเล็ก
ฐานข้อมูล SQLite ถูกสร้างขึ้นและ PTS จะเพิ่มระเบียน 12,500 รายการ การปรับแต่ง SSD ที่นี่ทำให้ประสิทธิภาพการทำงานช้าลงประมาณ 10%
Apache Benchmark ทดสอบการอ่านไฟล์ขนาดเล็กแบบสุ่ม ประสิทธิภาพที่เพิ่มขึ้นประมาณ 25% หลังจากปรับแต่ง SSD ของเราให้เหมาะสม
PostMark จำลองธุรกรรมไฟล์ 25,000 รายการ 500 รายการพร้อมกันในเวลาใดก็ได้โดยมีขนาดไฟล์ระหว่าง 5 ถึง 512KB สิ่งนี้จำลองเซิร์ฟเวอร์เว็บและเมลได้ค่อนข้างดีและเราเห็นว่าประสิทธิภาพเพิ่มขึ้น 16% หลังจากปรับแต่ง
FS-Mark ดูไฟล์ 1,000 ไฟล์ที่มีขนาดรวม 1MB และวัดจำนวนไฟล์ที่สามารถเขียนและอ่านได้อย่างสมบูรณ์ในระยะเวลาที่กำหนดไว้ล่วงหน้า การปรับแต่งของเราเพิ่มขึ้นอีกครั้งด้วยขนาดไฟล์ที่เล็กลง เพิ่มขึ้นประมาณ 45% ด้วยการปรับ Ext4
การเข้าถึงระบบไฟล์
Dbench benchmarks ทดสอบระบบไฟล์เรียกโดยไคลเอนต์เช่นเดียวกับที่ Samba ทำสิ่งต่างๆ ที่นี่ประสิทธิภาพของ vanilla ext4 ถูกลดลง 75% ซึ่งเป็นการตั้งค่าหลักในการเปลี่ยนแปลงที่เราทำ
คุณจะเห็นได้ว่าเมื่อลูกค้ามีจำนวนมากขึ้นความคลาดเคลื่อนของประสิทธิภาพก็เพิ่มขึ้น
ด้วยลูกค้า 48 รายช่องว่างระหว่างทั้งสองปิดลงเล็กน้อย แต่ยังคงมีการสูญเสียประสิทธิภาพที่เห็นได้ชัดจากการปรับแต่งของเรา
ด้วยไคลเอนต์ 128 เครื่องประสิทธิภาพเกือบจะเท่ากัน คุณสามารถให้เหตุผลว่าการปรับแต่งของเราอาจไม่เหมาะอย่างยิ่งสำหรับการใช้งานในบ้านในการใช้งานประเภทนี้ แต่จะให้ประสิทธิภาพที่เทียบเท่ากันเมื่อจำนวนลูกค้าเพิ่มขึ้นอย่างมาก
การทดสอบนี้ขึ้นอยู่กับไลบรารีการเข้าถึง AIO ของเคอร์เนล เราได้รับการปรับปรุง 20% ที่นี่
ที่นี่เรามีการอ่านแบบสุ่มแบบมัลติเธรด 64MB และมีประสิทธิภาพเพิ่มขึ้น 200% ที่นี่! ว้าว!
ขณะที่เขียนข้อมูล 64MB พร้อม 32 เธรดเรายังคงมีประสิทธิภาพเพิ่มขึ้น 75%
Compile Bench จำลองผลกระทบของอายุในระบบไฟล์ซึ่งแสดงโดยการจัดการเคอร์เนลทรี (การสร้างการคอมไพล์การแพตช์ ฯลฯ ) ที่นี่คุณจะเห็นประโยชน์ที่สำคัญผ่านการสร้างเคอร์เนลจำลองครั้งแรกประมาณ 40%
เกณฑ์มาตรฐานนี้จะวัดระยะเวลาที่ใช้ในการแตกเคอร์เนล Linux ประสิทธิภาพที่เพิ่มขึ้นไม่มากเกินไปที่นี่
สรุป
การปรับเปลี่ยนที่เราทำกับการกำหนดค่า ext4 แบบสำเร็จรูปของ Ubuntu มีผลกระทบค่อนข้างมาก ประสิทธิภาพที่เพิ่มขึ้นสูงสุดอยู่ในขอบเขตของการเขียนและการอ่านแบบมัลติเธรดการอ่านไฟล์ขนาดเล็กและการอ่านและเขียนไฟล์ต่อเนื่องขนาดใหญ่ ในความเป็นจริงสถานที่จริงแห่งเดียวที่เราเห็นประสิทธิภาพคือการเรียกใช้ระบบไฟล์แบบธรรมดาสิ่งที่ผู้ใช้ Samba ควรระวัง โดยรวมแล้วดูเหมือนว่าจะมีประสิทธิภาพเพิ่มขึ้นอย่างมากสำหรับสิ่งต่างๆเช่นการโฮสต์หน้าเว็บและการดู / สตรีมวิดีโอขนาดใหญ่
โปรดทราบว่านี่เป็นเฉพาะกับ Ubuntu Natty 64 บิต หากระบบหรือ SSD ของคุณแตกต่างกันระยะทางของคุณอาจแตกต่างกันไป โดยรวมแล้วดูเหมือนว่าการปรับตัวกำหนดตารางเวลา fstab และ IO จะช่วยเพิ่มประสิทธิภาพการทำงานได้ดีขึ้นดังนั้นจึงน่าจะคุ้มค่าที่จะลองใช้อุปกรณ์ของคุณเอง
มีเกณฑ์มาตรฐานของคุณเองและต้องการแบ่งปันผลลัพธ์ของคุณหรือไม่? มีการปรับแต่งอื่น ๆ ที่เราไม่รู้จักหรือไม่? แสดงความคิดเห็นออกมา!