LINUX.ORG.RU

Конфигурирование ядра для desktop


0

0

Здравствуйте!

Давно хотел спросить тех, кто сам занимается сборкой ядер для desktop,
по каким рецептам они конфигурируют и/или патчат ядра для desktop?
Я использовал следующий рецепт:
поставил Slackware 12.2, взял исходники из дистрибутива, без
дополнительных патчей, и поправил конфиг из стандартного ядра
следующим образом:

1) в разделе процессоров:
выбрал свой - Pentium 4
в preemption model выбрал Low Latency Desktop
Timer frequency - 1000 Hz

2) В разделе драйверов выключил ATA/ATAPI/MFM/RLL
чтобы cdrom был sr0. Винчестеры у меня SATA, они и так определяются
как sda, sdb.

3) поправил параметры файловой системы для кодировок и т.д.

Собрал ядро и потом выставил в системе
/usr/bin/echo 0 >/proc/sys/vm/swappiness
/usr/bin/echo 1000 >/proc/sys/vm/vfs_cache_pressure
Эту рекомендацию для desktop-а я видел где-то в инете.

Работает вроде шустро, но бывают иногда какие-то кратковременные лаги
при переключении между приложениями, при изменении размера окна
virtualbox (вирт. машина винда).
До слаки стоял Altlinux 4.1 desktop и там вроде этих лагов не наблюдалось, либо они были не так заметны. Заглянул в ядро Altlinux -
там оно сильно патчаное.
В альте ядро умолчальное, ставил такие же параметры
/usr/bin/echo 0 >/proc/sys/vm/swappiness
/usr/bin/echo 1000 >/proc/sys/vm/vfs_cache_pressure

Вопрос: кто как конфигурит/патчит свои ядра для desktop и какие
в моем рецепте недостатки/ошибки?

Заранее благодарю за советы.


В общем то всё правильно.
Только сомневаюсь, что это особо нужно:
>2) В разделе драйверов выключил ATA/ATAPI/MFM/RLL


>кто как конфигурит/патчит свои ядра для desktop

Так. пару раз ставил realtime патч. bfq планировщик ввода/вывода впилил, чтобы при обращении к харду не так тормозил.
Ещё ставил таймер 2000 Hz.
Можно добавить, что в особом тюнинге ядра проку нет, тут уже писали, производительность особо не возрастёт. Тормоза создаёт не ядро, а жирные проги или работающие с диском. Для десктопа если не конкретного, а для клиентов, то побольше дров сделать модулями, чтобы всё работало.

darkshvein ☆☆
()
Ответ на: комментарий от darkshvein

>в особом тюнинге ядра проку нет, тут уже писали, производительность
>особо не возрастёт.

Но в моем примере на одной и той же машине разница есть между слакой
и Altlinux. Ведь как-то в альте этого добиваются.
Возможно дело и в диске, хотя лаги при переключении
запущенных процессов.
А ссылочками не поможете на bfq?

georgy
() автор топика
Ответ на: комментарий от darkshvein

> На 2.6.30.1 ложится.

Ещё бы оно не ложилось, а вот к сожалению для 31-rc* уже не подходит. :(

Lumi ★★★★★
()
Ответ на: комментарий от darkshvein

Кстати, изменилось ли у Вас что-нибудь в производительности после
накатывания bfq?

У себя ничего пока не трогал и сейчас прилично работает, вроде вообще
не тормозит. Запущена куча приложений: firefox, thunderbird, pidgin,
openoffice, stardict, foxit-reader одновременно с виндой в Virtualbox.
(памяти 4 Гига :) ).

Припомнил, что подтормаживать начинал когда плюс к вышесказанному
еще была запущена винда в vmware. Проверил (запустил vmware) - вроде
так и есть. Опять подтормаживать начал. И еще тормоза наблюдались,
когда я новые проложения открывал, а если работю только с тем, что
уже открыто, но все летает.
Вроде на дисковые тормоза похоже.

Только не хочется последнее ядро ставить. У меня слаковское 2.6.27.7.
Был ли для него патч bfq, или какой-нибудь другой подойдет?
А то на http://feanor.sssup.it/~fabio/linux/bfq/patches/
только на 2.6.29 самое раннее.

georgy
() автор топика
Ответ на: комментарий от georgy

>Кстати, изменилось ли у Вас что-нибудь в производительности после
накатывания bfq?
Да. Теперь система не ждет диск минутами, и не так интенсивно тормозит. При копировании (больших) файлов, если назначить ionice -c3 -pX, то оно практически незаметно. Скорость копирования, конечно падает, но не так сильно.
>Вроде на дисковые тормоза похоже.

А что, бывают тормозa RAM? :-)

>У меня слаковское 2.6.27.7.

Кхм. Попробуйте сначала, те что есть наложить, могут поставиться, а если что там ещё в ветке 'history' лежат старые.

darkshvein ☆☆
()

специально для любителей настройки таймера на 1000 и более hz -

сейчас в ядрах обычно это не используется совсем, а используется tickless вариант

CONFIG_NO_HZ=y

можно конечно и старый вариант включить, но вот если используется новый - хоть сколько вы там hz ставьте , оно все равно не используется

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

>А что, бывают тормозa RAM? :-)

:)))
По моему бывают тормоза процессора, то есть он просто тормозной :).
У меня Pentium 4 3 Ггц и я, было, подумал, что он не справляется, но на
Альте вроде этого не просмартивалось.

>CONFIG_NO_HZ=y

Посмотрел свой конфиг:
# CONFIG_NO_HZ is not set

то есть в моем случае частота=1000 действует?

georgy
() автор топика
Ответ на: комментарий от georgy
Ответ на: комментарий от georgy

