เกี่ยวข้องกับคำถามที่ดีกว่าตัวกำหนดตารางเวลา CFS หรือ BFS :
ฉันจะหารายการตัวจับเวลาที่ใช้ได้ได้ที่ไหน
และฉันจะสลับระหว่างพวกเขาได้อย่างไร
เกี่ยวข้องกับคำถามที่ดีกว่าตัวกำหนดตารางเวลา CFS หรือ BFS :
ฉันจะหารายการตัวจับเวลาที่ใช้ได้ได้ที่ไหน
และฉันจะสลับระหว่างพวกเขาได้อย่างไร
คำตอบ:
คุณจะต้องดาวน์โหลดแก้ไขและรวบรวมเคอร์เนลของคุณเองเพราะปัจจุบัน BFS ไม่ได้เป็นส่วนหนึ่งของเคอร์เนล mainline เคอร์เนล mainline มีเพียง scheduler เดียวและไม่ได้หมายถึงการมี schedulers หลายตัวใน codebase เดียวกันหรือแม้กระทั่ง on-the-fly switchable schedulers (มันเป็นสิ่งที่สามารถทำได้) มันจะซับซ้อนเกินไปและไม่คุ้มค่ากับความพยายาม
ดังนั้นเพื่อรับ BFS ในระบบของคุณ:
ประโยชน์ของการรัน BFS บน CFS นั้นมีขนาดเล็กมากโดยเฉพาะกับเคอร์เนลเวอร์ชันใหม่ โปรดทราบว่า CFS ได้รับการปรับปรุงอย่างต่อเนื่อง
มีการวิจัยบิตนี้ดูเหมือนว่าจะมีเพียงสอง schedulers สำหรับลินุกซ์: CFSและBFS
วิธีที่ง่ายที่สุดในการติดตั้ง BFS ใน Ubuntu 10.10 คือPPA patch :
sudo add-apt-repository ppa:chogydan/ppa
sudo apt-get update
sudo apt-get install linux-image-generic-ck linux-headers-generic-ck
นอกจากนี้คุณยังสามารถติดตั้งโปรแกรมปรับปรุงโดยใช้ศูนย์ซอฟท์แวอูบุนตูที่อธิบายไว้ใน"สิ่งที่มีสัญญาซื้อขายไฟฟ้าและวิธีการทำผมใช้พวกเขา"
แพทช์ติดตั้งเคอร์เนลใหม่ (แพตช์) ซึ่งจะปรากฏขึ้นในเมนูด้วงที่บูตด้วยคำต่อท้าย "-ck" สลับระหว่างตัวกำหนดเวลาด้วยการบูตเครื่องใหม่และเลือกเคอร์เนลที่เหมาะสมในเมนูการบูต
เกี่ยวกับประสิทธิภาพ
ในกรณีของฉันการใช้งานFolding @ Homeในพื้นหลังบนเดสก์ท็อปพีซี (แปดเธรด F @ H บนแปดคอร์ใน Intel i7 2600K) BFS ดีกว่าอย่างเห็นได้ชัด: การตอบสนองเดสก์ท็อปคือ snappier (ไม่แตกต่างกันมาก ในขณะที่แอปพลิเคชันพื้นหลัง F @ H เร็วขึ้น 20-25%
ในสถานการณ์สมมตินี้การจัดการกับการใช้เดสก์ท็อปแบบอินเทอร์แอคทีฟและงานพื้นหลังที่ใช้งาน CPU หนักเป็นเวลานานพร้อมกันนั้น CFS มีแนวโน้มที่จะไม่ใช้งานหนึ่งคอร์เป็นเวลานาน BFS นั้นดูดีกว่ามากเมื่อใช้คอร์ทั้งหมด 100% สำหรับงานพื้นหลังในขณะที่ยังคงตอบสนองอย่างรวดเร็วสำหรับงานเดสก์ท็อปแบบโต้ตอบ
อาจไม่มีตัวจัดตารางเวลาเดียวที่จะดำเนินการอย่างเหมาะสมภายใต้การรวมกันของโหลดที่เป็นไปได้ แต่มีบางกรณีที่ BFS ดีกว่า
ด้านล่างนี้ใช้งานได้กับฉันใน Precise Pangolin (Ubuntu 12.04) YMMV
pf-kernel
วิธีที่ดีที่สุดในการติดตั้ง BFS บนระบบ Ubuntu ในวันนี้ (ธันวาคม 2013) ดูเหมือนว่าจะติดตั้งpf-kernelซึ่งโดยทั่วไปจะเป็นเคอร์เนลมาตรฐานที่มีการติดตั้งแพตช์ประสิทธิภาพจำนวนมาก แพทช์เหล่านี้รวมถึง:
ฉันพบคำแนะนำบางอย่างเกี่ยวกับวิธีการติดตั้งpf-kernel
แพคเกจสำหรับ Ubuntu ในบทความ“ รับประสิทธิภาพ Linux Desktop ที่ดีขึ้นและอื่น ๆ ด้วย pf-kernel ” - อย่างไรก็ตามคำแนะนำเหล่านี้ค่อนข้างล้าสมัยเพราะชี้ไปยังแหล่งที่ไม่มีอยู่สำหรับ Debian ที่เกี่ยวข้อง แพคเกจ แต่ผมพบว่าด้าย“ PF-เคอร์เนลสำหรับอูบุนตู ” (ในpk-kernel
ฟอรั่ม) ซึ่งกล่าวว่าแพคเกจ Debian สามารถดาวน์โหลดได้จากบัญชี Dropbox ของฟอรั่ม
pf-kernel
เครื่องผมติดตั้งบนเป็นแล็ปท็อป 32 บิตเก่าดังนั้นผมจึงเริ่มออกโดยการดาวน์โหลดที่จำเป็นlinux-headers
และแพคเกจลงในไดเรกทอรีในเครื่องของฉันเรียกว่าlinux-image
~/kernel
(ไปที่บัญชีดรอปบ็อกซ์ที่กล่าวถึงข้างต้นเพื่อค้นหาแพ็คเกจ 64 บิตและ / หรือใหม่กว่า)
หลังจากนั้นฉันทำตามคำแนะนำเกี่ยวกับ“ เพิ่มประสิทธิภาพ Linux Desktop และอีกมากมายด้วย pf-kernel ” และดำเนินการคำสั่งต่อไปนี้:
$ cd ~/kernel
$ sudo dpkg -i *.deb
ดูเหมือนว่าทุกอย่างจะทำงานได้อย่างราบรื่นดังนั้นฉันจึงเริ่มระบบใหม่
การตรวจสอบอย่างรวดเร็วดูเหมือนจะบ่งบอกว่ามันใช้งานได้เช่นคำสั่งuname -a
รายงานว่าฉันใช้pf-kernel
:
Linux siobhan 3.12.2-pf + # 6 SMP การเตรียมการของวันที่ 2 ธันวาคม 19:09:52 EET 2013 i686 i686 i386 GNU / Linux
และcat /sys/block/sda/queue/scheduler
แสดงให้เห็นว่า BFQ ตอนนี้เป็นตัวกำหนดตารางเวลาดิสก์ปัจจุบัน (สำหรับsda
ดิสก์):
noop deadline cfq [bfq]
แก้ไขและติดตั้งเคอร์เนลใหม่ด้วย BFS คุณต้องใช้ sepatare kernels ไม่มีวิธีใช้ทั้งในเคอร์เนลอิมเมจเดียวกัน