Nowa 4-liniowa poprawka, która może znacznie zwiększyć wydajność twojego systemu

Krótko mówiąc, kilka dni temu jeden z twórców jądra przesłał łatkę (200 linijek kodu), co pozwoliło znacznie poprawić (prawie 10-krotnie) wydajność systemu, zwłaszcza gdy mamy do czynienia z wielozadaniowością podczas wykonywania ciężkiego zadania (takiego jak kompilacja jądra). Linus pogratulował temu deweloperowi wielkiego wkładu. Jednak programista Red Hat, Lennar Poettering nie zgodził się na zaimplementowanie tego ulepszenia bezpośrednio z jądra; lepiej dla niego było wprowadzić zmiany w przestrzeni użytkownika (~ / .bashrc). Linus rozgniewał się i zganił tego dewelopera, mówiąc mu, że wyniki mówią same za siebie. Lennar, zamiast odpowiedzieć szorstkimi słowami, usiadł i opracował alternatywa (która nie wymaga łatania jądra) i zajmuje tylko 4 linie. Ostatecznie zamknęli Linusa ... 

Uwaga: ta metoda wymaga obsługi grup zadań w jądrze Linuksa (cgroups), to znaczy tylko użytkownicy z jądrem wyższym niż 2.6.36 mogą ją zastosować.

Jak zastosować poprawkę w Fedorze

1.- Edytuj plik ~ / .bashrc.

gedit ~ / .bashrc

2.- Wklej następujący kod na końcu pliku:

if ["$ PS1"]; następnie
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / jobs
fi

3.- Uruchom następujące polecenia:

mount -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / user

Jak zastosować łatkę w Ubuntu

W Ubuntu sprawy są trochę bardziej skomplikowane ...

1.- Edytuj plik rc.lokalny tym poleceniem:

sudo gedit /etc/rc.local

i wklej przed napisem „exit 0”, co następuje:

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.- Zapisz plik i nadaj mu uprawnienia do wykonywania:

sudo chmod + x /etc/rc.local

3.- Edytuj plik ~ / .bashrc:

gedit ~ / .bashrc

4.- Wklej następujący kod na końcu pliku:

if ["$ PS1"];
następnie mkdir -m 0700 / dev / cgroup / cpu / user / $$
echo $$> / dev / cgroup / cpu / user / $$ / jobs
echo "1"> / dev / cgroup / cpu / user / $$ / notify_on_release
fi

5.- Zmodyfikuj plik cgroup_clean:

sudo gedit / usr / local / sbin / cgroup_clean

6.- Wklej następujący kod na końcu pliku:

#! / Bin / sh
if ["$ *"! = "/ użytkownik"]; następnie
rmdir / dev / cgroup / cpu / $ *
fi

7.- Zapisz plik i nadaj mu uprawnienia do wykonywania:

sudo chmod + x / usr / local / sbin / cgroup_clean

8.- Uruchom ponownie system.

