Несколько советов по ускорению

Выбираем файловую систему

Как-то я собрал в одну кучу на шаре CDS всю свою музыку. Но радость моя была недолгой, т.к. эта папка из-под KDE открывалась несколько секунд. В отчаянии я думал разбить файлы на директории по первым буквам алфавита. В то время я использовал ext3. Каково же было мое изумление, когда я перенес файлы на диск с файловой системой reiserfs. Папка стала открываться буквально мгновенно.

Но на сервере reiserfs мне не понравился. Я пытался добиться от него активного использования оперативной памяти под кэш, но он упорно её не использовал. xfs напротив прекрасно поедает память. Разве что с мелкими файлами неуклюж.

Не так давно установщик Calculate Linux стал использовать по умолчанию файловую систему ext4. Пожалуй в настоящее время это лучший выбор. Она работает быстрее чем reiserfs, её можно использовать для больших разделов. Неплохо подходит для SSD дисков.

Планировщик задач

Совсем недавно в установщик cl-install был добавлен выбор планировщика (sheduler). В общем-то используемый по умолчанию CFQ подойдет для большинства задач. Однако помните, если вы используете SSD винт, или устанавливаете систему на аппаратный рейд, планировщик вам не нужен.

Сбрасываем статистику preload

Взяв на днях компьютер с CLD 11.0 на ремонт, я был немного удивлен некоторыми затуплениями после загрузки. Виновником был preload, активно подгружающий модули. Вещь в общем-то полезная, но порой может показаться что чрезмерно усидчивой. Угомонить его аппетит можно выключив службу из автозагрузки, либо удалив его статистику, что на мой взгляд лучше.
В первом случае нужно выполнить:

rc-update del preload

Во втором:

/etc/init.d/preload stop
rm /var/lib/preload/preload.state
/etc/init.d/preload start

В задачи preload входит анализ активности пользователя со сбором статистики запущенных приложений. В дальнейшем демон держит загруженными необходимые модули для быстрого старта программ. Актуально для десктопа но не для сервера.

Связываем библиотеки

После нескольких больших обновлений неплохо запустить утилиту prelink, которая связывает подгружаемые библиотеки непосредственно с исполняемыми файлами программ. Это может заметно сократить время запуска программ. Для связывания выполните:

prelink -afmR

Чистим зависимости

Фрагментация в линуксе нам не грозит, но подчистить диск от лишних файлов было бы неплохо. Мантейнеры портежей заботятся о пользователе, предоставляя большой выбор в построении зависимостей. Мы в свою очередь стараемся найти золотую середину при проектировании Calculate Linux. Не удивляйтесь, если у вас вдруг отвалятся некоторые зависимости. Чтобы их удалить, выполните:

emerge -ac

Обновляем конфигурационные файлы

Помните, что любое обновление программ несет за собой обновление настроек. Наиболее важные из них - скрипты запуска демонов, расположенные в директории /etc/init.d. Устаревший скрипт может запускать программы с неправильными флагами. Отсюда могут возникнуть проблемы в работе некоторых служб.

В Calculate Linux обновления конфигурационных файлов выполняется практически безболезненно, т.к. утилиты Calculate настраивают пакеты по мере установки. Шансов, что новый конфигурационный файл затрет предыдущее состояние мал. Для своих настроек используйте шаблоны утилит, чтобы Вам это не грозило вовсе.

Для обновления конфигурационных файлов выполните:

dispatch-conf


P.S. Разумеется это далеко не все рецепты. Напишите свои примеры в комментариях, делитесь наработками.

Совсем недавно в установщик cl-install был добавлен выбор планировщика (sheduler). В общем-то используемый по умолчанию CFS подойдет для большинства задач.

Не cfs, а наверное CFQ имелся ввиду

исправил

Приветствую !
вопрос, использование Btrfs в вашем дистре является уже стабильным ?
и если использовать под корневой раздел скорость повысится по сравнению с ext ???

Дань моде, не более того. Не вижу смысла менять уже стабильную ext4.

В большинстве случаев preload не нужен, если мы не используем 2-3 прилодения постоянно ) IMHO скорости от него особой не наблюдаю

Я использую регулярно chromium, konsole, kmail, kopete, konversation, периодически запускаю libreoffice.

