วิธีปรับแต่ง SSD ของคุณใน Ubuntu เพื่อประสิทธิภาพที่ดีขึ้น
มีเคล็ดลับมากมายในการปรับแต่ง SSD ของคุณใน Linux และรายงานสรุปจำนวนมากเกี่ยวกับสิ่งที่ใช้งานได้และสิ่งใดที่ใช้ไม่ได้ เราใช้การวัดประสิทธิภาพของเราเองด้วยการปรับแต่งเล็กน้อยเพื่อแสดงให้เห็นถึงความแตกต่างที่แท้จริง.
มาตรฐาน
ในการวัดมาตรฐานดิสก์ของเราเราใช้ Phoronix Test Suite ฟรีและมีพื้นที่เก็บข้อมูลสำหรับ Ubuntu ดังนั้นคุณไม่ต้องรวบรวมจากศูนย์เพื่อรันการทดสอบอย่างรวดเร็ว เราทดสอบระบบของเราทันทีหลังจากการติดตั้ง Ubuntu Natty 64 บิตใหม่โดยใช้พารามิเตอร์เริ่มต้นสำหรับระบบไฟล์ ext4.
รายละเอียดระบบของเรามีดังนี้:
- AMD Phenom II quad-core ที่ 3.2 GHz
- เมนบอร์ด MSI 760GM E51
- RAM 3.5 GB
- AMD Radeon 3000 รวมกับ RAM ขนาด 512MB
- Ubuntu Natty
และแน่นอนว่า SSD ที่เราใช้ในการทดสอบคือไดรฟ์ OCZ Onyx 64GB ($ 117 บน Amazon.com ในขณะเขียน).
Tweaks ที่โดดเด่น
มีการเปลี่ยนแปลงเล็กน้อยที่ผู้คนแนะนำเมื่ออัพเกรดเป็น SSD หลังจากกรองสิ่งเก่า ๆ บางอย่างออกไปเราได้ทำรายการสั้น ๆ ของ tweaks ที่ Linux distros ไม่ได้รวมเป็นค่าเริ่มต้นสำหรับ SSD สามในนั้นเกี่ยวข้องกับการแก้ไขไฟล์ fstab ของคุณดังนั้นสำรองไฟล์นั้นไว้ก่อนที่คุณจะดำเนินการต่อด้วยคำสั่งต่อไปนี้:
sudo cp / etc / fstab /etc/fstab.bak
หากมีข้อผิดพลาดคุณสามารถลบไฟล์ fstab ใหม่และแทนที่ด้วยสำเนาสำรองของคุณ ถ้าคุณไม่รู้ว่ามันคืออะไรหรือคุณต้องการที่จะทำความเข้าใจกับวิธีการทำงานให้ดูที่ HTG Explains: Linux fstab คืออะไรและมันทำงานอย่างไร?
ละครั้งการเข้าถึง
คุณสามารถช่วยเพิ่มอายุการใช้งาน SSD ของคุณได้ด้วยการลดปริมาณการเขียนลงดิสก์ หากคุณจำเป็นต้องรู้เมื่อเข้าถึงไฟล์หรือไดเรกทอรีแต่ละครั้งล่าสุดคุณสามารถเพิ่มสองตัวเลือกเหล่านี้ในไฟล์ / etc / fstab ของคุณ:
noatime, nodiratime
เพิ่มพวกเขาพร้อมกับตัวเลือกอื่น ๆ และให้แน่ใจว่าพวกเขาทั้งหมดคั่นด้วยเครื่องหมายจุลภาคและไม่มีช่องว่าง.
เปิดใช้งาน TRIM
คุณสามารถเปิดใช้งาน TRIM เพื่อช่วยจัดการประสิทธิภาพของดิสก์ในระยะยาว เพิ่มตัวเลือกต่อไปนี้ในไฟล์ fstab ของคุณ:
ทิ้ง
สิ่งนี้ทำงานได้ดีสำหรับระบบไฟล์ ext4 แม้ในฮาร์ดไดรฟ์มาตรฐาน คุณต้องมีเวอร์ชันเคอร์เนลอย่างน้อย 2.6.33 หรือใหม่กว่า; คุณได้รับการคุ้มครองหากคุณใช้ Maverick หรือ Natty หรือเปิดใช้งาน backport ใน Lucid แม้ว่าจะไม่ได้ปรับปรุงการเปรียบเทียบเบื้องต้นโดยเฉพาะ แต่ก็ควรทำให้ระบบทำงานได้ดีขึ้นในระยะยาวและทำให้เป็นรายการของเรา.
tmpfs
แคชของระบบถูกเก็บไว้ใน / tmp เราสามารถบอกให้ fstab ติดตั้งใน RAM เป็นระบบไฟล์ชั่วคราวเพื่อให้ระบบของคุณจะสัมผัสกับฮาร์ดไดรฟ์น้อยลง เพิ่มบรรทัดต่อไปนี้ที่ด้านล่างของไฟล์ / etc / fstab ของคุณในบรรทัดใหม่:
tmpfs / tmp ค่าเริ่มต้นของ tmpfs, noatime, mode = 1777 0 0
บันทึกไฟล์ fstab ของคุณเพื่อยอมรับการเปลี่ยนแปลงเหล่านี้.
การสลับ IO Schedulers
ระบบของคุณจะไม่เขียนการเปลี่ยนแปลงทั้งหมดในดิสก์ทันทีและคำขอหลายรายการจะเข้าคิว ตัวกำหนดตารางเวลาอินพุท - เอาท์พุท - cfq - จัดการสิ่งนี้ได้ แต่เราสามารถเปลี่ยนเป็นอันที่ดีกว่าสำหรับฮาร์ดแวร์ของเรา.
ขั้นแรกให้รายการตัวเลือกที่คุณมีพร้อมกับคำสั่งต่อไปนี้แทนที่ "X" ด้วยตัวอักษรของไดรฟ์รากของคุณ:
cat / sys / block / sdX / queue / scheduler
การติดตั้งของฉันอยู่บน sda คุณควรเห็นตัวเลือกที่แตกต่างกันเล็กน้อย.
หากคุณมีกำหนดเวลาคุณควรใช้สิ่งนั้นเพราะมันจะช่วยให้คุณปรับแต่งเพิ่มเติมลงไปตามเส้น ถ้าไม่คุณควรใช้ noop โดยไม่มีปัญหา เราจำเป็นต้องบอกให้ OS ใช้ตัวเลือกเหล่านี้หลังจากการบู๊ตทุกครั้งดังนั้นเราจะต้องแก้ไขไฟล์ rc.local.
เราจะใช้ nano เนื่องจากเราพอใจกับบรรทัดคำสั่ง แต่คุณสามารถใช้โปรแกรมแก้ไขข้อความอื่น ๆ ที่คุณชอบ (gedit, vim เป็นต้น).
sudo nano /etc/rc.local
เหนือบรรทัด“ exit 0” ให้เพิ่มสองบรรทัดนี้หากคุณใช้กำหนดเวลา:
echo deadline> / sys / block / sdX / queue / scheduler
echo 1> / sys / block / sdX / queue / iosched / fifo_batch
หากคุณใช้ noop ให้เพิ่มบรรทัดนี้:
echo noop> / sys / block / sdX / queue / scheduler
อีกครั้งแทนที่ "X" ด้วยตัวอักษรไดรฟ์ที่เหมาะสมสำหรับการติดตั้งของคุณ ดูทุกอย่างเพื่อให้แน่ใจว่ามันดูดี.
จากนั้นกด CTRL + O เพื่อบันทึกจากนั้นกด CTRL + X เพื่อออก.
เริ่มต้นใหม่
เพื่อให้การเปลี่ยนแปลงเหล่านี้มีผลบังคับใช้คุณต้องเริ่มต้นใหม่ หลังจากนั้นคุณควรจะตั้งค่าทั้งหมด หากมีสิ่งผิดปกติและคุณไม่สามารถบู๊ตได้คุณสามารถเลิกทำตามขั้นตอนข้างต้นได้อย่างเป็นระบบจนกว่าคุณจะสามารถบู๊ตได้อีกครั้ง คุณสามารถใช้ LiveCD หรือ LiveUSB เพื่อกู้คืนได้หากต้องการ.
การเปลี่ยนแปลง fstab ของคุณจะดำเนินต่อไปตลอดชีวิตของการติดตั้งของคุณแม้จะต้องทนต่อการอัพเกรด แต่การเปลี่ยนแปลง rc.local ของคุณจะต้องทำการ re-instituted หลังจากการอัพเกรดทุกครั้ง (ระหว่างเวอร์ชั่น).
ผลการเปรียบเทียบ
เพื่อทำการวัดประสิทธิภาพเราได้ทำการทดสอบชุดดิสก์ ภาพด้านบนของการทดสอบแต่ละครั้งก่อนปรับแต่งการกำหนดค่า ext4 และภาพด้านล่างคือหลังจากปรับแต่งและรีบูต คุณจะเห็นคำอธิบายสั้น ๆ เกี่ยวกับสิ่งที่การทดสอบวัดและการตีความผลลัพธ์.
การดำเนินงานไฟล์ขนาดใหญ่
การทดสอบนี้บีบอัดไฟล์ 2GB พร้อมข้อมูลสุ่มและเขียนลงดิสก์ SSD ปรับแต่งที่นี่แสดงในการปรับปรุงประมาณ 40%.
IOzone จำลองประสิทธิภาพของระบบไฟล์ในกรณีนี้โดยการเขียนไฟล์ 8GB อีกครั้งเพิ่มขึ้นเกือบ 50%.
ที่นี่มีการอ่านไฟล์ 8GB ผลลัพธ์เกือบเหมือนกันโดยไม่ต้องปรับ ext4.
AIO-Stress ทำการทดสอบอินพุตและเอาต์พุตแบบอะซิงโครนัสโดยใช้ไฟล์ทดสอบ 2GB และขนาดเร็กคอร์ด 64KB ที่นี่มีประสิทธิภาพเพิ่มขึ้นเกือบ 200% เมื่อเทียบกับวานิลลา 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 เรียกร้องจากลูกค้าเช่นเดียวกับที่ Samba ทำสิ่งต่างๆ ที่นี่ประสิทธิภาพของวานิลลา ext4 ลดลง 75% ซึ่งเป็นจุดเปลี่ยนครั้งสำคัญในการเปลี่ยนแปลงที่เราทำ.
คุณจะเห็นว่าเมื่อจำนวนลูกค้าเพิ่มขึ้นความคลาดเคลื่อนของประสิทธิภาพจะเพิ่มขึ้น.
ด้วยลูกค้า 48 รายช่องว่างค่อนข้างปิดระหว่างทั้งสอง แต่ยังคงมีการสูญเสียประสิทธิภาพที่ชัดเจนโดย tweaks ของเรา.
ด้วยไคลเอนต์ 128 รายประสิทธิภาพจะใกล้เคียงกัน คุณสามารถให้เหตุผลว่าการปรับแต่งของเราอาจไม่เหมาะสำหรับการใช้งานที่บ้านในการดำเนินการชนิดนี้ แต่จะให้ประสิทธิภาพที่เทียบเท่าเมื่อจำนวนลูกค้าเพิ่มขึ้นอย่างมาก.
การทดสอบนี้ขึ้นอยู่กับไลบรารีการเข้าถึง AIO ของเคอร์เนล เราได้รับการปรับปรุง 20% ที่นี่.
ที่นี่เรามีการสุ่มอ่านแบบมัลติเธรด 64MB และเพิ่มประสิทธิภาพขึ้น 200% ที่นี่! ว้าว!
ในขณะที่เขียนข้อมูล 64MB ด้วย 32 เธรดเรายังคงมีประสิทธิภาพเพิ่มขึ้น 75%.
Compile Bench จำลองผลกระทบของอายุบนระบบไฟล์ที่แสดงโดยจัดการกับเคอร์เนลทรี (การสร้างการคอมไพล์การแพตช์และอื่น ๆ ) ที่นี่คุณสามารถเห็นประโยชน์ที่สำคัญผ่านการสร้างเริ่มต้นของเคอร์เนลจำลองประมาณ 40%.
การวัดประสิทธิภาพนี้ใช้วัดระยะเวลาในการแตกเคอร์เนล Linux การเพิ่มประสิทธิภาพที่นี่ไม่มากเกินไป.
สรุป
การปรับเปลี่ยนที่เราทำกับการกำหนดค่า ext4 แบบนอกกรอบของ Ubuntu นั้นมีผลกระทบค่อนข้างมาก การเพิ่มประสิทธิภาพที่ใหญ่ที่สุดนั้นอยู่ในขอบเขตของการเขียนและอ่านแบบมัลติเธรดการอ่านไฟล์ขนาดเล็กและการอ่านและเขียนไฟล์ขนาดใหญ่ที่ต่อเนื่องกัน ในความเป็นจริงสถานที่จริงเพียงแห่งเดียวที่เราเห็นว่ามีประสิทธิภาพคือการเรียกระบบไฟล์อย่างง่ายสิ่งที่ผู้ใช้ Samba ควรระวัง โดยรวมแล้วดูเหมือนว่าประสิทธิภาพจะเพิ่มขึ้นอย่างแข็งแกร่งสำหรับสิ่งต่าง ๆ เช่นการโฮสต์เว็บเพจและการดู / การสตรีมวิดีโอขนาดใหญ่.
โปรดทราบว่านี่เป็นเฉพาะกับ Ubuntu Natty 64- บิต หากระบบหรือ SSD ของคุณแตกต่างไมล์สะสมของคุณอาจแตกต่างกันไป โดยรวมแล้วดูเหมือนว่าการปรับตัวกำหนดตารางเวลาของ fstab และ IO ที่เราดำเนินการไปนั้นมีประสิทธิภาพที่ดีกว่าดังนั้นจึงน่าลองใช้อุปกรณ์ของคุณเอง.
มีเกณฑ์มาตรฐานของคุณเองและต้องการแบ่งปันผลลัพธ์ของคุณหรือไม่ มีการปรับแต่งอีกที่เราไม่รู้เกี่ยวกับ? แสดงความคิดเห็นออกมา!