Якщо коротко, кілька днів тому один із розробників ядра завантажив патч (200 рядків коду), що дозволило значно покращити (майже в 10 разів) продуктивність системи, особливо при роботі з багатозадачністю під час виконання важкого завдання (наприклад, компіляції ядра). Лінус привітав цього розробника за його великий внесок. Однак розробник Red Hat, Lennar Poettering не погодився впровадити це вдосконалення безпосередньо з ядра; йому було краще внести зміни в користувальницький простір (~ / .bashrc). Лінус розсердився і зневажив цього розробника, сказавши йому, що результати говорять самі за себе. Леннар, замість того, щоб відповісти різкими словами, сів і придумав альтернатива (яка не потребує виправлення ядра) і яка займає лише 4 рядки. Зрештою, вони замовкли Лінуса ... |
Примітка: цей метод вимагає підтримки груп завдань у ядрі Linux (cgroups), тобто застосовувати його могли лише користувачі з ядром вище 2.6.36.
Як застосувати патч у Fedora
1. - Відредагуйте файл ~ / .bashrc.
gedit ~ / .bashrc
2. - Вставте такий код в кінець файлу:
if ["$ PS1"]; тоді
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
echo $$> / sys / fs / cgroup / cpu / user / $$ / tasks
fi
3. - Виконайте такі команди:
монтувати -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / user
Як застосувати патч в Ubuntu
В Ubuntu все трохи складніше ...
1. - Відредагуйте файл rc.локальний за допомогою цієї команди:
sudo gedit /etc/rc.local
і вставте перед тим, де написано "вихід 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
2. - Збережіть файл і надайте йому дозволи на виконання:
sudo chmod + x /etc/rc.local
3. - Відредагуйте файл ~ / .bashrc:
gedit ~ / .bashrc
4. - Вставте такий код в кінець файлу:
if ["$ PS1"];
тоді 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:
sudo gedit / usr / local / sbin / cgroup_clean
6. - Вставте такий код в кінець файлу:
#! / Bin / ш
якщо ["$ *"! = "/ користувач"]; тоді
rmdir / dev / cgroup / cpu / $ *
fi
7. - Збережіть файл і надайте йому дозволи на виконання:
sudo chmod + x / usr / local / sbin / cgroup_clean
8. - Перезавантажте систему.
Примітка: якщо ви побачите папку / dev / cgroup /, ви помітите значне покращення управління багатозадачністю.
Я знайшов інструкції для Arch, вони тут: http://pastebin.com/raw.php?i=sHRYRuAN
Зі свого боку, я застосував патч, значного поліпшення я взагалі не помічаю, але якщо ви помічаєте великі зміни при прокрутці веб-сторінок, вони справді вперше змінюються !!! =)
Чудово! Щиро дякую за обмін!
Чи казав я вам, що ми шукаємо людей, які використовують Arch для ведення блогу? Якщо вам цікаво, пишіть нам давайте uselinux@gmail.com
Великі обійми! Павло.
Дякуємо за запрошення, тоді ми продовжимо поштою, тоді 😉
Випадково не буде інструкцій для Archlinux, так? 🙂
Я їх не знайшов. Але щось мені підказує, що це, швидше, більше схоже на Fedora. З іншого боку, слід мати на увазі, що, як кожен збирає Arch, як хоче, можливо, це впливає на процедуру, якої слід дотримуватися ...
Тут я знайшов, як застосовувати їх в Archlinux, він дуже схожий на Fedora: http://pastebin.com/raw.php?i=sHRYRuAN
bash: / dev / cgroup / cpu / user / $ / tasks: Файл або каталог не існує
Я дотримувався цих інструкцій, і він постійно повідомляє мені про цю помилку під час відкриття терміналу AMD64 x, якщо він має щось робити
Я його вже знайшов, будь ласка, Пабло виправте http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html
Що робити в ubuntu - замість того, що ви ставите - це:
sudo gedit / usr / local / sbin / cgroup_clean
і поставте це:
#! / Bin / ш
якщо ["$ *"! = "/ користувач"]; тоді
rmdir / dev / cgroup / cpu / $ *
fi
Готові! Виправлено! Дякую!
Це правда! Дякую за нагадування!
Я щойно додав це роз’яснення на початку допису.
Обійми! Павло.
Зокрема, які переваги я отримаю як користувач та які покращення продуктивності побачу в моїй системі.
Все йде набагато швидше. Однак відмінності насправді «видно», коли ви виконуєте важке завдання і хочете виконувати інші завдання одночасно. Наприклад, ви запускаєте інсталяцію декількох програм, або збираєте ядро або редагуєте важке відео, і одночасно ви хочете переглядати Інтернет або дивитися фільм тощо.
Повідомте мене, якщо ви дізнаєтесь, як реалізувати виправлення в Arch. Я спробував би запустити той, який працює у Fedora.
Обійми! Павло.
Думаю, це залежить від використання комп’ютером. Якщо ви ледве користуєтесь Інтернетом та яким-небудь легким текстовим редактором ... ви не відчуєте різниці. З іншого боку, якщо ви схожі на мене і виконуєте важкі завдання (наприклад, конвертування відео, компіляцію ядра тощо) під час перегляду Інтернету чи перегляду фільмів, ви можете помітити різницю.
Після всіх кроків, коли я відкриваю термінал, я завжди отримую таке:
mkdir: не вдається створити каталог "/ dev / cgroup / cpu / user / 1844": Файл або каталог не існує
bash: / dev / cgroup / cpu / user / 1844 / tasks: Файл або каталог не існує
bash: / dev / cgroup / cpu / user / 1844 / notify_on_release: Файл або каталог не існує
domingopv @ pc1: ~ $
Все працює навіть у терміналі, ви щось зробили неправильно?
Хм ... я справді не знаю, що це може бути. Однак у мене складається враження, що дуже ймовірно, що ви не виконали якісь кроки, особливо з 5-го року. Спробуйте повторити їх або переконатися, що ви їх правильно зрозуміли. Це все, про що я зараз можу думати.
Великі обійми! Павло.
Переінсталюйте maverick і переінсталюйте патч, і тепер я отримую наступне.
mkdir: не вдається створити каталог "/ dev / cgroup / cpu / user / 1678": Файл або каталог не існує
bash: / dev / cgroup / cpu / user / 1678 / tasks: Файл або каталог не існує
bash: / dev / cgroup / cpu / user / 1678 / notify_on_release: Файл або каталог не існує
domingopv @ pc1: ~ $
Юй .. Я справді не знаю, що це може бути. Для мене це спрацювало ідеально.
Щось мені підказує, що очищення cgroup не працює належним чином. Ось чому я наполягав, щоб ви бачили з кроку 5 далі.
На здоров’я! Павло.
Мати моя, вражаюча, я бачу 1080p флеш-відео на пасивній nvidia 8400, я маю на увазі, погано погано, ВДОСНОВНО, процесор все працює, чудовий уфффф, це покращується, це набагато краще, у мене Ubuntu 10.04 😀 добре, відео мені добре 😀
Що rc.local? Є кілька, що це? З повагою.
Я щойно написав команди, перелічені в пункті 4. Вам не потрібно копіювати їх у файл, а запускати ці команди.
На здоров’я! Павло.
Це погано пояснено.
Що вам потрібно зробити, це відредагувати файл rc.local за допомогою:
sudo gedit /etc/rc.local
Ви повинні вставити всередину (перед виходом 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
У цьому проблема. Ці кроки погано пояснені.
Ти правий! У ньому чітко сказано: "відредагуйте файл rc.local". Чого не вистачало для додавання, це команда робити щось таке (про що деякі можуть і не знати). Я додаю це прямо зараз.
Дякуємо за повідомлення! На здоров’я! Павло.
Якою буде процедура в PCLinuxOs?
Правда я не знаю ...
Якщо ви дізнаєтесь, не забудьте поділитися даними з рештою!
Велике спасибі!
На здоров’я! Павло.
Мені здається, чи ви не вказали жодного посилання звідки ви його взяли? Не могли б ви сказати мені джерело?
Грекіас
Єдиного джерела не існує. Я шукав, як це зробити з різних джерел та на власному особистому досвіді. Загалом, я можу сказати вам, що джерелами є мільйони блогів, які відтворювали ці новини. Шукайте "виправити 200 ліній ядра Linux", і ви побачите, про що я говорю. Я точно не пам’ятаю, але частина Ubuntu, можливо, була отримана з WebUpd8; не так для Fedora.
Я користувач не так давно, 64-розрядної версії ubuntu, і коли я бачу цю підказку, я починаю досліджувати, і поточне ядро, яке я маю, становить 2.6.32-27 відповідно до повідомлення, цей патч може застосовуватися лише до ядер, які мають вищий або рівний рівень до 2.6.36 Моє питання: якщо ця зміна працює лише для 32-бітових дистрибутивів, чи в моєму поточному дистрибутиві ядро може бути оновлене до 2.6.36?
Дякуємо за всю інформацію в Інтернеті, чудові матеріали.
Ця зміна працює як для 32, так і для 64 бітів.
На здоров’я! Павло.
на запитання, і це не зіпсує будь-яке подальше оновлення?
Якби це не йшло добре, що було б найгіршим, що могло статися?
(Ви бачите, що тоді просто перехід з Ubuntu 10.04 на 10.10 збиває все)
Перше, що слід пояснити (щоб уникнути безвідповідального використання методу), це те, що він вимагає підтримки груп завдань у ядрі Linux (cgroups), тобто лише користувачі з ядром вище 2.6.36 можуть застосовувати цей метод вдосконалення.