После ввода команды prelink -afmR
prelink: /usr/lib/libreoffice/program/soffice.bin: Could not parse `/usr/lib/libreoffice/program/soffice.bin: error while loading shared libraries: /usr/lib/libreoffice/program/soffice.bin: nonzero padding in e_ident’
prelink: /usr/bin/ffmpeg: Cannot prelink against non-PIC shared library /usr/lib/libavdevice.so.52
prelink: /usr/bin/sox: Cannot prelink against non-PIC shared library /usr/lib/libavformat.so.52
prelink: /usr/bin/ffprobe: Cannot prelink against non-PIC shared library /usr/lib/libavdevice.so.52
prelink: /usr/bin/ffplay: Cannot prelink against non-PIC shared library /usr/lib/libavdevice.so.52
prelink: /usr/bin/c3pldrv: Cannot prelink against non-PIC shared library /usr/lib/libcaepcm.so.1
prelink: /usr/i686-pc-linux-gnu/gcc-bin/4.5.3/i686-pc-linux-gnu-c** is no longer hardlink to /usr/i686-pc-linux-gnu/gcc-bin/4.5.3/i686-pc-linux-gnu-g**
prelink: /usr/bin/captdrv: Cannot prelink against non-PIC shared library /usr/lib/libcaepcm.so.1
prelink: /usr/bin/ffmpegthumbnailer: Cannot prelink against non-PIC shared library /usr/lib/libavutil.so.50

Что это значит и как это можно победить?

Не все библиотеки линкуются. Просто не обращайте внимание.

Это ещё актуально? :

http://www.calculate-linux.ru/main/ru/optimization_of_system

В частности это:

emerge -e system
emerge -e world

nilfs2 разве не лучше чем ext4 ?

Мне кажется пересборка мира и переход на небинарный профиль - слишком радикальный путь.

Установка на nilfs2 - 8m56.471s, на ext4 - 8m33.542s. Не плохо, но не понятно как в остальном себя покажет и как со стабильностью.

Меня заинтересовал один момент…
Как я понял, layman -S , eix-sync , emerge -uD world , emerge -ca , dispatch-conf можно делать (и даже рекомендуется вроде как) каждый день…

А что относительно prelink -fmRa ? Как часто его можно делать?

Вообще prelink сидит в ежедневном кроне /etc/cron.daily/prelink, поэтому можно ручками после обновления кед, либо довериться крону.

у меня гном… Но на всяк случай буду делать. Когда делаю ручками, оно чего-то изменяет…

Гена Wolf писал(а):

у меня гном… Но на всяк случай буду делать. Когда делаю ручками, оно чего-то изменяет…

Prelink с ключами -a и -f перелинковывает все снуля, как в первый раз )

когда запускать prelink -fmRa лучше? До emerge -ca , или после dispatch-conf

Гена Wolf писал(а):

когда запускать prelink -fmRa лучше? До emerge -ca , или после dispatch-conf

В самом конце, когда все новые бинарники уже в системе.

Я делаю примерно так, хотя возможны варианты… по обстоятельствам…

layman -S # не везде Calculate, чтоб на Gentoo не забыть
eix-sync
emerge -1vuDN --with-bdeps=y --binpkg-respect-use=y @system
emerge -1vuDN --with-bdeps=y --binpkg-respect-use=y @world
etc-update
perl-cleaner --reallyall # опционально, если обновился perl
python-updater # опционально, если обновилась мажорная версия python
revdep-rebuild
emerge -avc
eclean-pkg
eclean-dist
prelink -avfRm

спасибо

у меня emerge -1vuDN --with-bdeps=y --binpkg-respect-use=y world не запустился. Сделал вместо него emerge -uD world. Этот запустился нормально. И после него (emerge -uD world) этот emerge -1vuDN --with-bdeps=y --binpkg-respect-use=yworld тоже запустился нормально… Прикол какой-то

Гена Wolf писал(а):

у меня emerge -1vuDN --with-bdeps=y --binpkg-respect-use=y world не запустился. Сделал вместо него emerge -uD world. Этот запустился нормально. И после него (emerge -uD world) этот emerge -1vuDN --with-bdeps=y --binpkg-respect-use=yworld тоже запустился нормально… Прикол какой-то

А что emerge сказал при первой попытке запустить, если помните?

З.Ы. Возможно разница в том, что я предварительно только скачиваю все пакеты:
emerge -1vuDNf --with-bdeps=y --binpkg-respect-use=y world А уж убедившись, что все необходиомое для обновления залито, собственно, обновляюсь: emerge -1vuDN --with-bdeps=y --binpkg-respect-use=yworld