ฉันจะสลับระหว่างตัวกำหนดเวลา CFS และ BFS ได้อย่างไร


17

เกี่ยวข้องกับคำถามที่ดีกว่าตัวกำหนดตารางเวลา CFS หรือ BFS :

ฉันจะหารายการตัวจับเวลาที่ใช้ได้ได้ที่ไหน

และฉันจะสลับระหว่างพวกเขาได้อย่างไร

คำตอบ:


7

คุณจะต้องดาวน์โหลดแก้ไขและรวบรวมเคอร์เนลของคุณเองเพราะปัจจุบัน BFS ไม่ได้เป็นส่วนหนึ่งของเคอร์เนล mainline เคอร์เนล mainline มีเพียง scheduler เดียวและไม่ได้หมายถึงการมี schedulers หลายตัวใน codebase เดียวกันหรือแม้กระทั่ง on-the-fly switchable schedulers (มันเป็นสิ่งที่สามารถทำได้) มันจะซับซ้อนเกินไปและไม่คุ้มค่ากับความพยายาม

ดังนั้นเพื่อรับ BFS ในระบบของคุณ:

  • รับเคอร์เนล: http://www.kernel.org
  • รับแพตช์ BFS ล่าสุดสำหรับเคอร์เนลเวอร์ชันของคุณ: http://ck.kolivas.org/patches/bfs/
  • แก้ไขรวบรวมและบูตเคอร์เนลใหม่ของคุณ

ประโยชน์ของการรัน BFS บน CFS นั้นมีขนาดเล็กมากโดยเฉพาะกับเคอร์เนลเวอร์ชันใหม่ โปรดทราบว่า CFS ได้รับการปรับปรุงอย่างต่อเนื่อง


ฉันรวบรวมเคอร์เนล 4.0.5 พร้อมโปรแกรมแก้ไข BFS แต่ตัวกำหนดตารางเวลาไม่อยู่ในรายการ BFS ถูกเปิดใช้งานใน make menuconfig ฉันไม่เข้าใจว่าทำไม
shantanu

9

มีการวิจัยบิตนี้ดูเหมือนว่าจะมีเพียงสอง 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 ดีกว่า


3

ด้านล่างนี้ใช้งานได้กับฉันใน Precise Pangolin (Ubuntu 12.04) YMMV

BFS เป็นส่วนหนึ่งของ pf-kernel

วิธีที่ดีที่สุดในการติดตั้ง BFS บนระบบ Ubuntu ในวันนี้ (ธันวาคม 2013) ดูเหมือนว่าจะติดตั้งpf-kernelซึ่งโดยทั่วไปจะเป็นเคอร์เนลมาตรฐานที่มีการติดตั้งแพตช์ประสิทธิภาพจำนวนมาก แพทช์เหล่านี้รวมถึง:

  • BFS (ตัวกำหนดเวลา CPU ให้เวลาแฝงที่ต่ำบนเครื่องที่มีคอร์ CPU น้อยกว่า 16 คอร์)
  • BFQ (ตัวกำหนดตารางเวลาดิสก์ I / O ที่ปรับให้เหมาะสมสำหรับเวลาแฝงต่ำภายใต้ภาระงานหนัก)
  • TuxOnIce (ไฮเบอร์เนตเร็วขึ้น)

คำแนะนำบนเว็บ

ฉันพบคำแนะนำบางอย่างเกี่ยวกับวิธีการติดตั้ง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] 

Nov'14 - ฉันติดตั้งเคอร์เนล pf นี้ใน Pangolin ที่แม่นยำของฉัน (Ubuntu 12.04.4 LTS) ที่ใช้งาน Mythbuntu เป็นหลักเพื่อให้ได้ I / O ที่ดีขึ้นจากระบบไฟล์ xfs ของฉันสำหรับการบันทึกวิดีโอ ฉันจับคู่เคอร์เนลเวอร์ชัน (3.13) เพื่อประกันความเข้ากันได้ของไดรเวอร์เริ่มต้นของ NVIDIA มันทำงานได้โดยไม่ต้องผูกปม รุ่งโรจน์ถึง zrjm ... .. !
keepitsimpleengineer

1

แก้ไขและติดตั้งเคอร์เนลใหม่ด้วย BFS คุณต้องใช้ sepatare kernels ไม่มีวิธีใช้ทั้งในเคอร์เนลอิมเมจเดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.