ทำไมตัวจับเวลาของ BFQ และ BFS ไม่รวมอยู่ในเคอร์เนล Ubuntu อย่างเป็นทางการ?


24

เมื่อวานนี้ฉันอ่านบทความเกี่ยวกับการเร่ง Ubuntu ข้อเสนอแนะหนึ่งข้อในบทความนี้คือการแทนที่ตัวกำหนดตารางเวลา I / O เริ่มต้นด้วยBFQซึ่งตามบทความนั้นได้รับการปรับให้เหมาะสมสำหรับประสิทธิภาพการโต้ตอบ

บทความที่คล้ายกันชี้ให้เห็นข้อดีของประสิทธิภาพเดสก์ท็อปเมื่อใช้ตัวกำหนดตารางกระบวนการBFS

ตัวกำหนดตารางเวลาทั้งสองจะรวมอยู่ในชุดข้อมูลแก้ไขจำนวนมากและเคอร์เนลสำรองที่ทราบกันดีว่าเพิ่มการโต้ตอบและประสิทธิภาพของเดสก์ท็อป (เช่นlinux-pf , Liquorix-kernelและlinux-ck )

ดังนั้นคำถามของฉันคือ : เมื่อพิจารณาว่า Ubuntu มุ่งมั่นเพื่อประสบการณ์การใช้งานเดสก์ท็อปที่ยอดเยี่ยมทำไมโครงสร้างที่ไม่ใช่เซิร์ฟเวอร์ของระบบปฏิบัติการไม่มาพร้อมกับตัวกำหนดเวลาเหล่านี้เมื่อพิสูจน์แล้วว่าดีขึ้นในแง่ของประสิทธิภาพเชิงโต้ตอบ


ข้อมูลเพิ่มเติมเกี่ยวกับตัวกำหนดเวลาสองรายการสามารถดูได้ที่นี่:


1
ตัวย่อคือ BFS ไม่ใช่ BFQ ใช่ไหม หรือมันเป็นมิติที่นี่?
jobin

@Jobin อ๊ะคุณพูดถูก BFS เป็นตัวกำหนดตารางเวลากระบวนการและมันรวมอยู่ใน linux-ck patchset เช่นเดียวกับ BFQ ฉันจะแก้ไขคำถามเพื่อสะท้อนสิ่งนี้
Glutanimate

มีการวัดประสิทธิภาพที่เห็นได้ชัดเจนว่าได้รับ BFS เทียบกับกำหนดเวลาเริ่มต้นของ Ubuntu หรือไม่? การวัดประสิทธิภาพที่เชื่อมโยงเปรียบเทียบกับ CFQ
NGRhodes

1
@NGRhodes ใช่ในการเปรียบเทียบนี้คุณจะเห็นว่าผู้เขียนประสบความสำเร็จในเรื่องปริมาณงานที่เท่ากันระหว่าง BFQ และกำหนดเวลาในขณะที่จัดการเพื่อลดเวลาเริ่มต้นของแอปพลิเคชันภายใต้ภาระดิสก์ตามลำดับ คุณจะพบการเปรียบเทียบที่คล้ายกันในบทความแรกที่ลิงก์ด้านบน
Glutanimate

3
ทำไมคุณไม่พยายามที่จะเสนอในอูบุนตู-devel-หารือเกี่ยวกับ ?
Andrea Corbellini

คำตอบ:


14

คำตอบที่รวดเร็ว :

  1. ตัวกำหนดเวลาทั้งสองไม่ทำงานเลยหรือทำงานได้ดีสำหรับแพลตฟอร์มที่รองรับทั้งหมดของ Linux (ความถี่, สถาปัตยกรรม, การใช้ทรัพยากร, ... )
  2. ดูเหมือนว่า Torvalds ไม่ต้องการสนับสนุนมากกว่าหนึ่งตัวจัดตารางเวลา

คำอธิบาย:

