Sistem performansınızı büyük ölçüde artırabilecek yeni bir 4 satırlık yama

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 ... 

Not: Bu yöntem, Linux Çekirdeğindeki (cgruplar) görev grupları için destek gerektirir, yani yalnızca 2.6.36'dan yüksek Çekirdeğe sahip kullanıcılar uygulayabilir.

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.

Not: / dev / cgroup / klasörünü görürseniz, çoklu görev yönetiminde önemli bir gelişme olduğunu fark edeceksiniz.

31 yorum, sizinkini bırakın

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   thalskarth dijo

    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ı !!! =)

  2.   Hadi Linux kullanalım dijo

    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.

  3.   thalskarth dijo

    Davetiniz için teşekkürler, o zaman postayla devam edeceğiz 😉

  4.   thalskarth dijo

    Şans eseri, Archlinux için talimat olmayacak, değil mi? 🙂

  5.   Hadi Linux kullanalım dijo

    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 ...

  6.   thalskarth dijo

    İşte onları Archlinux'a nasıl uygulayacağımı buldum, fedora'ya oldukça benziyor: http://pastebin.com/raw.php?i=sHRYRuAN

  7.   Miquel Mayol ve Tur dijo

    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

  8.   Miquel Mayol ve Tur dijo

    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

  9.   Hadi Linux kullanalım dijo

    Hazır! Düzeltildi! Teşekkür ederim!

  10.   Hadi Linux kullanalım dijo

    Bu doğru! Bana hatırlattığın için teşekkürler!
    Bu açıklamayı yazının başına ekledim.
    Sarılmak! Paul.

  11.   Dasineks dijo

    Özellikle, bir kullanıcı olarak ne gibi faydalar elde edeceğim ve sistemimde hangi performans iyileştirmeleri görülecektir.

  12.   Hadi Linux kullanalım dijo

    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.

  13.   Hadi Linux kullanalım dijo

    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.

  14.   Hadi Linux kullanalım dijo

    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.

  15.   domingopv dijo

    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?

  16.   Hadi Linux kullanalım dijo

    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.

  17.   domingopv dijo

    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: ~ $

  18.   Hadi Linux kullanalım dijo

    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.

  19.   söylemem dijo

    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 😀

  20.   Delano dijo

    Hangi rc.local? Birkaç tane var, hangisi? Saygılarımızla.

  21.   Hadi Linux kullanalım dijo

    Ben sadece 4. maddede listelenen komutları yazdım. Bunu bir dosyaya kopyalamanıza gerek yok, bu komutları çalıştırmanız gerekiyor.
    Şerefe! Paul.

  22.   GNU / Linux İpuçları dijo

    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ış.

  23.   Hadi Linux kullanalım dijo

    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.

  24.   aespinoza dijo

    PCLinuxO'larda prosedür ne olurdu?

  25.   Hadi Linux kullanalım dijo

    Gerçek şu ki bilmiyorum ...
    Eğer öğrenirseniz, verileri diğerleriyle paylaşmayı unutmayın!
    Çok teşekkür ederiz!
    Şerefe! Paul.

  26.   gonho dijo

    Bana öyle geliyor ya da aldığınız yerden herhangi bir referans vermediniz mi? Bana kaynağı söyleyebilir misin?

    teşekkürler

  27.   Hadi Linux kullanalım dijo

    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.

  28.   şanslılar0921 dijo

    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.

  29.   Hadi Linux kullanalım dijo

    Bu değişiklik hem 32 hem de 64 bit için geçerlidir.
    Şerefe! Paul.

  30.   Bay Tuxito dijo

    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)

  31.   İsalara dijo

    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.