Uwaga: jeśli zobaczysz folder / dev / cgroup /, zauważysz znaczną poprawę zarządzania wielozadaniowością.

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   thalskarth powiedział

    Znalazłem instrukcje do Arch, są tutaj: http://pastebin.com/raw.php?i=sHRYRuAN

    Ze swojej strony nałożyłem łatkę, dużo poprawy w ogóle nie zauważam, ale jeśli zauważysz dużą zmianę podczas przewijania stron internetowych, to po raz pierwszy są one naprawdę płynne !!! =)

  2.   Użyjmy Linuksa powiedział

    Świetny! Dziękuję bardzo za udostępnienie!
    Czy mówiłem Ci, że szukamy osób, które używają Arch do blogowania? Jeśli jesteś zainteresowany, napisz użyjmy linux@gmail.com
    Wielki uścisk! Paweł.

  3.   thalskarth powiedział

    Dzięki za zaproszenie, dalej będziemy kontynuować pocztą 😉

  4.   thalskarth powiedział

    Jest przypadkiem, że nie będzie żadnych instrukcji dla Archlinux, prawda? 🙂

  5.   Użyjmy Linuksa powiedział

    Nie znalazłem ich. Ale coś mi mówi, że z pewnością bardziej przypomina Fedorę. Z drugiej strony należy pamiętać, że skoro wszyscy montują Archa tak, jak chcą, być może ma to wpływ na procedurę, której należy przestrzegać ...

  6.   thalskarth powiedział

    Tutaj znalazłem, jak je zastosować w Archlinux, jest dość podobny do fedory: http://pastebin.com/raw.php?i=sHRYRuAN

  7.   Miquel Mayol i Tur powiedział

    bash: / dev / cgroup / cpu / user / $ / jobs: plik lub katalog nie istnieje

    Postępowałem zgodnie z tymi instrukcjami i wyświetla mi ten błąd podczas otwierania terminala AMD64 x, jeśli ma coś do zrobienia

  8.   Miquel Mayol i Tur powiedział

    Już to znalazłem, proszę Pablo, popraw to http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html

    Co robić w Ubuntu - zamiast tego, co umieściłeś - to:

    sudo gedit / usr / local / sbin / cgroup_clean

    i umieść to:

    #! / Bin / sh
    if ["$ *"! = "/ użytkownik"]; następnie
    rmdir / dev / cgroup / cpu / $ *
    fi

  9.   Użyjmy Linuksa powiedział

    Gotowy! Poprawione! Dziękuję Ci!

  10.   Użyjmy Linuksa powiedział

    To prawda! Dzięki za przypomnienie!
    Właśnie dodałem to wyjaśnienie na początku wpisu.
    Uścisk! Paweł.

  11.   dasinex powiedział

    W szczególności, jakie korzyści uzyskam jako użytkownik i jakie ulepszenia wydajności będą widoczne w moim systemie.

  12.   Użyjmy Linuksa powiedział

    Wszystko idzie znacznie szybciej. Jednak różnice są naprawdę „widoczne”, gdy wykonujesz ciężkie zadanie i chcesz wykonywać inne zadania w tym samym czasie. Na przykład, uruchamiasz instalację kilku programów lub kompilujesz jądro lub edytujesz ciężki film i jednocześnie chcesz surfować po Internecie lub oglądać film itp.

  13.   Użyjmy Linuksa powiedział

    Daj mi znać, jeśli odkryjesz, jak zaimplementować łatkę w Arch. Spróbuję uruchomić tę, która działa w Fedorze.
    Przytulić! Paweł.

  14.   Użyjmy Linuksa powiedział

    Wydaje mi się, że zależy to od sposobu, w jaki używasz swojego komputera. Jeśli ledwo korzystasz z Internetu i jakiegoś lekkiego edytora tekstu ... nie poczujesz różnicy. Z drugiej strony, jeśli jesteś podobny do mnie i wykonujesz ciężkie zadania (takie jak konwersja wideo, kompilacja jądra itp.) Podczas przeglądania Internetu lub oglądania filmów, możesz zauważyć różnicę.

  15.   niedzielapv powiedział

    Po wykonaniu wszystkich czynności, kiedy otwieram terminal, zawsze otrzymuję:
    mkdir: nie można utworzyć katalogu „/ dev / cgroup / cpu / user / 1844”: plik lub katalog nie istnieje
    bash: / dev / cgroup / cpu / user / 1844 / jobs: Plik lub katalog nie istnieje
    bash: / dev / cgroup / cpu / user / 1844 / notify_on_release: Plik lub katalog nie istnieje
    domingopv @ pc1: ~ $
    Wszystko działa dobrze, nawet terminal, zrobiłeś coś nie tak?

  16.   Użyjmy Linuksa powiedział

    Hmm ... Naprawdę nie wiem, co to może być. Jednak mam wrażenie, że jest bardzo prawdopodobne, że nie wykonałeś dobrze niektórych kroków, zwłaszcza od piątej. Spróbuj je powtórzyć lub upewnij się, że masz rację. To wszystko, o czym na razie myślę.
    Wielki uścisk! Paweł.

  17.   niedzielapv powiedział

    Ponownie zainstaluj Maverick i ponownie zainstaluj poprawkę, a teraz otrzymuję następujące.
    mkdir: nie można utworzyć katalogu „/ dev / cgroup / cpu / user / 1678”: plik lub katalog nie istnieje
    bash: / dev / cgroup / cpu / user / 1678 / jobs: Plik lub katalog nie istnieje
    bash: / dev / cgroup / cpu / user / 1678 / notify_on_release: Plik lub katalog nie istnieje
    domingopv @ pc1: ~ $

  18.   Użyjmy Linuksa powiedział

    Uyy .. Naprawdę nie wiem, co to może być. U mnie zadziałało idealnie.
    Coś mi mówi, że czyszczenie cgroup nie działa dobrze. Dlatego nalegałem, abyś zobaczył od kroku 5.
    Twoje zdrowie! Paweł.

  19.   nie mówię powiedział

    Mamo moja, imponujące, widzę filmy flash 1080p na pasywnej nvidii 8400, to znaczy źle źle, PERFEKCYJNIE, procesor cały działa, cudowne uffff, to się poprawia, jest znacznie lepiej, mam Ubuntu 10.04 😀 dobrze, filmy są dla mnie dobre hahaha 😀

  20.   Delano powiedział

    Co rc.local? Jest ich kilka, co to jest? Pozdrowienia.

  21.   Użyjmy Linuksa powiedział

    Właśnie napisałem polecenia, które są wymienione w punkcie 4. Nie musisz ich kopiować do pliku, ale uruchamiaj te polecenia.
    Twoje zdrowie! Paweł.

  22.   Wskazówki dotyczące systemu GNU / Linux powiedział

    Jest to słabo wyjaśnione.

    Musisz edytować plik rc.local za pomocą:

    sudo gedit /etc/rc.local

    Musisz wkleić do środka (przed wyjściem 0):

    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

    To jest problem. Te kroki są słabo wyjaśnione.

  23.   Użyjmy Linuksa powiedział

    Masz rację! Wyraźnie mówi, „edytuj plik rc.local”. Brakowało do dodania polecenia zrobienia czegoś takiego (o czym niektórzy mogą nie wiedzieć). Dodam to teraz.
    Dzięki za powiadomienie! Twoje zdrowie! Paweł.

  24.   Espinoza powiedział

    Jaka byłaby procedura w PCLinuxOs?

  25.   Użyjmy Linuksa powiedział

    Prawda jest taka, że ​​nie wiem…
    Jeśli się dowiesz, nie zapomnij podzielić się danymi z resztą!
    Dziękuję bardzo!
    Twoje zdrowie! Paweł.

  26.   gonho powiedział

    Wydaje mi się, czy nie umieściłeś żadnego odniesienia, skąd go masz? Czy możesz mi podać źródło?

    dzięki

  27.   Użyjmy Linuksa powiedział

    Nie ma jednego źródła. Szukałem, jak to zrobić, z różnych źródeł iz własnego doświadczenia. Ogólnie rzecz biorąc, mogę powiedzieć, że źródłem są miliony blogów, które powielały te wiadomości. Wyszukaj „patch 200 linux kernel lines”, a zobaczysz, o czym mówię. Nie pamiętam dokładnie, ale część Ubuntu mogła zostać pobrana z WebUpd8; nie tak dla Fedory.

  28.   Luckys0921 powiedział

    Niedawno jestem użytkownikiem Ubuntu 64 bit i kiedy widzę tę wskazówkę, zaczynam to badać, a obecne jądro, które mam, to 2.6.32-27 zgodnie z postem, ta łatka może być zastosowana tylko do jąder, które są wyższe lub równe do 2.6.36 Moje pytanie brzmi, czy ta zmiana działa tylko dla dystrybucji 32-bitowych, czy w mojej obecnej dystrybucji można zaktualizować jądro do wersji 2.6.36?

    Dzięki za wszystkie informacje w sieci, świetny materiał.

  29.   Użyjmy Linuksa powiedział

    Ta zmiana działa tak samo dla 32 i 64 bitów.
    Twoje zdrowie! Paweł.

  30.   Panie Tuxito powiedział

    na pytanie, a to nie zepsułoby późniejszej aktualizacji?
    Gdyby nie poszło dobrze, co byłoby najgorszego, co mogłoby się wydarzyć?
    (Widzisz, że przejście z Ubuntu 10.04 na 10.10 powoduje awarię wszystkiego)

  31.   jezuslara powiedział

    Pierwszą rzeczą, którą należy wyjaśnić (aby uniknąć nieodpowiedzialnego użycia metody) jest to, że wymaga ona obsługi grup zadań w jądrze Linuksa (cgroups), czyli tylko użytkownicy z Kernelem wyższym niż 2.6.36 mogą stosować tę metodę poprawa.