เนื่องจากตัวกำหนดตารางเวลาเป็นเพียงการริเริ่ม (ไม่ได้รับการสนับสนุนจากเคอร์เนล) ดังนั้นความจริงแล้วสำหรับการรวมมันจะหมายถึงการให้ความสำคัญกับผู้คนในตัวกำหนดเวลาเหล่านั้น (แพทช์รักษาความปลอดภัยแพทช์การบำรุงรักษา มันหมายถึงการลงทุนทางการเงินสำหรับโครงการที่ยังไม่แน่ใจว่าจะมีอยู่ในอนาคต

พวกเขายังเด็กอยู่ ตัวอย่างที่ดีที่สุดคือสิ่งที่อธิบายไว้ในคำถามที่พบบ่อยของ BFS ที่ "มันปรับขนาดได้อย่างไร"

ด้านหลังบรรทัดของส่วนนี้บอกเราว่า BFS มีปัญหาเรื่องประสิทธิภาพเมื่อคุณมีลอจิคัล CPU จำนวนมาก จุดเดียวนี้เกิดขึ้นสำหรับเซิร์ฟเวอร์และพีซีระดับไฮเอนด์ (กำหนดเป็นจำนวน 16 ดังนั้นหมายความว่าเซิร์ฟเวอร์ 1,000 USD แบบง่ายจะมีปัญหาเรื่องประสิทธิภาพการทำงานนี้) ดังนั้นคุณจึงไม่รวมเซิร์ฟเวอร์ Ubuntu ของแพทช์นี้คุณยังไม่รวมการกำหนดค่า CPU แบบฟิสิคัลที่ตอนนี้สามารถเข้าถึงหมายเลขนี้ได้อย่างง่ายดาย

Ubuntu ไม่สามารถเข้าถึงคนจำนวนมากได้หากใช้ตัวกำหนดเวลาอื่น scalability ชนะมากกว่าประสิทธิภาพ

เช่นเคยกับ "if" ... มากมาย:

  • หากผู้ใช้ Ubuntu ทุกคนเป็นผู้ใช้เดสก์ท็อป
  • หากทุกเครื่องของผู้ใช้ Ubuntu แต่ละคนเป็นพีซีที่ถูกต้องสำหรับตัวกำหนดเวลา

ในความเป็นจริงวิธีที่ดีที่สุดคือวิธีปัจจุบัน: ให้ผู้ใช้ใช้ตัวกำหนดเวลาที่ต้องการหากพวกเขามีฮาร์ดแวร์และสนใจมัน

การปรับใช้อาจใช้งานได้ดีขึ้นในบางช่วงเวลา (เพราะอย่างที่ฉันได้กล่าวไปแล้วความสามารถในการขยายเป็นปัญหาใหญ่และอนาคตจะเพิ่มจำนวนตัวประมวลผล) แต่จะให้ปัญหาร้ายแรงแก่ผู้อื่น

แหล่งที่มาเพิ่มเติม:

การเชื่อมโยงอาจจะไม่ได้อยู่ตลอดไปนี่เป็นบทความที่ผมพบเกี่ยวกับ BFS บนH-ออนไลน์ มันเป็นทางการที่สุดที่ฉันได้พบ อย่างไรก็ตามหากคุณใช้ Google อย่างหนักคุณอาจพบข้อความจริง ฉันคิดว่ามันอาจจะเกี่ยวกับ kerneltrap

ดูย่อหน้าที่สามของชื่อฟีนิกซ์ของบทความ ฉันจะพูดได้ที่นี่ในกรณีที่ลิงค์เสียชีวิต:

ในปัจจุบันการรวมตัวของ BFS เข้ากับสาขาการพัฒนาหลักของลีนุกซ์ดูเหมือนจะไม่น่าเป็นไปได้มากนักเนื่องจาก Linus Torvalds ได้ทำให้มันชัดเจนแล้วว่าเขาไม่ต้องการที่จะรักษาตารางเวลาหลายตัว นอกจากนี้ผู้จัดจำหน่าย Linux มักจะต้องการภาพเคอร์เนลเดียวที่ให้ประสิทธิภาพสูงสุดในระบบที่หลากหลายโดยไม่ต้องมีการกำหนดค่าพิเศษ อาจเป็นไปได้ว่าผู้พัฒนา CFS จะปรับปรุงกำหนดการของพวกเขาในพื้นที่ที่ครอบคลุมโดย BFS - โบนัสสำหรับชุมชนผู้ใช้

Linus Torvalds เธรดเกี่ยวกับมัน

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