Linux Format Апрель 2008 Разгоняем Linux Александр Толстой



Скачать 59.92 Kb.

Дата24.11.2016
Размер59.92 Kb.
Просмотров111
Скачиваний0

44
Linux Format Апрель 2008
Разгоняем Linux
Александр Толстой избороздил просторы Интернета, форумы и списки рассылки, заглянул в древние манускрипты и покрытые пылью фолианты – и все для того, чтобы подготовить новую подборку советов по ускорению вашей системы.
И снова о скорости
Д
ва с половиной года назад в LXF72 вышла статья про 72-ю скорость, посвященная разгону. Наши английские коллеги предложили тогда неплохой набор советов и дельных мето- дик по оптимизации системы. Но время идет, и погоня за скоростью продолжается! За прошедшее время ядро Linux стало более гибким и оптимизированным, а рабочие среды – более функциональными. Ах, да, еще вышла Vista, скорость которой вызывает у бывалых линуксои- дов лишь хитрый прищур и улыбку...
В этой статье будут рассмотрены способы разгона вашего дистри- бутива с целью выжимания из него максимальной скорости. Автор попытается выйти за рамки популярных рекомендаций и дать нетри- виальные советы или, во всяком случае, осветить приемы, которые до сих пор недостаточно хорошо известны или упорядочены.
Советы сгруппированы по разделам ОС, которым они посвящены.
Некоторые советы полностью закрывают тот или иной раздел; другие объединены по общему признаку. Практически все советы примени- мы к любому дистрибутиву Linux, хотя иногда кое-какие детали будут отличаться. Итак, поехали!