># CONFIG_NO_HZ is not set
>то есть в моем случае частота=1000 действует?


да, но не факт что это лучше чем tickless :)


>У меня Pentium 4 3 Ггц


т.е. Prescott ?

а теперь зайдите в arch/x86
и посмотрите Makefile_32.cpu

cflags-$(CONFIG_MPENTIUM4) += -march=i686 $(call tune,pentium4)

т.е. mtune конечно хорошо, но лучше сразу указывать

-march=prescott

Sylvia ★★★★★
()
Ответ на: комментарий от ss85

>расово верная

не факт, сейчас в большинстве дистрибутивов ставят почему-то именно tickless,
возможно хотя бы потому что это экономит на энаргопотреблении процессора,
если процессор не занят , то timer tick происходит тогда, когда это нужно,
в случае же фиксированной частоты - будет 1000 прерываний в секунду

Sylvia ★★★★★
()
Ответ на: комментарий от georgy

я думаю что все, тоже попробую, уж больно все его нахваливают
тем более его можно сделать модулем

/tmp/linux-2.6.30.1 :$patch -p1 < bfq-00-prepare-io-context.patch
patching file block/blk-ioc.c
patching file block/cfq-iosched.c
patching file fs/ioprio.c
patching file include/linux/iocontext.h
/tmp/linux-2.6.30.1 :$patch -p1 < bfq-01-introduce-bfq.patch
patching file block/bfq-cgroup.c
patching file block/bfq-ioc.c
patching file block/bfq-iosched.c
patching file block/bfq-sched.c
patching file block/bfq.h
/tmp/linux-2.6.30.1 :$patch -p1 < bfq-02-update-the-build-system.patch
patching file block/Kconfig.iosched
patching file block/Makefile
patching file include/linux/cgroup_subsys.h
/tmp/linux-2.6.30.1 :$


*
* Restart config...
*
*
* IO Schedulers
*
Anticipatory I/O scheduler (IOSCHED_AS) [Y/n/m/?] y
Deadline I/O scheduler (IOSCHED_DEADLINE) [Y/n/m/?] y
CFQ I/O scheduler (IOSCHED_CFQ) [Y/n/m/?] y
BFQ I/O scheduler (IOSCHED_BFQ) [N/m/y/?] (NEW) m
Default I/O scheduler
1. Anticipatory (DEFAULT_AS)
2. Deadline (DEFAULT_DEADLINE)
> 3. CFQ (DEFAULT_CFQ)

4. No-op (DEFAULT_NOOP)
choice[1-4?]: 3
#
# configuration written to .config
#

Sylvia ★★★★★
()
Ответ на: комментарий от georgy

> А какой из трех надо накатывать:

Все три по очереди.

Lumi ★★★★★
()
Ответ на: комментарий от Sylvia

>тем более его можно сделать модулем

А как потом этот модуль использовать? Ведь по умолчанию стоит cfq.
Просто modprobe bfq и в действующим становится bfq?

georgy
() автор топика
Ответ на: комментарий от georgy

echo "SCHEDNAME" > /sys/block/sda/queue/scheduler

для /dev/sda

SCHEDNAME соответственно то что выберете

список того что поддерживается - соответственно cat этого же файла,
то что активно будет в []



например
~ :$cat /sys/block/sda/queue/scheduler
noop anticipatory deadline cfq [bfq]

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

PS: если вкомпилить не как модуль, то можно его же задать по умолчанию
и будет доступно также hierarchical tree bfq, что это такое не совсем поняла

Sylvia ★★★★★
()
Ответ на: комментарий от n_play

Итог:
взял ядро 2.6.29.6 из тех соображений, что там багфикс больше чем в
2.6.30.1 и меньше вероятность некомпиляции модулей, так как 2.6.30.1
намного новее.
пропатчил bfq, прописал prescott, сделал настройки как и раньше плюс
включил tickless. Скомпилил, поставил, выполнил
/usr/bin/echo "bfq" > /sys/block/sda/queue/scheduler
/usr/bin/echo "bfq" > /sys/block/sdb/queue/scheduler
проверил что используется bfq
и был приятно удивлен - всяческие тормоза вообще исчезли как класс,
все просто летает. :) Куча приложений плюс две виртуальные винды на
virtualbox и vmware одновременно.
Огромное всем спасибо за помощь и ценнейшую информацию.

georgy
() автор топика
Ответ на: комментарий от georgy

И что характерно, скорость стала заметно быстрее стоявшего до этого Альта.

georgy
() автор топика
Ответ на: комментарий от georgy

> взял ядро 2.6.29.6 из тех соображений, что там багфикс больше чем в
2.6.30.1 и меньше вероятность некомпиляции модулей, так как 2.6.30.1
намного новее.

А теперь всё-таки попробуй ещё и 2.6.30.1. Будешь удивлён ещё раз.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

Что, оно еще быстрее?!
По моему быстрее уже некуда :).
И так все отскакивает.

А последняя vmware-workstation (модули ядра) на нем компилится?

georgy
() автор топика
Ответ на: комментарий от georgy

Действительно удивлен еще раз :). Оказывается еще есть куда расти.
Да, неизбалован я был скоростью.

georgy
() автор топика
Ответ на: комментарий от georgy

Silvy, а откуда у Вас такие познания про тонкие настройки ядра?
Это какие-то  статьи есть или Вы самостоятельно ядро исследовали?

В связи с этим - вопрос: а нужны ли какие-то подобные настройки для
других процессоров, в частности есть еще 2 машины с Centriono Duo (ноутбук двухядерный) и Pentium 3 1100 Coppermine?

georgy
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.