ऐसे प्रश्न से संबंधित है जिस पर बेहतर है, सीएफएस या बीएफएस अनुसूचक :
मुझे कहां से सूची मिली है कि कौन से शेड्यूलर उपलब्ध हैं?
और मैं उनके बीच कैसे स्विच करूं?
ऐसे प्रश्न से संबंधित है जिस पर बेहतर है, सीएफएस या बीएफएस अनुसूचक :
मुझे कहां से सूची मिली है कि कौन से शेड्यूलर उपलब्ध हैं?
और मैं उनके बीच कैसे स्विच करूं?
जवाबों:
आपको अपने कर्नेल को डाउनलोड, पैच और संकलित करना होगा क्योंकि BFS वर्तमान में मेनलाइन कर्नेल का हिस्सा नहीं है। मेनलाइन कर्नेल में केवल एक शेड्यूलर होता है और इसका अर्थ समान कोडबेस में एकाधिक शेड्यूलर नहीं होता है, या यहां तक कि ऑन-द-फ्लाई स्विटलेबल शेड्यूलर्स भी होता है (यह कुछ ऐसा भी है जो संभवतः किया जा सकता है)। यह बस बहुत जटिल होगा, और प्रयास के लायक नहीं है।
तो, अपने सिस्टम पर BFS पाने के लिए:
सीएफएस पर बीएफएस चलाने का लाभ हालांकि बहुत कम है, खासकर नए कर्नेल संस्करणों के साथ। ध्यान रखें कि सीएफएस में लगातार सुधार किया जा रहा है।
इस पर थोड़ा शोध करने पर लगता है कि लिनक्स के लिए केवल दो शेड्यूलर हैं: सीएफएस और बीएफएस ।
Ubuntu 10.10 में BFS स्थापित करने का सबसे सरल तरीका एक PPA पैच है :
sudo add-apt-repository ppa:chogydan/ppa
sudo apt-get update
sudo apt-get install linux-image-generic-ck linux-headers-generic-ck
आप उबंटू सॉफ्टवेयर सेंटर का उपयोग करके पैच को स्थापित कर सकते हैं जैसा कि "क्या पीपीए हैं और मैं उनका उपयोग कैसे करूं" में वर्णित है ।
पैच एक नया (पैचेड) कर्नेल स्थापित करता है, जो ग्रब मेनू में प्रत्यय "-ck" के साथ बूट में दिखाई देगा। बूट मेनू में रिबूट और उपयुक्त कर्नेल का चयन करके अनुसूचियों के बीच स्विच करें।
प्रदर्शन पर
मेरे मामले में, डेस्कटॉप पीसी पर बैकग्राउंड में फोल्डिंग @ होम चलाना (इंटेल i7 2600K पर आठ कोर पर आठ एफ @ एच थ्रेड्स), बीएफएस काफी बेहतर है: डेस्कटॉप प्रतिक्रिया स्नैपर (एक बड़ा अंतर नहीं है, लेकिन निश्चित रूप से ध्यान देने योग्य है) जबकि पृष्ठभूमि F @ H अनुप्रयोग 20-25% तेज है।
इस परिदृश्य में, इंटरेक्टिव डेस्कटॉप उपयोग और लंबे समय से चल रहे सीपीयू-हैवी बैकग्राउंड कार्यों को एक साथ निपटाने के लिए, सीएफएस एक समय में एक कोर आइडल को छोड़ने के लिए जाता था। इंटरैक्टिव डेस्कटॉप कार्यों के लिए तेजी से प्रतिक्रिया प्रदान करते हुए भी बीएफएस पृष्ठभूमि कार्यों के लिए सभी कोर 100% का उपयोग करने में बहुत बेहतर दिखाई देता है।
शायद कोई एकल अनुसूचक नहीं है जो भार के हर संभव संयोजन के तहत बेहतर प्रदर्शन करेगा, लेकिन ऐसे मामले हैं जहां बीएफएस बेहतर है।
नीचे मेरे लिए सटीक पैंगोलिन (Ubuntu 12.04) YMMV पर काम किया, हालांकि।
pf-kernel
आज (दिसंबर 2013) में बीएफएस को स्थापित करने का सबसे अच्छा तरीका पीएफ-कर्नेल स्थापित करना प्रतीत होता है , जो मूल रूप से एक मानक कर्नेल है जिसमें प्रदर्शन पैच का एक गुच्छा लगाया जाता है। इन पैच में शामिल हैं:
मैंने pf-kernel
लेख में उबंटू के लिए पैकेजों को स्थापित करने के बारे में कुछ निर्देश दिए " बेहतर लिनक्स डेस्कटॉप प्रदर्शन प्राप्त करें और पीएफ-कर्नेल के साथ और अधिक ।" - हालांकि ये निर्देश कुछ पुराने हैं, क्योंकि यह प्रासंगिक डेबियन के लिए एक गैर-मौजूदा स्रोत की ओर इशारा करता है। संकुल। लेकिन मुझे थ्रेड " उबंटू के लिए पीएफ-कर्नेल " ( pk-kernel
मंचों पर) मिला, जिसमें उल्लेख किया गया है कि डेबियन पैकेज को मंच उपयोगकर्ता big_bum के ड्रॉपबॉक्स खाते से डाउनलोड किया जा सकता है ।
pf-kernel
जिस मशीन पर मैंने स्थापित किया है वह एक पुराने 32-बिट लैपटॉप है, इसलिए मैंने अपनी मशीन पर एक निर्देशिका में आवश्यक linux-headers
और linux-image
पैकेज डाउनलोड करके बंद कर दिया ~/kernel
।
( इन पैकेजों के 64 बिट और / या नए संस्करणों को खोजने के लिए उपर्युक्त ड्रॉपबॉक्स खाते में जाएं।)
इसके बाद मैंने " बेहतर लिनक्स डेस्कटॉप प्रदर्शन प्राप्त करें और पीएफ-कर्नेल के साथ और अधिक " निर्देशों का पालन किया , और निम्नलिखित आदेशों को निष्पादित किया:
$ cd ~/kernel
$ sudo dpkg -i *.deb
सब कुछ सुचारू रूप से काम करने लगता है, इसलिए मैंने रिबूट किया।
एक त्वरित निरीक्षण से संकेत मिलता है कि यह काम करता है, उदाहरण के लिए कमांड uname -a
रिपोर्ट जो मैं उपयोग कर रहा हूं pf-kernel
:
लिनक्स शोभन ३.१२.२ -पीएफ + # ६ एसएमपी प्रीमेन्प्ट मोन दिसम्बर २ १ ९: ५२:२२ ईईटी २०१३ i686 i686 i386 GNU / Linux
और cat /sys/block/sda/queue/scheduler
दिखाता है कि BFQ अब वर्तमान डिस्क अनुसूचक है ( sda
डिस्क के लिए):
noop deadline cfq [bfq]
BFS के साथ एक नया कर्नेल पैच और स्थापित करें। आपको सीपेटेयर गुठली का उपयोग करना होगा, एक ही कर्नेल छवि में दोनों का उपयोग करने का कोई तरीका नहीं है (विशेष रूप से उन्हें मक्खी पर स्वाइप करने के लिए)