Hangi sorunun daha iyi olduğu ile ilgili olarak, CFS veya BFS zamanlayıcı :
Hangi programlayıcıların bir listesini nerede bulabilirim?
Ve aralarında nasıl geçiş yapabilirim?
Hangi sorunun daha iyi olduğu ile ilgili olarak, CFS veya BFS zamanlayıcı :
Hangi programlayıcıların bir listesini nerede bulabilirim?
Ve aralarında nasıl geçiş yapabilirim?
Yanıtlar:
BFS şu anda ana çekirdeğin bir parçası olmadığından kendi çekirdeğinizi indirmeniz, yamalamanız ve derlemeniz gerekecektir. Ana hat çekirdeği yalnızca bir zamanlayıcı içerir ve aynı kod tabanında birden fazla zamanlayıcıya, hatta anında değiştirilebilir zamanlayıcılara sahip olması amaçlanmamıştır (bu muhtemelen yapılabilecek bir şeydir). Çok karmaşık olurdu ve çabaya değmez.
Yani, BFS'yi sisteminize almak için:
BFS'yi CFS üzerinde çalıştırmanın yararı, özellikle daha yeni çekirdek sürümlerinde çok küçüktür. CFS'nin sürekli olarak geliştirildiğini unutmayın.
Bunu biraz araştırdıktan sonra, Linux için sadece iki programlayıcı var gibi görünüyor: CFS ve BFS .
Ubuntu 10.10'da BFS'yi kurmanın en basit yolu bir PPA yamasıdır :
sudo add-apt-repository ppa:chogydan/ppa
sudo apt-get update
sudo apt-get install linux-image-generic-ck linux-headers-generic-ck
Yamayı, "PPA'lar nedir ve nasıl kullanırım" bölümünde açıklanan Ubuntu Yazılım Merkezi'ni kullanarak da yükleyebilirsiniz .
Düzeltme eki, önyüklemedeki GRUB menüsünde "-ck" sonekiyle görünecek yeni (yamalı) bir çekirdek yükler. Yeniden başlatma ve önyükleme menüsünde uygun çekirdeği seçerek zamanlayıcılar arasında geçiş yapın.
Performans hakkında
Benim durumumda, bir masaüstü bilgisayarda arka planda Katlanır @ Home'u çalıştırıyor (Intel i7 2600K'de sekiz çekirdeğin sekiz F @ H iş parçacığı), BFS önemli ölçüde daha iyi: Masaüstü yanıtı daha hızlı (büyük bir fark değil, kesinlikle farkedilebilir) arka plan F @ H uygulaması% 20-25 daha hızlıdır.
Bu senaryoda, etkileşimli masaüstü kullanımı ve uzun süre çalışan CPU-ağır arka plan görevleri ile aynı anda ilgilenen CFS, her seferinde uzun süreler boyunca bir çekirdek boşta kalma eğilimindeydi. BFS, etkileşimli masaüstü görevleri için hızlı yanıt sağlarken arka plan görevleri için tüm çekirdekleri% 100 kullanıldığında çok daha iyi görünüyor.
Muhtemelen her yük kombinasyonu altında en iyi performansı gösterecek tek bir zamanlayıcı yoktur, ancak BFS'nin daha iyi olduğu durumlar vardır.
Aşağıdakiler benim için Hassas Pangolin (Ubuntu 12.04) YMMV'de çalıştı.
pf-kernel
BFS'yi bugün (Aralık 2013) bir Ubuntu sistemine kurmanın en iyi yolu , temelde bir sürü performans yaması uygulanan standart bir çekirdek olan pf çekirdeğini kurmak gibi görünüyor . Bu yamalar şunları içerir:
pf-kernel
Ubuntu için paketlerin nasıl kurulacağıyla ilgili bazı talimatları “ Pf çekirdeği ile Daha İyi Linux Masaüstü Performansı ve daha fazlasını edinin ” başlıklı makalede buldum . paketler. Ancak Debian paketlerinin forum kullanıcısı big_bum'un Dropbox hesabından indirilebileceğini belirten “ pf-kernel for Ubuntu ” dizisini ( pk-kernel
forumlarda) buldum .
pf-kernel
Yüklediğim makine eski bir 32 bit dizüstü bilgisayar, bu yüzden gerekli linux-headers
ve linux-image
paketleri makinemdeki bir dizine indirerek başladım ~/kernel
.
( Bu paketlerin 64 bit ve / veya daha yeni sürümlerini bulmak için yukarıda belirtilen Dropbox hesabına gidin .)
Daha sonra “ pf-kernel ile Daha İyi Linux Masaüstü Performansı ve daha fazlasını edinin ” konusundaki talimatları izledim ve aşağıdaki komutları uyguladım:
$ cd ~/kernel
$ sudo dpkg -i *.deb
Her şey düzgün çalışıyor gibi görünüyor, bu yüzden yeniden başlattım.
Hızlı bir inceleme bunun işe yaradığını gösteriyor gibi görünüyor, örneğin komut kullandığım uname -a
raporları pf-kernel
:
Linux siobhan 3.12.2-pf + # 6 SMP PREEMPT 2 Aralık Pzt 19:09:52 EET 2013 i686 i686 i386 GNU / Linux
Ve cat /sys/block/sda/queue/scheduler
şimdi BFQ'nun geçerli disk zamanlayıcı olduğunu gösterir ( sda
disk için):
noop deadline cfq [bfq]
BFS ile yeni bir çekirdeği yamalayın ve yükleyin. Ayrı çekirdekler kullanmanız gerekir, her ikisini de aynı çekirdek görüntüsünde kullanmanın bir yolu yoktur (özellikle onları anında uçurmak için)