Uzun lafın kısası, birkaç gün önce çekirdek geliştiricilerinden biri bir yama yükledi (200 satır kod), özellikle ağır bir görevin (çekirdeğin derlenmesi gibi) yürütülmesi sırasında çoklu görevle uğraşırken sistemin performansını önemli ölçüde (neredeyse 10 kat) artırmaya izin verdi. Linus bu geliştiriciyi büyük katkılarından dolayı tebrik etti. Ancak bir Red Hat geliştiricisi, Lennar Poettering, bu geliştirmeyi doğrudan çekirdekten uygulamayı kabul etmedi; kullanıcı alanında değişiklikler yapması onun için daha iyiydi (~ / .bashrc). Linus sinirlendi ve bu geliştiriciyi azarladı ve sonuçların kendileri için geçerli olduğunu söyledi. Lennar, sert sözlerle yanıt vermek yerine oturdu ve plan yaptı bir alternatif (çekirdeğin yamalanması gerekmeyen) ve sadece 4 satır kaplayan. Sonunda, Linus'u susturdular ... |
Yama Fedora'da nasıl uygulanır?
1. - ~ / .Bashrc dosyasını düzenleyin.
gedit ~ / .bashrc
2. - Aşağıdaki kodu dosyanın sonuna yapıştırın:
eğer ["$ PS1"]; sonra
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / tasks
fi
3. - Aşağıdaki komutları çalıştırın:
mount -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / user
Yama Ubuntu'da nasıl uygulanır?
Ubuntu'da işler biraz daha karmaşık ...
1. - Dosyayı düzenleyin rc.yerel bu komutla:
sudo gedit /etc/rc.local
ve "0'dan çıkış" yazan yerin önüne yapıştırın, aşağıdakileri yapın:
mkdir -p / dev / cgroup / cpu
mount -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / user
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
2. - Dosyayı kaydedin ve yürütme izinleri verin:
sudo chmod + x /etc/rc.local
3. - Dosyayı düzenleyin ~ / .bashrc:
gedit ~ / .bashrc
4. - Aşağıdaki kodu dosyanın sonuna yapıştırın:
eğer ["$ PS1"];
sonra mkdir -m 0700 / dev / cgroup / cpu / user / $$
echo $$> / dev / cgroup / cpu / user / $$ / tasks
echo "1"> / dev / cgroup / cpu / user / $$ / notify_on_release
fi
5. - Cgroup_clean dosyasını değiştirin:
sudo gedit / usr / local / sbin / cgroup_clean
6. - Aşağıdaki kodu dosyanın sonuna yapıştırın:
#! / Bin / sh
eğer ["$ *"! = "/ kullanıcı"]; sonra
rmdir / dev / cgroup / cpu / $ *
fi
7. - Dosyayı kaydedin ve yürütme izinleri verin:
sudo chmod + x / usr / local / sbin / cgroup_clean
8. - Sistemi yeniden başlatın.
31 yorum, sizinkini bırakın
Arch için talimatları buldum, buradalar: http://pastebin.com/raw.php?i=sHRYRuAN
Kendi adıma, yamayı uyguladım, genel olarak pek fazla gelişme fark etmedim, ancak web sayfalarını kaydırırken büyük bir değişiklik fark ederseniz, ilk kez gerçekten akıcı !!! =)
Harika! Paylaştığınız için çok teşekkür ederim!
Arch'ı blog için kullanan kişileri aradığımızı söylemiş miydim? Eğer ilgileniyorsanız bize yazın hadilinux@gmail.com'u kullanalım
Büyük bir sarılma! Paul.
Davetiniz için teşekkürler, o zaman postayla devam edeceğiz 😉
Şans eseri, Archlinux için talimat olmayacak, değil mi? 🙂
Ben bulamadım. Ama bir şey bana daha çok Fedora'ya benzediğini söylüyor. Öte yandan herkes Arch'ı istediği gibi bir araya getirirken, belki de izlenecek prosedürü etkileyen budur ...
İşte onları Archlinux'a nasıl uygulayacağımı buldum, fedora'ya oldukça benziyor: http://pastebin.com/raw.php?i=sHRYRuAN
bash: / dev / cgroup / cpu / user / $ / tasks: Dosya veya dizin mevcut değil
Bu talimatları izledim ve yapacak bir şey varsa, terminal AMD64 x'i açarken bana bu hatayı söylemeye devam ediyor
Ben zaten buldum, lütfen düzelt pablo http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
Ubuntu'da yazdıklarınızın yerine yapmanız gerekenler:
sudo gedit / usr / local / sbin / cgroup_clean
ve şunu koy:
#! / Bin / sh
eğer ["$ *"! = "/ kullanıcı"]; sonra
rmdir / dev / cgroup / cpu / $ *
fi
Hazır! Düzeltildi! Teşekkür ederim!
Bu doğru! Bana hatırlattığın için teşekkürler!
Bu açıklamayı yazının başına ekledim.
Sarılmak! Paul.
Özellikle, bir kullanıcı olarak ne gibi faydalar elde edeceğim ve sistemimde hangi performans iyileştirmeleri görülecektir.
Her şey çok daha hızlı gidiyor. Ancak, ağır bir görev yaptığınızda ve aynı anda başka işler yapmak istediğinizde farklılıklar gerçekten "görülür". Örneğin, birkaç programın kurulumunu çalıştırıyorsunuz veya çekirdeği derliyorsunuz veya ağır bir videoyu düzenliyorsunuz ve aynı zamanda internette gezinmek veya bir film izlemek vb.
Eğer yamayı Arch'da nasıl uygulayacağınızı keşfederseniz bana haber verin. Fedora'da çalışanı çalıştırmayı deneyeceğim.
Sarıl! Paul.
Sanırım bu, bilgisayarınıza verdiğiniz kullanıma bağlı. İnterneti ve bazı hafif metin düzenleyiciyi zar zor kullanırsanız ... farkı "hissetmezsiniz". Öte yandan, internette gezinirken veya film izlerken benim gibiyseniz ve ağır işler (video dönüştürme, çekirdeği derleme vb.) Yapıyorsanız, farkı anlayabilirsiniz.
Tüm adımlardan sonra, terminali açtığımda her zaman aşağıdakileri alıyorum:
mkdir: "/ dev / cgroup / cpu / user / 1844" dizini oluşturulamıyor: Dosya veya dizin mevcut değil
bash: / dev / cgroup / cpu / user / 1844 / tasks: Dosya veya dizin mevcut değil
bash: / dev / cgroup / cpu / user / 1844 / notify_on_release: Dosya veya dizin mevcut değil
domingopv @ pc1: ~ $
Her şey terminalde bile iyi çalışıyor, yanlış bir şey mi yaptın?
Mmmm ... Gerçekten ne olabileceğini bilmiyorum. Bununla birlikte, özellikle 5'ten itibaren bazı adımları iyi atlamadığınız izlenimini edindim. Bunları tekrar etmeyi veya doğru anladığınızdan emin olmayı deneyin. Şimdilik tüm düşünebildiğim bu.
Büyük bir sarılma! Paul.
Maverick'i yeniden yükleyin ve yamayı yeniden yükleyin ve şimdi aşağıdakileri alıyorum.
mkdir: "/ dev / cgroup / cpu / user / 1678" dizini oluşturulamıyor: Dosya veya dizin mevcut değil
bash: / dev / cgroup / cpu / user / 1678 / tasks: Dosya veya dizin mevcut değil
bash: / dev / cgroup / cpu / user / 1678 / notify_on_release: Dosya veya dizin mevcut değil
domingopv @ pc1: ~ $
Uyy .. Ne olabileceğini gerçekten bilmiyorum. Benim için mükemmel çalıştı.
İçimden bir ses cgroup temizlemenin iyi performans göstermediğini söylüyor. Bu yüzden 5. adımdan itibaren görmeniz için ısrar ettim.
Şerefe! Paul.
Annem, etkileyici, pasif bir nvidia 1080'de 8400p flash videoları görebiliyorum, yani kötü kötü, MÜKEMMEL, cpus hepsi çalışıyor, harika uffff, bu gelişiyor, çok daha iyi, Ubuntu 10.04'üm var 😀 iyi, videolar benim için iyi hahaha 😀
Hangi rc.local? Birkaç tane var, hangisi? Saygılarımızla.
Ben sadece 4. maddede listelenen komutları yazdım. Bunu bir dosyaya kopyalamanıza gerek yok, bu komutları çalıştırmanız gerekiyor.
Şerefe! Paul.
Kötü bir şekilde açıklanmıştır.
Yapmanız gereken, rc.local dosyasını şu şekilde düzenlemektir:
sudo gedit /etc/rc.local
İçeri yapıştırmanız gerekir (0 çıkışından önce):
mkdir -p / dev / cgroup / cpu
mount -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / user
echo "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
İşte sorun bu. Bu adımlar yeterince açıklanmamış.
Haklısın! Açıkça "rc.local dosyasını düzenle" diyor. Eksik olan şey, böyle bir şey yapma komutudur (bazılarının bilmediği). Şimdi ekliyorum.
Uyarı için teşekkürler! Şerefe! Paul.
PCLinuxO'larda prosedür ne olurdu?
Gerçek şu ki bilmiyorum ...
Eğer öğrenirseniz, verileri diğerleriyle paylaşmayı unutmayın!
Çok teşekkür ederiz!
Şerefe! Paul.
Bana öyle geliyor ya da aldığınız yerden herhangi bir referans vermediniz mi? Bana kaynağı söyleyebilir misin?
teşekkürler
Tek bir kaynak yok. Bunu farklı kaynaklardan ve kendi kişisel deneyimlerimden nasıl yapacağımı araştırıyordum. Genel hatlarıyla, kaynakların o haberi çoğaltan milyonlarca blog olduğunu söyleyebilirim. "Yama 200 linux kernel lines" ı arayın ve neden bahsettiğimi göreceksiniz. Tam olarak hatırlamıyorum ama Ubuntu kısmı WebUpd8'den alınmış olabilir; Fedora'nınki kadar değil.
Kısa bir süre önce Ubuntu 64 bit kullanıcısıyım ve bu ipucunu gördüğümde araştırmaya başladım ve şu an sahip olduğum çekirdek gönderiye göre 2.6.32-27, bu yama yalnızca daha yüksek veya eşit olan çekirdeklere uygulanabilir 2.6.36'ya kadar sorum şu ki, bu değişiklik yalnızca 32 bit dağıtımlar için mi işe yarıyor yoksa mevcut dağıtımımda çekirdek 2.6.36'ya güncellenebilir mi?
İnternetteki tüm bilgiler için teşekkürler, mükemmel malzeme.
Bu değişiklik hem 32 hem de 64 bit için geçerlidir.
Şerefe! Paul.
bir soru sorarsan ve bu daha sonraki güncellemelerle karışmaz mı?
İyi gitmeseydi, olabilecek en kötü şey ne olurdu?
(Görüyorsunuz ki, bir Ubuntu 10.04'ten 10.10'a geçmek her şeyi çökertir)
Açıklığa kavuşturulması gereken ilk şey (yöntemin sorumsuzca kullanılmasını önlemek için), Linux Çekirdeğindeki (cgruplar) görev grupları için destek gerektirmesidir, yani yalnızca 2.6.36'dan daha büyük Kernel'e sahip kullanıcılar bu yöntemi uygulayabilir. Gelişme.