Апрель 2008 Linux Format
45
Разгоняем Linux
ЧАСТЬ 1 Оптимизация винчестера
Здесь необходимо понимать, что и когда происходит во время старта системы. Последовательность примерно такова:
1
В соответствии с записью в загрузчике GRUB/LILO, загружается ядро
(kernel) и образ необходимых для загрузки драйверов (initrd).
2
Далее процесс /sbin/init запускает службы, настроенные для опреде- ленных уровней запуска. Последний уровень перед загрузкой графиче- ской системы – runlevel 5.
3
Запускается менеджер дисплея (обычно gdm/kdm), предлагающий ввести имя пользователя и пароль (если не включена функция автомати- ческого входа в систему).
4
После того как вы авторизуетесь, будет загружена рабочая среда
(обычно KDE или GNOME). При автоматическом входе в систему среда загружается сразу после запуска gdm/kdm, которых вы, соответственно, не видите.
Обычно все советы по уменьшению времени загрузки сводятся к отключению ненужных служб, но мы пойдем дальше и постараемся ускорить загрузку на самом первом этапе. Для этого необходимо пере- собрать ядро без образа initramfs, который и отвечает за содержание файла initrd в директории /boot. Чтобы ОС смогла загрузиться без файла
initrd, необходимо, чтобы в ядро был встроен драйвер файловой систе- мы. Все остальные драйверы могут присутствовать в виде отдельных модулей. Итак, откройте окно конфигурации ядра (make xconfig или
make menuconfig), найдите параметр
Initial RAM filesystem and RAM disk
(initramfs/initrd) support и снимите с него галочку. Теперь в разделе
File systems убедитесь, что драйвер корневой файловой системы встроен в ядро (
y
), а не собирается в виде модуля (
m
). В качестве дополнительных мер по оптимизации ядра не забудьте сделать следующее:
В разделе
Processor type and feautures выбрать свой тип процессо- ра, повышенную частоту таймера (1000 Hz) и уменьшение задержек –
Preemptible kernel
(если у вас настольный компьютер). Также вы можете попробовать бестактовый режим –
Tickless kernel
, который очень поло- жительно влияет на многозадачность.
Отключить явно ненужные модули, типа
Dallas 1-Wire bus и другие устройства, которых у вас точно нет (например, Bluetooth или Firewire).
Этим вы сэкономите время при сборке ядра.
Обязательно отключите
Kernel debugging в разделе
Kernel hacking
, так вы сэкономите и на размере итогового ядра.
Теперь можно собрать ядро привычными командами: make all, make
modules_install и make install. В большинстве современных дистрибути- вов автоматически будет создана запись в файле загрузчика. Вы заме- тите, что она лишена записи об initrd. Теперь ядро будет загружаться и работать заметно быстрее!
ЧАСТЬ 2 Оптимизация загрузки Linux
В Linux присутствует очень полезная команда hdparm, которая, судя по названию, должна отвечать за параметры жесткого диска. Так оно и есть: с помощью hdparm вы можете узнать текущие рабочие параметры, а также поменять часть из них. Один из параметров, влияющий на про- изводительность – readahead. Он устанавливает объем предварительно резервируемых винчестером данных (в килобайтах) при операциях чте- ния/записи. Это оказывает большое влияние на скорость копирования больших файлов и вообще больших объемов данных. То есть, если вы копируете содержимое DVD на жесткий диск, то для него лучше поста- вить высокое значение readahead. Делается это так:
/sbin/hdparm -a 1024 /dev/sda
Эта команда установит предварительное резервирование 1 МБ дан- ных для устройства /dev/sda. В тоже время высокое значение этого параметра противоречит идее многозадачности, когда жесткий диск используется многими процессами одновременно, и снижает общую производительность системы. Поиграйте с этим параметром – для мно- гих случаев оптимальным будет значение 32 или около того.
Hdparm позволяет также настраивать и другие функции: например, отключать питание диска (полезно при его бездействии), проводить тестирование производительности (hdparm -Tt), устанавливать скорость оптического привода (hdparm -E) и многое другое – полный список спо- собов выводится командой hdparam без параметров.
Когда вы добьетесь нужного результата, не забудьте поместить вашу команду в один из скриптов в /etc/rc.d/, например rc.local или любой дру- гой, который запускается при старте системы. Этим вы избавитесь от необ- ходимости применять параметры вручную при каждой перезагрузке.
ЧАСТЬ 3 Оптимизация дисковой системы
Корневой раздел, на который у вас установлен Linux, скорее всего, содер- жит файловую систему ext3/ReiserFS/XFS. Сведения о монтируемых при загрузке разделах содержатся в файле /etc/fstab, где обязательно присут- ствует корневой раздел (/). Обратите внимание на пункт defaults
, обозна- чающий стандартный набор параметров монтирования. Однако мы можем указать их и вручную, поставив после defaults запятую и перечислив ряд настроек, которые сделают файловую систему быстрее. Например, для
ReiserFS: acl,user_xattr,noatime,nodiratime,notail,barrier=flush
Ext3: acl,user_xattr,noatime,nodiratime,barrier=1
XFS: defaults,noatime,nodiratime,logbufs=8,logbsize=32k,biosize=16,allo csize=512m,barrier
Вот что все это означает:
user_xattr
– расширенные атрибуты файлов (используются для индексирования).
barrier
– команда очистки кэша.
noatime и nodiratime
– отключение записи времени последнего досту- па (для файлов/директорий).
allocsize
– размер заранее резервируемой области на диске. Высокое значение помогает избежать фрагментации.
biosize
– размер I/O-блоков по умолчанию.
logbufs
– количество встроенных буферов для ведения журнала.
logbsize
– размер буфера.
Последние 3 параметра увеличивают скорость чтения/записи.
Включаем режим Writeback
В большинстве дистрибутивов при создании раздела ext3 исполь- зуется тип журналирования Ordered (упорядоченный), т.к. он обеспечи- вает наилучшее соотношение скорости и безопасности. Однако самым быстрым режимом является Writeback (журналирование после записи): он осуществляет наименьшее журналирование.
Для его включения рекомендуется загрузиться в другой дистрибутив или с LiveCD, так как необходимо, чтобы ваш обычной корневой раздел
(в нашем примере это /dev/sda1) был размонтирован :
tune2fs -O has_journal -o journal_data_writeback /dev/sda1
Включение индексирования директорий
Индексирование директорий увеличивает скорость чтения и записи
«в» и «из» каталогов вашего жесткого диска. Это полностью безопасный и рекомендованный режим.
Сначала нужно указать режим журналирования:
tune2fs -O dir_index /dev/sda1
Затем – включить индексацию существующих директорий:
e2fsck -D /dev/sda1
Выполнение команды e2fsck может занять немного времени – это зависит от размера вашего раздела и количества директорий в нем.

