Короче говоря, несколько дней назад один из разработчиков ядра загрузил патч (200 строк кода), что позволило значительно (почти в 10 раз) повысить производительность системы, особенно при работе с многозадачностью при выполнении тяжелой задачи (например, компиляции ядра). Линус поздравил этого разработчика с его большим вкладом. Однако разработчик Red Hat, Леннар Поеттеринг не согласился реализовать это усовершенствование непосредственно из ядра; ему лучше было внести изменения в пользовательское пространство (~ / .bashrc). Линус рассердился и отругал этого разработчика, сказав ему, что результаты говорят сами за себя. Леннар вместо того, чтобы ответить резкими словами, сел альтернатива (которая не требует исправления ядра) и занимает всего 4 строки. В конце концов, они заткнули Линуса ... |
Примечание: этот метод требует поддержки групп задач в ядре Linux (cgroups), то есть применять его могли только пользователи с ядром выше 2.6.36.
Как применить патч в Fedora
1.- Отредактируйте файл ~ / .bashrc.
gedit ~ / .bashrc
2.- Вставьте следующий код в конец файла:
если ["$ PS1"]; тогда
mkdir -m 0700 / sys / fs / cgroup / cpu / user / $$
эхо $$> / sys / fs / cgroup / cpu / user / $$ / задачи
fi
3.- Выполните следующие команды:
монтировать -t cgroup cgroup / sys / fs / cgroup / cpu -o cpu
mkdir -m 0777 / sys / fs / cgroup / cpu / пользователь
Как применить патч в Ubuntu
В Ubuntu все немного сложнее ...
1.- Отредактируйте файл rc.local с помощью этой команды:
sudo gedit /etc/rc.local
и вставьте перед тем, где написано "exit 0", следующее:
mkdir -p / dev / cgroup / cpu
монтировать -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / пользователь
эхо "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
2.- Сохраните файл и дайте ему права на выполнение:
sudo chmod + x /etc/rc.local
3.- Отредактируйте файл ~ / .bashrc:
gedit ~ / .bashrc
4.- Вставьте следующий код в конец файла:
если ["$ PS1"];
затем mkdir -m 0700 / dev / cgroup / cpu / user / $$
эхо $$> / 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 для ведения блога? Если интересно, пишите на давайте использоватьlinux@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, я имею в виду, плохо, плохо, ИДЕАЛЬНО, процессор все работает, замечательно uffff, это улучшается, это намного лучше, у меня Ubuntu 10.04 😀 хорошо, видео хороши для меня, хахаха 😀
Какой rc.local? Их несколько, что это такое? С уважением.
Я только что написал команды, перечисленные в пункте 4. Вам не нужно копировать их в файл, но нужно запускать эти команды.
Ура! Павел.
Это плохо объяснено.
Что вам нужно сделать, так это отредактировать файл rc.local с помощью:
sudo gedit /etc/rc.local
Вы должны вставить внутрь (до выхода 0):
mkdir -p / dev / cgroup / cpu
монтировать -t cgroup cgroup / dev / cgroup / cpu -o cpu
mkdir -m 0777 / dev / cgroup / cpu / пользователь
эхо "/ usr / local / sbin / cgroup_clean"> / dev / cgroup / cpu / release_agent
Это проблема. Эти шаги плохо объяснены.
Ты прав! Там ясно сказано: «отредактируйте файл rc.local». Чего не хватало для добавления, так это команды для выполнения такой вещи (о которой некоторые могут не знать). Добавляю прямо сейчас.
Спасибо за уведомление! Ура! Павел.
Какова будет процедура в PCLinuxOs?
По правде говоря, я не знаю ...
Если узнаете, не забудьте поделиться данными с остальными!
Большое спасибо!
Ура! Павел.
Мне кажется или вы не ставили ни одной ссылки откуда взяли? Не могли бы вы сказать мне источник?
спасибо
Нет единого источника. Я искал, как это сделать, из разных источников и из личного опыта. В общем, я могу сказать вам, что источники - это миллионы блогов, в которых воспроизводятся эти новости. Найдите «patch 200 linux kernel lines», и вы поймете, о чем я говорю. Я точно не помню, но часть Ubuntu могла быть получена из WebUpd8; не так, как в Fedora.
Я не так давно пользователь Ubuntu 64 бит, и когда я вижу этот совет, я начинаю исследовать, и текущее ядро, которое у меня есть, 2.6.32-27, согласно сообщению, этот патч может применяться только к ядрам, которые выше или равны до 2.6.36. У меня вопрос, работает ли это изменение только для 32-битных дистрибутивов или в моем текущем дистрибутиве можно обновить ядро до 2.6.36?
Спасибо за всю информацию в сети, отличный материал.
Это изменение работает как для 32-, так и для 64-разрядной версии.
Ура! Павел.
на вопрос, и это не повлияет на последующие обновления?
Если все пойдет не так, что может случиться в худшем случае?
(Вы видите, что переход с Ubuntu 10.04 на 10.10 приводит к сбою всего)
Первое, что следует уточнить (чтобы избежать безответственного использования метода), это то, что он требует поддержки групп задач в ядре Linux (cgroups), то есть только пользователи с ядром выше 2.6.36 могут применять этот метод улучшение.