Разгоняем Linux
После того, как загрузка Linux дошла до 5-го уровня запуска (runlevel
5), обычно запускается графический X-сервер, менеджер экрана и рабочая среда. Для начала оптимизируем запуск X-сервера. Во-первых, если у вас видеокарта NVIDIA или ATI, убедитесь в том, что использу- ется проприетарный драйвер (nvidia или fglrx соответственно), а в /etc/
X11/xorg.conf установлены renderaccel и другие повышающие быстро- действие опции. Во-вторых, откройте файл /var/log/Xorg.0.log (если рабочий стол запущен на дисплее 0) и проанализируйте отчет на пред- мет ошибок. Так можно выявить, например, неверные пути к шриф- там – если в xorg.conf указаны несуществующие пути
Fontpath
Теперь перейдем собственно к ускорению KDE и GNOME.
Советы пользователям GNOME
1
Иногда приложения в GNOME запускаются излишне медленно, как будто установлена искусственная задержка перед их выполнени- ем. Зачастую виновником этого является неправильно настроенная обработка имени хоста и домена. Добавьте в файл /etc/hosts строку:
127.0.0.1 localhost.localdomain localhost ИМЯ_ВАШЕГО_ХОСТА
Имя хоста обычно отображается в приглашении терминала; также его можно узнать командой /bin/hostname.
2
Если вы готовы пожертвовать красотой ради скорости, поставьте тему Simple для GTK2 и тему оформления Atlanta – для Metacity. Это самые «легкие» и быстрые темы, что есть в любой поставке GNOME.
3
Если при проигрывании фильма вы перетаскиваете окно плейера и видите синюю каемку, то это поправимо, если отключить вывод гра- фики на XV. Дайте команду gstreamer-properties и на вкладке Видео выберите «Система X Window (без расширения XV)».
4
Повысить скорость загрузки GNOME можно, отключив ненуж- ные службы из автозагрузки. Это можно сделать в окне управления сеансами (команда gnome-session-properties). Также стоит отметить, что GNOME запускается чуть быстрее при использовании «родного» менеджера экрана gdm.
5
Инструкция gtk-menu-popup-delay = «0»
включенная в файл .gtkrc-2.0, устранит задержки появления меню, что особенно полезно для медленных компьютеров.
Советы пользователям KDE (3.x)
1
Повысить скорость загрузки KDE можно в Центре управления, отключив заставку, звуки и ненужные службы. Если вы не пользуетесь службами KDE вообще (например, вам не нужны уведомления о под- ключаемых устройствах), то проблему можно решить более радикаль- но: откройте файл скрипта PREFIX/bin/startkde (префиксом обычно выступает /usr или /opt/kde3), и замените все его содержание на одну строку:
kdesktop && kicker && kwin && dcopserver
Это минимальный набор, необходимый для работы с KDE, и он запустится за считанные секунды.
2
Используйте prelink. Этот инструмент оптимизирует связи между исполняемыми файлами и необходимыми им библиотеками *.so.
Эффективность prelink сильно зависит от языка, на котором напи- сано приложение. По этой причине prelink заметно разгоняет KDE- приложения (большая часть которых написана на С++) и почти никак не влияет на GNOME-приложения (C). Prelink легко установить, так как из сторонних зависимостей он нуждается только в библиотеке libelf.
3
При использовании KDE в школе или любом другом обществен- ном учреждении может пригодиться предварительная загрузка при- ложений во время простаивания компьютеров с запущенным при- глашением kdm. Файл настроек этого менеджера экрана обычно находится по адресу PREFIX/share/config/kdm/kdmrc, и в нем указан другой файлpreloader, который и содержит список запускаемых менеджером команд. Например, если KDE установлен в /opt/kde3, то интересующий нас файл по умолчанию будет находиться по адресу
/opt/kde3/bin/preloadkde. Для более быстрого запуска туда можно поместить команду индексирования директорий KDE, например:
exec find /etc/opt/kde3 /home/user/.kde /opt/kde3/share/applications \
/opt/kde3/share/applnk /opt/kde3/share/mimelnk /opt/kde3/share/services
\ /opt/kde3/share/servicetypes /opt/kde3/share/config \
/opt/kde3/share/icons /opt/kde3/
а также команду kdeinit которая осуществляет предварительную загрузку модулей KDE.
Теперь после введения имени пользователя и пароля KDE загрузится молниеносно!
4
Если вы не используете KDE-приложения для просмотра филь- мов и прослушивания музыки, то можете смело отключать звуковой сервер Artsd. Этот параметр называется «Включить звуковую систе- му», и он находится в соответствующем разделе Центра управления.
Скажем, если вы используете Audacious и Mplayer, который могут выводить звук напрямую на звуковое устройство ALSA, то Artsd вам точно не нужен. Для управления громкостью в таком случае подойдут
alsamixer и alsamixer-gui.
ЧАСТЬ 4 Разгон рабочего стола
Знаете ли вы, что...
Если у вас есть два или более винчестеров, то вы можете дополнительно увеличить скорость работы дистрибутива, переместив директорию /usr на второй накопитель. Для этого не нужно переустанавливать дистрибутив – просто скопируйте файлы и внесите нужные изменения в /etc/fstab. Тем, у кого мало оперативной памяти, можно также посоветовать сделать то же самое со swap-разделом. Делается это так: сначала выясните, на каком разделе у вас в данный момент находится подкачка, просмотрев файл
/etc/fstab. Затем от лица суперпользователя дайте команду swapoff /имя/раздела для отключения действующей подкачки. Теперь вам нужно создать swap-раздел на втором винчестере (если его там раньше не было).
Это несложно, и делается стандартной командой fdisk, либо через графический инструмент в дистрибутивах Mandriva/SUSE, Fedora и многих других. После этого подключите новый раздел в систему:
mkswap /новый/раздел и выполните swapon /новый/раздел
Не забудьте поправить имя раздела в файле /etc/fstab. Готово!
Службы, запускаемые вместе с системой на определенных уровнях runlevel, можно дополнительно разогнать, организовав их параллель- ный запуск. Другими словами, некоторые службы не будут дожидать- ся своего успешного старта для передачи эстафеты, а будут сразу же
«пропускать» следующих в очереди. Для этого откройте в каталоге
/etc/rc.d/ какой-либо файл службы и найдите в нем строку типа
*) startup $i start ;;
Измените ее на
*) startup $i start & ;;
и сохранитесь. Будьте осторожны, так как между службами существу- ют зависимости, и этот трюк не всегда срабатывает.
При наличии большого объема ОЗУ можно принудительно снизить активность системной подкачки и тем самым повысить быстродействие дисковой подсистемы при работе с несколькими приложениями одно- временно. Отредактируйте файл /etc/sysctl.conf и добавьте в его конец строку:
vm.swappiness=10
На десерт
46
Linux Format Апрель 2008

Апрель 2008 Linux Format
47
Разгоняем Linux
(вместо 10 может быть любое значение от 0 до 100), после чего сохра- нитесь. Этот параметр можно применить и мгновенно, дав команду
/sbin/sysctl -w vm.swappiness=10
При совсем низких значениях система может вести себя неста- бильно, так что можете поэкспериментировать с этой настройкой.
При компиляции программ из исходных текстов используйте тер- минал xterm. Он не так удобен как Konsole или Gnome-terminal (и даже eterm), но потребляет всего 1 МБ ОЗУ и почти не отнимает ресурсов.
Разница в скорости этих консолей особенно видна, если вы, к при- меру, решите пересобрать ядро на старом компьютере – с xterm вы сэкономите лишние полчаса. Быстрее может быть только текстовый режим (/sbin/init 3), но это уже другая история.
Надеемся, что теперь вы будете довольны скоростью работы вашего дистрибутива. А если вы знаете еще какие-нибудь дельные советы – присылайте их нам: на
letters@linuxformat.ru
или на
www.
linuxforum.ru
LXF


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал