Журнал LinuxFormat - перейти на главную

LXF72:Советы по ускорению

Материал из Linuxformat
Перейти к: навигация, поиск
Советы по ускорению

Содержание

72-я скорость

Ваш дистрибутив работает очень медленно? Ищите способы дополнительно увеличить его подвижность? Майк Саундерс (Mike Saunders) потратил последние шесть лет на тонкую настройку производительности дистрибутивов Linux и все ещё жаждет скорости… С дополнительными заметками ему помогли Грэхем Моррисон (Graham Morrison) и Марк Бэйн (Mark Bain).

Вопрос: что может быть лучше, чем быстрый ПК Ответ: по-настоящему быстрый ПК. К сожалению, нехватка денег означает, что мы не можем постоянно выкидывать их на покупку более мощного оборудования, чтобы получать всё более быструю систему. Но, к счастью, программное обеспечение тоже играет не менее важную роль. В случае с Linux, модульная структура ядра, стартовых сценариев, графического интерфейса пользователя и приложений означает, что они довольно хорошо подстраиваются для прироста в скорости.

Опираясь на эту особенность, мы объединили вместе 72 наиболее полезных совета по ускорению вашей системы, от быстрых подстроек рабочего стола до более «продвинутых» оптимизаций использования памяти. «Узкие» места и низкую эффективность можно найти во многих компонентах современной настольной ОС, так что наши подсказки охватят и процесс загрузки, и приложения рабочего стола, и серверы, и многое другое. Используете ли вы Linux как домашнюю ОС, для программирования или в качестве сервера, вы обнаружите, что многие из этих подсказок поднимут производительность вашего компьютера. Если вы молча страдаете от медлительности вашей машины или, наоборот, громко проклинаете долгую загрузку на форумах по Linux, уделите немного времени, чтобы попробовать некоторые из этих решений, и вы сможете увидеть значительную разницу.

Мы исследовали и протестировали эти советы на различных дистрибутивах, рассмотрели способы, как это можно сделать более эффективно, при этом одни были более трудоемкие, чем другие. Поэтому мы присвоили им уровень сложности, так что вы можете оценить, насколько доступны они на первый взгляд. Мы также уделили внимание необходимому для такой оптимизации ПО. Вы найдете на следующих страницах много существенных подсказок, которые стоит попробовать, так что без дальнейших отступлений откроем бутылку пива и — вперед!

ПРЕДУПРЕЖДЕНИЕ!

Мы тщательно протестировали все эти советы. Большая часть из них относится к программному обеспечению, а не к оборудованию, но мы не берем на себя никакой ответственности за потери данных или повреждения в результате их использования. Pедакция Linux Format не несет ответственности, если вы сломаете свой компьютер!


ЗАГРУЗКА. Сократите задержку загрузчика

ПО: LILO/GRUB • Сложность: Легко

Когда вы включаете свой компьютер, после экрана BIOS обычно есть задержка, когда загрузчик ожидает от вас выбора OС, которая должна быть загружена. Если у вас, например, двойная загрузка, то вы можете выбирать между Linux и Windows, или любыми другими операционными системами, которые у вас установлены. обычно период ожидания (прежде чем будет выбран вариант по умолчанию) составляет 10 или 20 секунд или около того, но вы можете уменьшить его, сделав автоматическую загрузку значительно быстрее.

Если вы используете загрузчик GRUB, отредактируйте menu.lst или grub.conf, которые обычно располагаются в директориях /boot/grub или /etc/grub и уменьшите значение параметра timeout, например, до трех секунд. Для LILO откройте файл /etc/lilo.conf и измените строку timeout=, не забыв запустить /sbin/lilo с правами пользователя root после редактирования. При следующей загрузке пауза будет значительно меньше.

ЗАГРУЗКА. Отключите ненужные службы

ПО: — • Сложность: Средне

Между загрузкой ядра и финальным приглашением командной строки запускаются различные сервисы (службы), количество которых зависит от конкретного дистрибутива. Как правило, вы можете видеть соответствующие этим сервисам строки в процессе загрузки, начинающиеся со Starting и далее — OK или Done. Hекоторые сервисы, такие как детектор оборудования hotplug, лучше оставить; другие могут быть удалены, что приведет к значительному снижению времени загрузки. например, если вам не нужен сервер электронной почты, вы можете предотвратить загрузку Sendmail/Postfix при включении компьютера.

Как этого достичь, зависит от стартовых сценариев вашего дистрибутива — они могут быть совершенно разными. Уточните в документации к вашему дистрибутиву, как найти их место расположения. на большинстве систем, впрочем, вы можете зайти в каталог /etc/init.d и сделать неисполняемой любую программу, которую вы не хотите запускать, используя команду chmod -x (или через свойства файла в вашем файловом менеджере). Mandriva (Control Center), SUSE (YaST) и другие дистрибутивы включают графические приложения для остановки сервисов. загляните внутрь стартовых сценариев.

(На самом деле универсальным способом включения/выключения служб при загрузке является команда chkconfig выполняемая в консоли от имени суперпользователя. С ее синтаксисом легко разобраться набрав man chkconfig)

Ник считает…

«Всегда есть небольшой риск отключить что-то, что вам действительно нужно. Если вы сомневаетесь, оставляйте сервис включенным как есть, и изучайте его. Вы всегда сможете отключить его позже.»

ЗАГРУЗКА. Уменьшите задержки sleep (1)

ПО: — • Сложность: Сложно

Если вы покопаетесь в ваших стартовых сценариях, которые обычно размещаются в /etc/init.d в большинстве дистрибутивов, вы можете обнаружить многочисленные ссылки на команду sleep. Команда sleep приостанавливает загрузку на заданное количество секунд, и во многих дистрибутивах ее широко используют в стартовых сценариях, когда выполняется тестирование оборудования или система ожидает загрузки чего-либо. Естественно, это влияет на другие загружаемые программы, так что стоит выяснить, когда они применяются. Пример для систем, основанных на Debian:

# grep -r sleep /etc/init.d

Эта команда покажет, какие скрипты содержат паузы sleep, и выведет в секундах, насколько продолжительны эти задержки (они, как правило, составляют несколько секунд). Вы можете поэкспериментировать, удаляя некоторые из них (или уменьшая вдвое время задержки), для более быстрой загрузки, но будьте осторожны — если что- то ждет, пока завершится тестирование оборудования, может возникнуть путаница. Тем не менее, при некотором терпении вы можете «срезать» пять или десять секунд от общего времени загрузки системы.

ЗАГРУЗКА. Загружайтесь в текстовый режим

ПО: NXDM/GDM/KDM • Сложность: Средне

В процессе загрузки запуск графического менеджера (обычно GDM или KDM) может отнять некоторое время. Если вы пользуетесь преимущественно текстовыми приложениями или запускаете сервер с несколькими графическими программами, вы можете устранить эту задержку, начав работу непосредственно в текстовом режиме. Если вы захотите позже зайти в графический режим, можете вручную выполнить команду gdm или kdm (менеджеры дисплеев) или старую добрую startx.

Файл /etc/inittab определяет, будете ли вы загружаться в графический интерфейс. В нем определяются так называемые «уровни исполнения» (runlevels) вашей системы, то есть какие программы запускать в стандартных ситуациях (уровень 0 останавливает систему, уровень 1 соответствует однопользовательскому режиму). Oткройте этот файл и найдите в нем такую строку: id:5:initdefault: затем измените номер в ней. Эти номера зависят от дистрибутивов, но в большинстве случаев вам нужно указать 3 для загрузки в текстовый режим, и 5 — в графический. Прочтите до конца /etc/inittab, чтобы получить дополнительную информацию.

ЗАГРУЗКА. Уменьшите время ожидания DHCP

ПО: DHCP • Сложность: Легко

Большинство современных ПК и ноутбуков имеют встроенную сетевую карту, и если Linux поддерживает ее, то очень вероятно, что он попытается активировать ее во время загрузки. Если вы назначите ей статический IP-адрес, она будет инициализирована при загрузке очень быстро. Hо если вы получаете IP с помощью DHCP, это может привести к задержке. Это особенно верно для ноутбуков, когда вы часто загружаетесь без подключенного сетевого кабеля, и задержка DHCP при загрузке может достигать 30 секунд.

Чтобы сократить его, найдите и откройте файл dhclient.conf (обычно в каталоге /etc или /etc/dhcp3). Там есть строка timeout, где вы сможете определить число секунд ожидания ответа. Если ваш DHCP-сервер отвечает достаточно быстро, измените значение таймаута на что-нибудь в диапазоне от пяти до десяти. При следующей загрузке без подключения система не будет ждать так долго, как до этого.

ЗАГРУЗКА. Быстрая загрузка с помощью XDM

ПО: XDM/GDM/KDM • Сложность: Средне
Как стать суперпользователем

Для применения многих советов, касающихся загрузки, оборудования и серверов, вам потребуется войти в систему как root (суперпользователь). откройте окно терминала и введите su (а лучше su -), и после ввода пароля root вы получите возможность изменять системные файлы.

Если вы запускаете Gnome или KDE, то, как правило, вы входите в систему через их графические менеджеры (GDM или KDM соответственно). Oднако, если вы запускаете легкий менеджер окон или просто хотите, чтобы экран входа в систему появлялся быстрее, вы можете выбрать проверенный временем XDM — простой графический менеджер, поставляемый с системой X11. Oн довольно непривлекателен в своем стандартном обличии, но зато загружается гораздо быстрее, чем его тяжеловесные собратья из Gnome или KDE.

Чтобы переключиться в XDM, вам нужно отредактировать стартовый конфигурационный файл системы X-Window (который может сильно отличаться в разных дистрибутивах). Поищите файл /etc/X11/default-display-manager, или /etc/sysconfig/desktop, или /etc/sysconfig/displaymanager, измените kdm или gdm на xdm, и перезагрузитесь. Теперь графический менеджер будет появляться намного быстрее.

ЗАГРУЗКА. Oтключите графику при загрузке

ПО: RHGB и др. графические загрузчики • Сложность: Средне

Некоторые основные дистрибутивы «наряжаются» в модные графические экраны во время загрузки, наполненные анимацией и прочими «рюшечками». (они отображаются после загрузки ядра, но до появления приглашения входа в систему). Это может добавить несколько секунд к загрузке — больше всего для Red Hat, Fedora и CentOS - так что, если вы не хотите этого, то стоит их заблокировать. Как и для большинства советов, касающихся стартовых скриптов, существует много различий от дистрибутива к дистрибутиву. В Red Hat и Fedora удалите rhgb из строк ядра в /boot/grub/grub.conf. В SUSE установите splash=0 и vga=normal в конфигурационном файле загрузчика. В Mandriva вы можете запретить графику с помощью Control Center, который удалит строку splashimage в /boot/grub/grub.conf.

ЗАГРУЗКА. Загружайтесь молниеносно

ПО: InitNG • Сложность: Сложно

Многие дистрибутивы запускают свои службы последовательно, что может «съедать» время. Почему бы не загрузить группу сервисов, пока один из них ожидает чего-либо InitNG загружает сервисы параллельно; то есть, он не позволяет одному сервису задерживать другие, и время загрузки может сократиться на 50 % и даже больше.

Hедостатком InitNG является то, что он пока еще не слишком хорошо работает с некоторыми дистрибутивами, и все еще активно развивается. Тем не менее, ситуация быстро улучшается, так что если вы хотите попробовать его (и готовы «поколдовать» в командной строке).

ЗАГРУЗКА. Перезагружайтесь быстро

ПО: Suspend • Сложность: Сложно

Многие ноутбуки поддерживают спящий режим, в котором содержимое оперативной памяти перед выключением сохраняется на жестком диске. Этот образ готов для последующего запуска без исполнения всей процедуры загрузки. Запущенные программы сохраняются в том состоянии, в каком окажутся при следующем включении компьютера. Программный пакет Suspend — это «заплатка» к ядру, предоставляющая эту возможность для любого компьютера. загрузить это расширение к ядру можно с http://www.suspend2.net вместе со сценарием поддержки спящего режима. Затем вы должны будете пересобрать и установить ваше ядро, после чего сможете «усыплять» и восстанавливать сеанс работы в любой момент, пропуская полный процесс загрузки.

РАБOЧИЙ СТОЛ. Измените менеджер окон в Gnome

ПО: Metacity • Сложность: Легко

Хотя оконный менеджер Metacity, используемый по умолчанию в Gnome, считается «легковесным», есть различные «тонкие» альтернативы, которые не требуют столько памяти и меньше нагружают процессор. один из лучших — Openbox (http://icculus.org/openbox ), который вы сможете найти на нашем диске. Имея великолепные возможности переназначения клавиш и настраиваемое поведение мыши в крохотном пакете, Openbox полнофункционален и очень прост в использовании.

Чтобы заменить Metacity, скомпилируйте и установите Openbox. Затем в Gnome запустите openbox --replace в окне запуска программ (Run, вызывается по Alt+F2). Это переключит оконный менеджер. чтобы сделать изменение постоянным, выберите Save Session при выходе. Попробуйте также еще более легкую замену — Oroborus (http://www.oroborus.org).

РАБOЧИЙ СТОЛ. Запускайте приложения KDE быстрее в других оконных менеджерах

ПО: KDE • Сложность: Легко

Oдин популярный вариант ускорения — запуск «легкого» оконного менеджера, под которым работают ваши любимые приложения. Oднако, запуская множество KDE-программ, скажем, под Fluxbox, вы заметите, что запуск затягивается. Дело в том, что каждый раз, запускаясь вне своего «родного» окружения приложение KDE подгружает множество библиотек и процессов, необходимых для его работы.

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


Пол считает…

«Когда вы запускаете kdeinit, он загружает все фоновые сервисы KDE, так что вы можете запросто запустить KDE! Или (кхе-кхе) Gnome…»

РАБOЧИЙ СТОЛ. Увеличьте производительность системы X11 при работе в сети

ПО: X11, lbxproxy • Сложность: Легко

Если вы запустите систему X Window по сети Ethernet, вы не получите высокой производительности. Впрочем, через коммутируемые и прочие медленные соединения работать еще менее приятно, и зачастую настолько медленно, что их практически невозможно использовать. Вот действительно быстрое решение: Low Bandwidth X (LBX) Proxy. Программам на вашем компьютере не нужно знать о расширении LBX, но они подключаются к этому прокси-серверу, который выполнит оптимизацию работы X-протокола. Это совершенно «гладкое» решение.

lbxproxy поставляется со многими вариантами X.org или предоставляется как отдельное расширение. Установите его и почитайте справочное руководство (man lbxproxy) для получения дополнительной информации о его работе. Также хорошая идея просмотреть имеющиеся настройки на предмет того, какие параметры оптимизации и методы сжатия можно отключить, если они вызовут проблемы с тем или иным приложением.

Мифы об экономии времени

Миф: Стоит компилировать все под свой процессор.

Факт: Небольшое число ключевых компонентов системы, таких как ядро, glibc и другие системные библиотеки, могут извлечь пользу от оптимизации под конкретный процессор. Oднако повторная сборка таких приложений, как OpenOffice.org или X-Chat, по большей части бесполезна – вы получаете незначительное увеличение скорости загрузки, но эти приложения тратят много времени, ожидая пользовательский ввод, так что выигрыш незначителен. большинство программ для рабочего стола не продемонстрирует ощутимых преимуществ.

РАБOЧИЙ СТОЛ. Подумайте о FVWM

ПО: FVWM • Сложность: Средняя

KDE и Gnome предоставляют превосходные рабочие столы и дают вам все, что вы только можете захотеть. Тем не менее, их загрузка отнимает драгоценное время, а сами они расходуют очень много оперативной памяти. Если у вас старый ПК (или новый, который вы хотите заставить работать быстрее), тогда переключение в «легкий» оконный менеджер сократит расходование памяти, и даже снизит время, требуемое для входа в систему. Если вы воспользуетесь FVWM, вы также найдете его неправдоподобно простым в настройке, при том, что он предоставит вам все необходимое. Смотрите http://www.fvwm.org.

РАБOЧИЙ СТОЛ. Ускорьте запуск приложения до 50 %

ПО: prelink • Сложность: Сложно

Oдной из проблем приложений является то, что они зависят от другого запущенного ПO. Когда приложение обращается к некой библиотеке, специальные символы перемещаются из библиотеки в область памяти этого приложения. К сожалению, этот процесс копирования (называемый динамической компоновкой) может отнимать довольно много времени.

Hа большинстве систем библиотеки редко изменяются, и когда программа запускается, процесс передачи этих символов каждый раз один и тот же. Специальный инструмент, носящий имя prelink, использует это повторение, чтобы выполнить компоновку один раз и сохранить результат этого процесса в исполняемый файл. Этот метод может значительно улучшить производительность, в частности, программ, разрабатываемых на C++. некоторые программы KDE запускаются на 50 % быстрее. prelink есть на нашем диске, а полное руководство можно найти по адресу http://www.crast.us/james/articles/prelink.php.

РАБOЧИЙ СТОЛ. Запускайте приложения Gnome за пределами рабочего стола быстрее

ПО: Gnome, различные оконные менеджеры • Сложность: Легко

Этот пункт использует похожие принципы, что и совет № 11. Если вы запускаете «легкий» оконный менеджер, такой как Window Maker, приложения Gnome потребуют больше времени для старта, поскольку они подгружают солидный объем поддерживающей Gnome инфраструктуры (такой, как печально известный gconfd). но есть хороший способ смешать некоторые первоклассные программы Gnome со стройным оконным менеджером: просто запустите маленькое приложение Gnome в начале сеанса работы — gedit или gcalctool, например, — и сверните его, не закрывая. Другие приложения Gnome будут запускаться заметно быстрее, и даже если gedit/gcalctool будет помещен в область подкачки, это по-прежнему будет быстрее, чем загрузка с нуля.

РАБOЧИЙ СТОЛ. Настройте визуальные эффекты KDE

ПО: KDE, kcontrol • Сложность: Легко

KDE включает обширный набор косметических средств, многие из которых можно заблокировать для значительного увеличения производительности. Ваш первый пункт назначения — KDE Control Center, и панель установок Style в разделе Appearance & Themes. Переключившись на вкладку Effects, вы можете отключить анимацию или прозрачность меню наряду с другими эффектами, «напрягающими» процессор. блокировка графической заставки даст некоторое увеличение скорости загрузки, в то время как избавление от сглаженных (anti-aliasing) шрифтов и сложного изображения в качестве фона также поможет в плане снижения нагрузки на процессор и память. Заодно проверьте опцию Translucency (Прозрачность) в разделе Window Behavior (находится в списке установок Desktop) в KDE Control Centre.

РАБOЧИЙ СТОЛ. Bыбирайте дистрибутивы старой школы

ПО: — • Сложность: Средне

Если у вас старый компьютер (такой, как Pentium I), постарайтесь не прельщаться этими шикарными, «раскрученными» новыми дистрибутивами, которые рассматриваются в последнем выпуске журнала Linux Format. Они выглядят привлекательно, и вы можете попробовать установить их, но вы обнаружите, что ваш ПК станет практически неработоспособным. Hет, вам нужно смотреть на вашу коллекцию старых выпусков. Hайдите в ней Slackware 10.0. Выудите из ящика комода копию SUSE 7.1. Да, вы конечно можете установить новейшую версию, но, откровенно говоря, у вас нет для этого требуемой памяти или мощности процессора. Другой ответ, конечно, — пойти в магазин и купить новый компьютер. Но действительно ли это более простой путь?

РАБOЧИЙ СТОЛ. Используйте мышиные «жесты» при работе в KDE

ПО: KDE • Сложность: Легко

«Жест» — это просто движение, сделанное мышью, когда нажата определенная ее клавиша. он может быть достаточно простым, например, перемещение мыши слева направо. Вы можете также создавать свои собственные, более сложные жесты, например, круг или зубец пилы. Жесты используются в основном для переходов между страницами в web-браузере, но с KDE вы можете перемещаться по вашей файловой системе или управлять определенными программами, используя Konqueror.

Жестами можно заменить любую клавиатурную команду. Oни создаются и управляются из KDE Control Center в модуле, обозначенном как KHotkeys. Сперва нужно включить их на вкладке General Settings, затем создать ваши собственные жесты в списке My Actions в главном окне (жесты по умолчанию никогда, кажется, не включены).

РАБOЧИЙ СТОЛ. Cделайте Nautilus быстрее

ПО: Nautilus • Сложность: Легко

Nautilus, файловый менеджер Gnome, сидел на строгой «диете» последние несколько лет, превратившись из зыбкой массы кода в респектабельную, слегка требовательную к ресурсам программу. но вы все еще можете ускорить его работу, изменив несколько настроек в диалоге Preferences (располагается в меню Edit). Hа вкладке Preview установите значение Never для всех параметров — окна обозревателя файлов будут не столь красивы, но зато Nautilus не будет пытаться прочитать каждый файл для отображения его уменьшенной копии. По умолчанию, Nautilus не делает этого для сетевых файлов, но вы заметите эффект и на ваших локальных файлах.

ПРИЛОЖЕНИЯ. Настройте производительность системы подкачки Gimp

ПО: Gimp • Сложность: Легко

Gimp использует свою собственную мини-систему для подкачки — другими словами, он помещает содержимое памяти на жесткий диск, когда к нему нет обращений некоторое время или наблюдается нехватка ресурсов. Hастройка Tile Cache определяет, сколько памяти следует использовать, прежде чем начнется временное сохранение на диск, и обычно устанавливается как 64 Мб по умолчанию. Перейдите в File > Preferences > Environment для изменения этого значения. Если вы часто редактируете большие файлы без запуска большого числа других приложений в это же самое время, установите этот параметр примерно как половину вашей оперативной памяти для простого, но эффективного увеличения скорости работы.

ПРИЛОЖЕНИЯ. Bыполняйте предварительную загрузку Konqueror

ПО: Konqueror • Сложность: Легко

Файлы KDE и web-браузер могут быть предварительно загружены в фоновом режиме, так что каждый новый экземпляр Konqueror загружается почти мгновенно. Эта тактика позаимствована у Microsoft Windows, и она весьма эффективна, поскольку пользователи загружают Konqueror во время работы много раз. Hужная настройка находится в Konqueror на странице Performance, доступной из окна Configuration. Вы можете выбрать число экземпляров, которые хотите загружать предварительно, и отдельный экземпляр, который должен быть всегда доступен. Значение по умолчанию — три, что является типичным выбором, но это зависит от вашей тактики работы. Вы можете увеличить или уменьшить это число, но помните, что чем оно больше, тем меньше свободной памяти остается для сетевых файлов; также это оказывает влияние и на локальную работу.

ПРИЛОЖЕНИЯ. Запускайте OpenOffice.org быстрее

ПО: OpenOffice.org • Сложность: Легко

Удивительно мощный сам по себе, OpenOffice.org все еще загружается непомерно долго. Некоторые усилия были приложены, чтобы повысить скорость процесса загрузки в версии 2.0, но без каких-либо заметных результатов. Приятно, однако, что пара проектов предоставляет быстрое решение этой проблемы, удерживая компоненты ядра OpenOffice.org постоянно в памяти. Так что, когда вы запускаете Writer или Calc, большинство из офисного пакета уже загружено в память, и окна открываются за две секунды вместо 20. Это не идеальное решение, но оно значительно улучшает производительность. Доступно два инструмента для быстрого запуска, оба можно найти на нашем диске: для Gnome, http://ooqstart.sourceforge.net ; и для KDE, http://segfaultskde.berlios.de/index .

МиФы об экономии времени

Миф: Многие дистрибутивы собираются специально для старинных 386-х ПК.

Факт: Эта идея основана на двух фактах:

  1. Большинство пакетов RPM и Deb имеют цифры «386» в конце,
  2. Oни не собираются с флагом -march компилятора GCC.

В действительности, большинство дистрибутивов собирают пакеты, используя набор инструкций 80386 для более широкой совместимости с процессорами, но при этом оптимизируются для более современных чипов (флаг -mcpu). Это не столь неэффективно, как кажется на первый взгляд.

ПРИЛОЖЕНИЯ. Работайте быстрее с Firefox

ПО: Mozilla Firefox • Сложность: Средне

Firefox быстр, но если вы используете широкополосное подключение, вы можете сделать его еще быстрее. Xитрость заключается в том, чтобы увеличить число запросов, которые могут быть выполнены одновременно. Это эквивалентно работе многопроцессорной системы, и означает, что браузер может загружать что-то другое, пока ожидает ответа на предыдущие запросы. Чтобы использовать эту особенность, введите about:config в поле адреса Firefox; вы должны получить длинный список параметров. Чтобы изменить значение параметра, выполните двойной щелчок по строке с ним. network.http.pipelining и network.http.proxy.pipelining требуется установить в True, и выставить значение network.http.pipelining.maxrequests (величина от 20 до 30 работает достаточно хорошо).

ГРЭХЭМ СЧИТАЕТ…

«Остерегайтесь того, что некоторые web-серверы не поддерживают конвейерную обработку. Если вы получаете ошибки, отключите эту настройку и вновь включите позже.»

ПРИЛОЖЕНИЯ. Переключитесь на IMAP

ПО: почтовые клиенты • Сложность: Средне

Протокол POP популярен уже много лет, и именно его люди используют для загрузки своей почты с сервера. Многие поставщики интернет-услуг теперь предлагают альтернативу в виде IMAP. IMAP имеет ряд преимуществ перед POP — он не загружает почту локально, что делает весь процесс очень, очень быстрым, и это также означает, что вы можете получать доступ к своим письмам с любого подключенного к интернет компьютера.

Как Evolution, так и KMail умеют работать с папками IMAP, и если ваш провайдер поддерживает этот протокол, то это просто вопрос смены сервера. Если вы подписаны на большое число списков рассылки, использование IMAP убережет вас не только от закачки всех этих сообщений, но также от перегрузки процессора во время сортировки почты.

ПРИЛОЖЕНИЯ. Устраните «зависания» браузера

ПО: все web-браузеры • Сложность: Легко

Время от времени вы посещаете web-страницу, и кажется, что она будет загружаться вечно, или просто останавливается и никогда не завершает свою загрузку. Проблема часто возникает потому, что web-страница содержит картинку, кнопку или рекламу с другого сервера, до которого ваш браузер не может быстро добраться.

Вы можете «закоротить» этот процесс, так что никогда не войдете в контакт с проблемными внешними сайтами (то есть обслуживающими эти изображения и рекламу). Если ваш браузер зависает в состоянии «Looking up <имя сайта>» или «Waiting for <имя сайта>», и этот сайт является внешним по отношению к тому, который вы посещаете, откройте ваш файл /etc/hosts и добавьте в него строку, которая определит проблемный web-сайт так, что он будет указывать на IP-адрес вашего компьютера (localhost):

127.0.0.1 www.someadvertisementsite.com

Теперь основной сайт должен загружаться быстро — когда ваш браузер попытается получить доступ к рекламе с внешнего сайта, он ничего не получит и двинется дальше.

ПРИЛОЖЕНИЯ. Придайте Metacity дополнительную скорость

ПО: Metacity • Сложность: Легко

По умолчанию Metacity (оконный менеджер Gnome) включает довольно безобразную анимацию при минимизации окна вместе с несколькими другими графическими эффектами, которые можно отключить для повышения скорости. Вы можете сделать это с помощью gconf-editor — обычно его можно найти в меню Applications в разделе System Tools, под названием Configuration Editor. Пройдите в Apps > Metacity > General и поставьте «галочку» Reduced_resources.

Искаженная анимация при сворачивании исчезнет, так же как и прозрачность при изменении размера и перемещении (хорошая экономия процессорных ресурсов на старых компьютерах). Чтобы вернуться к прежнему поведению, просто снимите установленный флажок в gconf-editor — изменения вступят в силу немедленно.

ПРИЛОЖЕНИЯ. Измените приоритеты ваших процессов

ПО: все приложения • Сложность: Средне

Иногда кажется несправедливым, что одна программа эксплуатирует процессор излишне интенсивно, особенно если это что-то такое, что вы хотели бы запустить «тихо», в фоновом режиме, пока вы делаете другую работу. Есть способ изменить приоритеты процессов, который может значительно повысить скорость ваших часто используемых программ: nice. Запустив nice -n <число> <программа> в командной оболочке, вы можете задать указанной программе приоритет; число должно лежать в диапазоне от −20 (наивысший) до 19 (низший). Только root может запускать программы с отрицательным (наивысшим) приоритетом. Аналогично, вы можете изменить приоритет, запустив программу renice. Смотрите man nice и man renice для получения дополнительной информации, а также top, чтобы увидеть текущие приоритеты процессов.

ПРИЛОЖЕНИЯ. Cэкономьте время поиска в Firefox и Konqueror

ПО: Mozilla Firefox, Konqueror • Сложность: Легко

Вы можете сэкономить значительно времени, используя функции быстрого поиска в этих браузерах. быстрый поиск производится в том же поле, которое вы используете для ввода адреса сайта. В Konqueror, например, ввод «gg:linux format» вызовет поиск в Google информации о вашем любимом журнале. Если вы замените gg на ggi, вы будете вместо этого искать в Google Images. Другие интересные префиксы для Konqueror включают dict для поиска в электронном словаре Merriam-Webster, thes — для поиска тезаурусов, wp — для поиска на страницах Wikipedia. Вы можете добавить свое собственное направление поиска в окне конфигурации. В Firefox это работает аналогично, с тем исключением, что он использует слегка другой синтаксис. чтобы выполнить поиск в Google, просто введите «g linux format» в строке адреса.

Ключевое слово или буква, которые вы используете для поиска, можно изменить, щелкнув правой кнопкой мыши на закладке, соответствующей сайту и выбрав Properties.

ПРИЛОЖЕНИЯ. Cоздайте привязку клавиш в Gnome

ПО: gconf-editor • Сложность: Средне

Вы можете создавать горячие клавиши, чтобы запускать ваши любимые приложения из Gnome без блуждания по меню. Вызовите gconf-editor (обычно располагается в разделе System Tools меню Application), и пройдите в Apps > Metacity > Global_keybindings. Вместе с клавишами по умолчанию для оконных операций там есть несколько пронумерованных элементов run_command. Добавьте вашу привязку к одной из них, включив keybinding_commands в расположенном слева дереве и введя нужную команду (соответствующую номеру) справа. Вы можете, например, назначить для комбинации Ctrl+Alt+F вызов браузера Firefox.

ПРИЛОЖЕНИЯ. Подключайтесь к сети мгновенно

ПО: ifplugd • Сложность: Средне

ifplugd (есть на нашем диске) — это служба, которая наблюдает за вашим соединением Ethernet, проверяя, работает оно или отключено. Подключите кабель к сети, и ifplugd настроит интерфейс, возможно с помощью DHCP (включается отдельно). Oтключите кабель, и ifplugd заблокирует интерфейс. Это превосходная утилита для ноутбуков и рабочих станций, которые часто меняют свои сетевые подключения.

Утилита ifplugd просто проверяет ваш сетевой интерфейс(ы) на предмет наличия «пульса» соединения, сообщающего о работоспособности сетевого подключения. Когда «пульс» появляется, ifplugd активирует («поднимает») интерфейс и настраивает его для работы. Когда «пульс» пропадает (вы отключили кабель), ifplugd переводит интерфейс в состояние «down».

Смотрите документацию в исходных кодах или на сайте http://0pointer.de/lennart/projects/ifplugd для получения детальной информации по использованию программы.

ПРИЛОЖЕНИЯ. Ускорьте загрузку OpenOffice.org

ПО: OpenOffice.org • Сложность: Легко

Если совет № 22 вам не подходит, есть другой способ сократить тревожно долгую загрузку OpenOffice.org. Вызовите одну из программ (например, Writer), откройте меню Tools и выберите Options (внизу). В меню OpenOffice.org есть раздел Memory. В Graphics Cache измените параметры Use For OpenOffice.org до значения 30 Мб и Memory Per Object до 2.0 Мб. Последующие вызовы должны стать заметно быстрее — мнение пользователей различается, но многие находят этот способ крайне эффективным. Примените этот подход совместно с советом № 22, чтобы сделать скорость загрузки действительно приемлемой.

ПРИЛОЖЕНИЯ. Cделайте прорисовку в Firefox быстрее

ПО: Mozilla Firefox • Сложность: Легко

Oбычно Firefox выдерживает небольшую паузу, когда загружается страница, прежде чем она начнет отображаться на экране. Это делается, чтобы гарантировать загрузку большинства структурных компонентов, в противном случае экран будет дергаться и видоизменяться по мере подгрузки данных, создавая довольно неприятные эффекты. С другой стороны, это отнимает некоторое время, и вы можете ускорить загрузку, настроив соответствующий параметр. В строке адреса введите about:config. Hам нужно создать новый параметр, щелкнув правой кнопкой мыши на списке, выбрав New и Integer и введя «nglayout.initialpaint.delay» в качестве имени. Также потребуется задать значение «0». Теперь страницы будут прорисовываться немного быстрее.

ПРИЛОЖЕНИЯ. Придайте темп Eclipse

ПО: Eclipse • Сложность: Легко

Есть множество способов, которыми вы можете улучшить производительность IDE Eclipse. Hа старых компьютерах это будет очень эффективным решением – временами это животное достигает здоровенных размеров. Вы можете дать JVM больше памяти для работы (идеально, если ничего больше не будете запускать), используя командную строку Java. Попробуйте включить параметры -Xms96m -Xmx256m, чтобы определить минимум и максимум доступной памяти как 96 и 256 Мб соответственно. Блокировка опций Automatic Code Folding и Automatic Code Insight также может дать вашему компьютеру повышение «октанового числа» – войдите в окно Preferences из меню Window, выберите Java > Editor, затем снимите флажок с Enable Auto Activation везде на вкладке Folding.

БАЗЫ ДАННЫХ. Настройте разделяемые буферы PostgreSQL

ПО: PostgreSQL, Konqueror • Сложность: Легко

Pазделяемые буферы (shared buffers) – это блоки памяти, используемые для хранения результатов, пока ядро может формировать ответ и управлять данными. По умолчанию, этот параметр совсем небольшой и может быть увеличен для получения лучшей производительности – но если он слишком высок, это может дать противоположный эффект. Oптимальное значение зависит от вашей конфигурации: 4 Мб (512 разделяемых буферов подойдет для компьютера разработчика; от 16 до 32 Мб (от 2048 до 4096) хорошо работает на компьютере с объемом оперативной памяти от 256 до 512 Мб, использующем набор данных среднего размера; для систем высокого класса (1 Гб памяти и более) лучше установить что-то между 64 и 256 Мб (от 8192 до 32768 буферов).

БАЗЫ ДАННЫХ. Избегайте в MySQL-операторов lower и upper

ПО: MySQL • Сложность: Легко
Мифы об экономии времени

Миф: Скорость и стабильность не взаимосвязаны.

Факт: некоторые оптимизации GCC, особенно CFLAGS, могут создавать склонный к сбоям код. Страница руководства к GCC разъясняет, какие опции безопасны, а какие производят нестабильный двоичный код. Как могут наблюдать некоторые пользователи Gentoo, когда компилируется вся система с использованием предельных параметров оптимизации, многие программы сильно противятся слишком усердным настройкам. Флаг -fomit-frame-pointer может привести некоторые приложения к катастрофическим сбоям. Hаиболее безопасно включить флаги -O2 -march=<chip> (или, возможно, -O3). Это даст некоторый выигрыш в скорости без опасных экспериментов с оптимизацией.

При работе с MySQL избегайте использования операторов lower и upper в команде select – они замедляют обработку запроса и совершенно не нужны. Oператор select в MySQL не чувствителен к регистру символов: «select * from customers where surname=’jones’ возвратит точно такой же результат, что и «select * from customers where surname=’JONES’. Удивительно, но upper(surname) = ‘JONES’ трактуется точно так же, как и lower(surname) = ‘JONES’. Также старайтесь избегать использования шаблона (*) в операторе select (например, select * from mytable). Это кажется очень удобным, но запрос будет выполняться намного медленнее и создавать дополнительный сетевой трафик. Вместо этого указывайте только те поля, которые вам действительно нужны, например: select email from customers where surname=’jones’.

БАЗЫ ДАННЫХ. Ускоренные запросы с индексами

ПО: большинство баз данных • Сложность: Средне

Hе забывайте добавлять индексы к таблицам в ваших базах данных. Правильно созданный индекс может дать заметную разницу во времени между запросами к базе данных, отнимая доли секунды вместо десятков минут. Выберите поля, которые, как ожидается, будут запрашиваться. Hапример, для таблицы клиентов для запросов имени и фамилии наиболее эффективно будет создание следующего индекса: create index ind_cust_name on customer(surname, firstname), конеч- но, с учетом реальных имен ваших полей и таблицы. Вам следует также принимать во внимание любые поля, которые вы используете в операторах join, поскольку замечательные сами по себе таблицы могут быть крайне медленными «в паре».

Ник считает…

«Оптимизация базы данных – не самая интересная деятельность, но она в состоянии заметно увеличить скорость их работы.»

БАЗЫ ДАННЫХ. Заблокируйте fsync для повышения производительности диска

ПО: PostgreSQL • Сложность: Легко

В большинстве установок PostgreSQL опция fsync активирована, то есть сервер записывает каждую операцию непосредственно на диск. Это помогает поддерживать целостность базы данных в случае краха OС или ошибок оборудования, но это также замедляет работу. Oтключение fsync оставит операции записи на диск на совести операционной системы, которая кэширует данные и упорядочивает запись наиболее эффективным способом, обеспечивая тем самым большой скачок производительности. Если ваше оборудование или источник питания достаточно надежны, вы можете отключить fsync в конфигурационном файле PostgreSQL. Oсторожно выполняйте этот шаг, если ваш сервер часто отказывает или ваш источник питания непредсказуем, а вы не имеете ИБП!

БАЗЫ ДАННЫХ. Выбирайте правильный тип таблиц

ПО: MySQL • Сложность: Сложно

MySQL предлагает различные форматы таблиц для хранения данных, так что очень важно выбрать среди них наилучший для вашей частной задачи. По умолчанию в большинстве случаев используется MyISAM, предлагающий превосходную производительность, но не гарантирующий целостность транзакций. InnoDB несколько медленнее (примерно на 20% согласно результатам большинства общих тестов производительности), но включает вышеупомянутую поддержку транзакций. Тип Memory (ранее известный как Heap) предоставляет наивысшую производительность – однако, это ненадежный выбор. CSV и Archive следует избегать, если только у вас нет специфических требований. В целом, MyISAM и InnoDB – наилучший выбор для поддержания высокой скорости.

СЕРВЕР. Скомпилируйте PHP с оптимизацией по скорости

ПО: PHP • Сложность: Средне

Xотя многие дистрибутивы предоставляют двоичные пакеты для PHP, вы можете получить некоторый выигрыш в скорости, собрав его из исходных кодов. Установки CFLAGS могут дать прирост на несколько процентов, но существуют параметры внутри скрипта ./configure, которые принесут гораздо больше пользы. Hаиболее важно удостовериться, что используется ключ --disable-debug, который позволяет отбросить отладочный код, более не нужный в системе. Также используйте параметр --enable-inline-optimization, который позволит PHP генерировать оптимизированный код. наконец, для PHP 4.20 и более новых версий хорошая идея – использовать ключ --enable-mm=shared (быстрая распределенная память для хранения сессий). Запустите ./configure --help, чтобы получить полный список опций сборки PHP.

СЕРВЕР. Используйте ReiserFS для почтовой очереди

ПО: различные почтовые серверы • Сложность: Сложно

Если у вас запущен почтовый сервер, обрабатывающий тысячи сообщений в день, то стоит выбрать подходящую файловую систему для размещения очереди. обычно ее монтируют в /var, так что форматирование /var под другой тип файловой системы может снизить нагрузку. некоторые файловые системы Linux работают не очень быстро с тысячами маленьких файлов в одном каталоге – следовательно, стоит перейти с ext2/ext3 (используются по умолчанию в большинстве дистрибутивов) на ReiserFS. Доказано, что эта файловая система более «подвижная», когда обрабатывается большое число маленьких файлов, и большинство основных дистрибутивов поддерживают ее в ядре, так что вам не придется заниматься тяжелой ручной работой для перехода на нее. Hа сильно загруженных серверах вы заметите хороший прирост производительности.

СЕРВЕР. Cоздайте правильный баланс между клиентом и сервером

ПО: -- • Сложность: Средне

Если вы строите приложение типа «клиент-сервер», рассмотрите баланс загрузки между сервером и клиентом. Если вся работа выполняется на сервере, это замедлит работу приложения в целом, даже если клиентское ПO ничего не делает. Если вся работа возложена на клиента, это также может замедлить работу приложения. Pассмотрите использование процедур хранения в базах данных, или чтения данных из БД с последующей обработкой клиентом. Подумайте об этом на этапе разработки ПO, поскольку сперва вы не будете видеть проблем. они появятся только тогда, когда у вас будет множество пользователей, что вызовет заметную деградацию сервиса – но будет уже слишком поздно.

СЕРВЕР. Поддерживайте загрузку процессора с помощью параллельной компиляции кода

ПО: make • Сложность: Легко

Если вы работаете на многопроцессорной системе (SMP) с умеренным объемом памяти (скажем, 512 Мб), вы можете получить значимый выигрыш от выполнения параллельных процессов make во время сборки кода. В сравнении с последовательной сборкой, когда запускается один make (так как это происходит по умолчанию), параллельная сборка дает заметные улучшения. Чтобы сообщить make о возможности запускать для компиляции более одного дочернего процесса, используйте ключ -j:

# make -j4; make -j4 modules

Hекоторые программы не рассчитаны для выполнения параллельной сборки и могут завершиться ошибкой, если некоторые части проекта будут собраны вперед вышестоящих зависимостей. Если вы сталкиваетесь с ошибками сборки, самое безопасное – просто повторить все с самого начала без опции -j.

СЕРВЕР. Улучшите обработку проблемных сообщений в Postfix

ПО: Postfix • Сложность: Средне

Когда почтовый сервер Postfix не может передать сообщение, оно помещается в очередь, отнимая дисковое пространство и время периодическими попытками повторно отослать его. Если у вас большое число писем, которые не удается отправить, это может снизить производительность, так что имеет смысл откорректировать некоторые настройки. maximal_backoff_time (в секундах) можно установить высоким, чтобы Postfix не повторял попытки отправки слишком часто. queue_run_delay (также в секундах) определяет, как часто сервер сканирует отложенные письма для повторной отправки – опятьтаки имеет смысл установить это значение выше, если сервер испытывает перегрузку. Параметр maximal_queue_lifetime (в днях) можно несколько уменьшить, чтобы избежать захвата очереди и сервера проблемными письмами на долгое время.

СЕРВЕР. Bычищайте файлы .htaccess

ПО: Apache • Сложность: Легко

Hе используйте файлы .htaccess в Apache. Фактически, вы должны полностью запретить Apache их поиск. Hет ничего, что нельзя было бы указать в httpd.conf вместо этих файлов, поэтому их поиск просто добавляет нагрузки на сервер. Hапример, если ваш каталог htdoc – это /var/www/htdocs, то Apache будет искать файлы /.htaccess, /var/.htaccess, /var/www/.htaccess, и /var/www/htdocs/.htaccess – четыре ненужных доступа к файлу для каждого запроса к web-странице, независимо от того, существуют эти файлы или нет. чтобы отключить использование файлов .htaccess полностью, установите параметр AllowOverride в вашем httpd.conf в «None»:

<Directory />
             AllowOverride None
</Directory>

СЕРВЕР. Кэшируйте web-страницы

ПО: Squid • Сложность: Средне

Если ваши компьютеры объединены в сеть, вы можете значительно увеличить скорость доступа за счет использования прокси-сервера, такого как Squid, для кэширования наиболее популярных web-сайтов. Squid – это прокси-сервер, который работает как шлюз в интернет, а заодно сохраняет большинство общих файлов локально, так что в дальнейшем не требуется блуждать по интернету каждый раз, когда кто-то запрашивает последние заголовки с http://www.linuxcenter.ru . Управление самим сервером Squid лучше всего выполнять через web-интерфейс, такой как Webmin, который делает различные настройки, например, установку размера кэша, очень простыми.

СЕРВЕР. Используйте асинхронный режим NFS

ПО: NFS • Сложность: Средне

Сетевая файловая система (NFS) является очень эффективным способом доступа к удаленным данным по сети, как если бы они размещались локально, но без параметра async она страдает от очень низкой производительности. Без async данные физически записываются, прежде чем запрос будет завершен, но с включенной опцией сервер может выполнять запись данных тогда, когда это наиболее удобно. Это дает очевидное преимущество по скорости, но если сервер потерпит крах до того, как выполнит запись, данные будут потеряны. чтобы разрешить асинхронный обмен, нужно добавить async в каждом элементе файла /etc/exports. Типичный пример может выглядеть следующим образом:

/mnt/media 192.168.1.0/255.255.255.0 (rw,no_root_squash,async)

СЕРВЕР. Bыбирайте тип журнала в ext3

ПО: ext3, mount • Сложность: Сложно

Большинство дистрибутивов предлагают журналируемую файловую систему ext3 – усовершенствованную версию стандартной для Linux файловой системы ext2 по умолчанию во время инсталляции. Тип журнала может значительно влиять на производительность: с вариантом монтирования data=journal, все данные заносятся в журнал перед записью – наиболее надежный, но медленный способ. data=ordered используется по умолчанию, но вы можете попробовать data=writeback, чтобы добиться предельной скорости (и риска обнаружить старые данные в файлах после сбоя).

СЕРВЕР. Oтключите модули Apache

ПО: Apache • Сложность: Средне

Удалите все модули Apache, которые не используются. Многие из модулей очень полезны (а порой и жизненно необходимы). Oднако есть множество таких, которые никогда не используются, но, тем не менее, загружаются и поэтому занимают дополнительную память, которая могла бы использоваться как-то еще. К счастью, экспериментировать с большинством модулей очень просто, достаточно редактировать файл httpd.conf. Hе удаляйте никакие строки – просто используйте «#» в начале строки, чтобы исключить операторы AddModule и LoadModule для конкретного модуля. Вы можете затем использовать apachectl restart, чтобы перезагрузить Apache и посмотреть, к какому эффекту это приведет. Это займет определенное время, но процедура того стоит. Такой способ, конечно же, удобен только для модулей, которые не входят непосредственно в Apache – иначе потребуется его полностью пересобрать.

ЯДРО. Скомпилируйте ядро под ваш процессор

ПО: ядро Linux • Сложность: Легко

Это очень хорошая идея – собрать ядро под ваш процессор. Вместе с оптимизированной библиотекой glibc, это сделает систему быстрее, чем в случае а стандартной оптимизации под i386. Перекомпиляция ядра занимает много времени, но это не вызовет трудностей, если вы будете правильно следовать документации. Вам нужно будет получить исходные текста ядра для вашего дистрибутива (или стандартный выпуск с http://kernel.org ) и затем собрать его. быстрый поиск в Google поможет найти руководство по компиляции ядра для вашего дистрибутива; или вы можете задать вопрос на форумах LXF. Когда вы будете находиться на этапе конфигурации, войдите в секцию Processor Type And Features, где вам нужно будет отметить тип вашего процессора в меню Processor Family, затем выполните сборку, установку и под конец настройте загрузку нового образа ядра.

Пол считает...

«Многие дистрибутивы предоставляют пакеты с собственными ядрами, оптимизированными для определенных процессоров. Поищите их, прежде чем собирать свои вручную.»

ЯДРО. Пересоберите ядро, отключив все ненужное

ПО: ядро Linux • Сложность: Легко

Бльшинство дистрибутивов поставляются с большим, громоздким ядром, которое поддерживает максимально широкий набор оборудования. Однако если вы точно знаете, что вам нужно, вы можете урезать ядро, сэкономив таким образом некоторое количество памяти и циклов процессора. Хорошо бы оставить только те параметры и драйвера, которые необходимы – наиболее сложно будет определить, что же вам действительно нужно, а что – нет. Возьмите исходные коды ядра, как описано в предыдущем совете, затем в меню настройки просмотрите каждый параметр (обращайтесь при необходимости к встроенной справке) и откажитесь от всего, что определенно вам не понадобится. Вы можете обнаружить, что исключаете целые подсистемы (например, SCSI), но если вы сомневаетесь в чем-то, оставьте это как есть.

ЯДРО. Bыполните тонкую подстройку ядра с помощью sysctl

ПО: sysctl • Сложность: Сложно

Хотя многие системные параметры можно изменить в /etc, существует несколько настроек, которые требуют дополнительных технических знаний. Утилита sysctl (введите man 8 sysctl, чтобы увидеть краткое руководство) изменяет определенные параметры работающего ядра. Эти параметры зачастую имеют причудливые имена, но, тем не менее, могут быть полезны для повышения производительности компьютеров.

Введите от имени суперпользователя sysctl -a | less, чтобы просмотреть все доступные параметры. Hесмотря на путаные имена, вы можете определить, что делает большинство из них (например, сетевые параметры имеют префикс net.). описание сотен опций выходит за рамки этой заметки, поэтому вы всегда можете узнать больше, выполнив поиск в интернете по ключевому слову sysctl и уточнить, что вы хотите ускорить. Sysctl играет важную роль в низкоуровневой настройке сети, так что их нужно исследовать более тщательно.

ЯДРО. Добейтесь более эффективной подкачки

ПО: sysctl • Сложность: Легко

Сперва прочитайте совет № 51 для получения общего представления о sysctl. Linux 2.6 представляет параметр vm.swappiness, который определяет, как будет использоваться виртуальная память. Oбычно, когда программе требуется больше памяти, а ОЗУ уже заполнено, ядро может или: а) уменьшить размер кэша, который хранит файлы в памяти для быстрого доступа; или б) переместить часть запущенных программ на диск (в область подкачки, swap) для временного хранения.

Параметр sysctl между 0 и 100 сообщает ядру, какой метод предпочтительнее. При значении 0 ядро полностью откажется от кэширования, если памяти недостаточно, в то время как при 100 программы будут сразу записываться в область подкачки. Для лучшего времени отклика, установите его в 20 или 30 (sysctl -w vm.swappiness=20). Имеет смысл поэкспеиментировать с другими значениями и записать наилучший результат в /etc/sysctl.conf, чтобы сохранить изменения между перезагрузками.

ЯДРО. Увеличьте производительность, добавив «заплатку» к ядру

ПО: ядро Linux • Сложность: Сложно

Ядро Linux – универсальный механизм как для серверов, так и для настольных компьютеров. Следовательно, различные заплатки делают изменения, фокусирующиеся на том, чтобы сделать настольную систему более отзывчивой. наиболее известен из них набор Кона Коливаса (Con Kolivas). Oн устанавливает другой планировщик (staircase), меньшее использование файлового кэша и настраивает значение HZ (число прерываний от таймера). Коливас выпускает заплатки для всех последних версий ядра – так что просто загрузите, ознакомьтесь (man patch) и перекомпилируйте ваше ядро, чтобы получить более быстрый и уверенно работающий настольный дистрибутив. Смотрите http://members.optusnet.com.au/ckolivas/kernel для загрузки обновлений, и http://www.linux-militia.net для получения исходных кодов ядра с уже установленными обновлениями. на нашем диске также есть RPM-пакет для Fedora.

ЯДРО. Ускорьте QEMU

ПО: QEMU • Сложность: Средне

QEMU, полнофункциональный эмулятор ПК, очень удобен для тестирования дистрибутивов. До недавнего времени каждая процессорная инструкция обрабатывалась отдельно, и в результате эмулятор работал медленно. Теперь существует модуль ядра, который эффективно подстраивает QEMU как виртуальную машину в стиле VMWare, и это работает гораздо более быстро.

Загрузите модуль ядра kqemu с http://fabrice.bellard.free.fr/qemu и соберите его (вам потребуются исходные коды ядра) согласно документации. В следующий раз, когда вы запустите QEMU, он вызовет этот модуль для достижения хорошей производительности. Oпределенно, это стоит того, чтобы слегка повозиться с установкой исходных кодов вашего ядра.

ОБОРУДОВАНИЕ. Ускорьте жесткий диск

ПО: hdparm • Сложность: Средне
Мифы об экономии времени

Миф: Отключение сервисов разгружает процессор и память.

Факт: В совете №2 мы показали, как предотвратить запуск некоторых сервисов во время загрузки, позволяя системе загружаться намного быстрее. Oднако это не означает, что ваша система будет быстрее или легче в использовании – многие сервисы находятся в бездействии и сбрасываются в область подкачки, так что они редко тратят память или ресурсы процессора. Если, например, вы никогда не используете Sendmail, но оставили его запускаться при загрузке системы, он будет вести себя тихо и уйдет в область подкачки, в то время как другие приложения будут работать. Pеальный выигрыш от отключения сервисов заключается в ускорении загрузки системы.

Pежим DMA (Direct Memory Access) позволяет данным передаваться без высокой загрузки процессора. Многие дистрибутивы, ориентированные на новичков, разрешают DMA для жестких дисков, но некоторые – нет, и в результате производительность значительно страдает. Включение режима DMA может повысить производительность диска в пять раз и более.

Установите hdparm и выполните как root: hdparm /dev/hda. замените hda на hdb или другое имя, соответствующее вашему диска. Эта команда покажет вам, какие функции доступны: чтобы включить DMA, используйте команду hdparm -d1 /dev/hda. Вы можете воспользоваться ключом -i, чтобы получить информацию о функциях, поддерживаемых вашим жестким диском, кроме того, man hdparm даст вам дополнительные справочные сведения об этой команде. Стоит попробовать на вашем жестком диске (и CD/DVD) работу и других ключей, в том числе -c для поддержки 32-битного вводавывода и -X для выбора режима передачи IDE.

Грэхем считает…

«Внимание! есть сведения, что некоторые флаги hdparm могут повредить данные. На странице справочного руководства акцентируется внимание на проблемных ключах.»

ОБОРУДОВАНИЕ. Добавьте подвижности вашей мышке и клавиатуре

ПО: любой оконный менеджер • Сложность: Легко

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

# xset rate 500 30

Эта команда установит задержку в 500 миллисекунд с момента нажатия клавиши, пока не начнется повтор символов. Повторяться символы будут со скоростью 30 шт./с.

ОБОРУДОВАНИЕ. Включите поддержку ускорения OpenGL в X11

ПО: X.org • Сложность: Сложно

Если вы используете настольный дистрибутив, такой как Mandriva или SUSE, скорее всего программа установки правильно настроила графический интерфейс X11 для вас с первого раза. Oднако если в определенных случаях вам может понадобиться настроить OpenGL, обеспечивающий поддержку трехмерной графики (3D). Это не слишком сложно, если вы понимаете, что делаете. Сперва убедитесь, что ваше ядро поддерживает шину AGP (введите dmesg | grep -i agp и lsmod | grep -i agp в терминале и посмотрите, есть ли строка agpgart). Если нет, то вам нужно будет перекомпилировать ядро с включенными параметрами MTRR, AGP и DRM. Добавьте строки Load «dri» и Load «glx» в секции Module файла xorg.conf (обычно находится в /etc/X11) и перезапустите X-сервер. Команда glxinfo | grep direct должна вернуть «Yes».

ОБОРУДОВАНИЕ. Работайте с фирменными видеодрайверами

ПО: -- • Сложность: Средне

Видеодрайверы в стандартной поставке X.org подходят для обеспечения хорошей производительности для большинства видеокарт, но в некоторых случаях вы можете увеличить скорость, используя проприетарные драйверы, разрабатываемые производителем видеокарты. Драйверы nVIDIA, которые можно найти на странице http://www.nvidia.com/object/unix.html , делятся на модули ядра и модули X.org и представляют собой один универсальный архив, включающий в себя программу-установщик модулей для наиболее распространенных ядер Linux. Если ваше ядро по какой-то причине не попало в список, то установщик предложит поискать модуль на сайте nVIDIA (через FTP) либо собрать его автоматически (понадобятся исходные тексты ядра или его заголовочные файлы – пакет kernel-headers). Следует знать, что установщик видеодрайвера запустится только в текстовом режиме и потребует от вас установленного пакета binutils и стандартных утилит разработчика. После установки, отредактируйте ваш xorg.conf, заменив строку устройства nv на nvidia, и удалите строку dri в Module Load. Драйвера ATI доступны на http://www.ati.com – документация в поставке разъясняет, как их установить. В обоих случаях вы пожертвуете некоторой свободой во имя увеличения скорости, что имеет смысл, прежде всего, для игр.

ОБОРУДОВАНИЕ. Используйте каждый байт вашей оперативной памяти

ПО: ядро Linux • Сложность: Сложно

Linux способен адресовать до 64 Гб физической памяти на системах x86. Но если вы хотите использовать более чем 960 Мб озУ, вы должны будете сообщить системе об этом. Прежде всего, ваше ядро Linux должно быть сконфигурировано для поддержки дополнительной памяти. Способ, которым ядро адресует доступную системную память, диктуется настройкой High Memory Support (известной как параметр CONFIG_NOHIGHMEM). Установите его согласно объему памяти, который вы предполагаете использовать.

Имейте в виду, что выбор 64 Гб требует процессор, способный использовать режим PAE (Physical Address Extension). Как только ядро будет собрано и установлено, вам, вероятно, придется сообщить загрузчику, сколько памяти установлено, чтобы он мог проинформировать ядро во время загрузки (поскольку не каждый BIOS аккуратен в вопросе определения общего объема системной памяти). Добавьте mem=<number>M в строке, описывающей ядро в конфигурационном файле LILO или GRUB.

ОБОРУДОВАНИЕ. Попробуйте мышь в текстовом режиме

ПО: GPM • Сложность: Легко

Если вы не устанавливали на свою машину систему X Window, это не означает, что вы вообще не сможете пользоваться мышью. Есть маленькая щеголеватая программа под названием GPM (General Purpose Mouse), которая предоставляет простую поддержку мыши в интерфейсе командной строки: курсор, вместе со средствами копирования и вставки. Это может быть очень удобно, например, в IRC-клиенте или почтовой программе, не включающей полноценный редактор (и не позволяющий вам получить доступ к нему). GPM можно найти на странице http://linux.schottelius.org/gpm , также он доступен в составе многих популярных дистрибутивов – и вы можете воспылать любовью к командной строке!

ОБОРУДОВАНИЕ. «Разгоните» вашу карту nVIDIA

ПО: nvidia-settings • Сложность: Сложно

Pазгон опасен. Вы можете необратимо повредить ваше оборудование, поэтому будьте осторожны, пожалуйста. Последние драйвера NVIDIA включают возможность запускать процессор и память вашей графической карты на более высокой частоте, чем та, для которой они проектировались. небольшое увеличение частоты может повысить производительность, но также может привести к перегреву карты. Чтобы заняться разгоном, вам понадобится свежий драйвер с домашней страницы NVIDIA. отредактируйте конфигурационный файл X11, обычно это /etc/X11/xorg.conf, добавив следующую строку в секцию устройства NVIDIA:

Option       «Coolbits» «1»

После перезапуска X-сервера, вы сможете изменять тактовую частоту в приложении nvidia-settings, включенном в драйвер. С включенным параметром Coolbits появится дополнительная страница, называющаяся Clock Frequencies, где вы сможете настроить скорость графического процессора и памяти. Выполняйте это с предельной осторожностью и делайте только небольшие изменения, чтобы ваша система не расплавилась.

ОБОРУДОВАНИЕ. Устраните запаздывание звука

ПО: ESD, Artsd • Сложность: Средне

У вас самая современная и «навороченная» звуковая карта, вы установили новейший, самый продвинутый дистрибутив и продолжаете рваться вперед. но по ряду причин вы получаете задержки в звуковых эффектах игр и во время проигрывания музыки. Зачастую подобное происходит со звуковыми службами, используемыми в Gnome и KDE, называемые ESD и Artsd соответственно. Эти службы работают как посредники между оборудованием и ПO, позволяя нескольким приложениям проигрывать звуки одновременно, но при этом может возникать запаздывание на 1-2 секунды, т.к. софт не работает непосредственно с оборудованием через /dev/devices. Вы можете отключить данные службы (завершите их работу с помощью менеджера процессов, если потребуется) и настроить ваши программы на прямое использование вывода OSS или ALSA.

КОМАНДНАЯ СТРОКА. Используйте сжатие для SSH-соединения

ПО: OpenSSH • Сложность: Легко

Если вы используете инструмент удаленного доступа SSH на медленных соединениях, вы будете часто сталкиваться с высокой задержкой между вводом символа и его отображением. работа по SSH между двумя компьютерами по коммутируемым линиям зачастую приводит к ужасающей ненадежности. К счастью, есть один простой путь обойти это: сжатие (отправка меньшего объема данных в линию). используя флаг -C в OpenSSH, вы можете применить компрессию к соединению, значительно улучшив время отклика, при этом используется тот же метод, что и в gzip. Вы можете даже применить -C к scp; однако, если файл или файлы, которые вы пересылаете, уже сжаты, это только замедлит отправку. Вот пример команды на вход в систему с включенным сжатием:

# ssh -C user@hostname

КОМАНДНАЯ СТРОКА. Открывайте Emacs мгновенно

ПО: Emacs • Сложность: Легко

Многие современные системы не имеют проблем с загрузкой Emacs, но когда-то ему было дано насмешливое имя «Eight Megs And Constantly Swapping» («Восемь мегабайт и постоянная подкачка»), из-за того, как он использовал память. Hа старых компьютерах его загрузка может отнимать довольно длительное время, однако есть полезное решение – клиент emacsclient. Добавьте строку (server-start) в ваш файл ~/.emacs, и запустите Emacs. Когда вам нужно открыть другую сессию Emacs, вместо запуска всего приложения вы можете загрузить emacsclient <имя_файла>. Oн присоединится к текущему процессу Emacs и откроет буфер редактирования, вместо того чтобы запускать другой экземпляр приложения, и тем самым сэкономит время и память.

КОМАНДНАЯ СТРОКА. Bыслеживайте пожирателей ресурсов процессора и памяти

ПО: top • Сложность: Легко

Команда top может дать вам посекундный отчет о загрузке системы, использовании памяти и задействовании процессора. Простейший способ начать использовать ее – просто запустить top из командной строки, набрав одноименную команду. Вы получите информационный экран, обновляющийся каждые две секунды.

Hажмите клавишу ?, когда top запущен, чтобы просмотреть список доступных команд. Top имеет несколько очень полезных клавиш отображения – в частности, это M (которая выполняет сортировку по размеру занимаемой памяти), P (которая сортирует по использованию процессора), S (для переключения совокупного времени работы - это то, как долго каждый процесс и его дочерние процессы запущены, в секундах процессорного времени), и I (чтобы не отображать спящие процессы).

КОМАНДНАЯ СТРОКА. Редактируйте удаленные файлы локально

ПО: Vim • Сложность: Легко

Скажем, вы вошли на удаленную систему и редактируете файл. на медленной линии процесс редактирования может быть неудобным и неустойчивым, но Vim предлагает быстрое решение. Введя URI scp:// в Vim, вы передадите файл на локальную машину, отредактируете его и затем отошлете обратно, когда закончите работу. Так достигается значительное увеличение скорости на коммутируемых соединениях. Пример редактирования удаленного файла:

# vim scp://user@hostname.org//home/user/filename

КОМАНДНАЯ СТРОКА. Копируйте установочные CD на жесткий диск

ПО: — • Сложность: Сложно

Многие дистрибутивы требуют постоянного доступа к установочным дискам, чтобы иметь возможность устанавливать новое ПО, что очень медленно и неудобно. Однако копирование всех файлов на диск – довольно тяжелое занятие. Решением является создание ISO-образа для каждого диска, который вы сможете затем сохранить смонтированным на ваш жесткий диск. Чтобы создать ISO-образ, вставьте диск в привод и введите следующую команду в приглашении оболочки (пример для Mandriva Linux):

dd if=/dev/cdrom of=MandrivaCD1.iso.

Как только вы создадите образы каждого диска, вам просто нужно будет смонтировать их. Чтобы команды монтирования выполнялись автоматически при загрузке, их следует добавить в скрипт, запускаемый при старте системы. Сперва вам нужно создать каталог назначения, затем ввести команду монтирования, как показано ниже; затем войти в ваш менеджер пакетов и настроить смонтированные диски как источник файлов.

# mkdir /mnt/mandriva1
# mount -o loop -t iso9660 MandrivaCD1.iso /mnt/mandriva1

КОМАНДНАЯ СТРОКА. Ускорьте дублирование CD

ПО: cdrecord • Сложность: Сложно

Самый надежный способ сделать копию CD-диска – сначала сделать ISO-образ, а затем записать его на чистый CD. К сожалению, иногда у вас нет места (или времени) для промежуточного шага при изготовлении копии. Если у вас достаточно быстрый компьютер, вы, как правило, можете записать один CD-диск непосредственно с другого, например, так:

# dd if=/dev/hdb | cdrecord -v speed=12 dev=0,0,0 fs=8m -data -

Аргумент «» команды cdrecord означает, что дорожки данных следует читать со стандартного входа (STDIN). Строка dd создает канал (pipe) между cdrecord и копируемым CD-диском, подключенным в режиме «slave» к первому IDE-контроллеру (hdb). Параметр fs=8m делает буфер записи несколько больше, чтобы исключить возможные «заикания» в процессе записи.

КОМАНДНАЯ СТРОКА. Bыжмите все из оболочки bash

ПО: оболочка bash • Сложность: Легко

Почти каждый дистрибутив использует bash как оболочку командной строки, однако многие пользователи не знают, какие эргономичные функции она содержит. Oдна из лучших – автодополнение: вместо того, чтобы набирать каждое имя файла и команду полностью, вы можете ввести первые символы и затем нажать клавишу Tab, чтобы bash дополнила ваш ввод. Другая удобная функция – история команд: в строке приглашения нажимайте стрелки вверх и вниз, чтобы циклически перемещаться по командам, которые вы вводили ранее.

КОМАНДНАЯ СТРОКА. Oткажитесь от find в пользу slocate

ПО: find, slocate • Сложность: Средне

Утилита командной строки find очень полезна для поиска файлов, но она просматривает каждый отдельный каталог, а это довольно кропотливая работа. Лучшее решение – это slocate, которая строит базу данных файлов для гораздо более быстрого поиска. (обратной стороной медали является то, что вам нужно часто обновлять эту базу данных). Для получения дополнительной информации откройте окно терминала и введите man slocate и man updatedb. Во многих дистрибутивах настроено еженедельное обновление базы slocate по cron.

КОМАНДНАЯ СТРОКА. Oптимизируйте ваши файловые системы

ПО: mount • Сложность: Средне

По умолчанию, каждый раз, когда выполняется доступ к файлу из Linux, на диск записывается дополнительный объем данных. Эти данные показывают, когда к файлу было последнее обращение, что может быть полезным при некоторых обстоятельствах. Соответственно, это означает, что каждая операция чтения файла также нуждается в операции записи, что несколько влияет на производительность. Вы можете отключить это, добавив noatime в опции монтирования в файле /etc/fstab. Oднако будьте осторожны, поскольку некоторые программы рассчитывают на то, что время доступа к файлу обновляется, так что будьте готовы к проблемам. Пример:

/dev/hda1/  ext3        defaults,noatime        0            1

КОМАНДНАЯ СТРОКА. Используйте многозадачность с помощью screen

ПО: screen • Сложность: Легко

Screen – это, по сути, оконный менеджер для текстовой консоли, позволяющий вам переключаться между программами без необходимости отдельного входа в систему (например, на нескольких виртуальных терминалах). Вы можете запустить, скажем, Emacs на одном экране, нажать клавишу и переключиться в Irssi. и даже больше: вы можете отсоединяться от экрана на время. Познакомьтесь поближе с этим прекрасным инструментом в рубрике «Вопрос? Oтвет!» текущего выпуска. Если он отсутствует в вашем дистрибутиве, вы найдете его на нашем диске или на http://www.gnu.org/software/screen.

Итог

Ух! итак, что мы имеем? 72 совета, охватывающих все аспекты Linux. Использовав понравившиеся рецепты, вы почувствуете значительный прирост производительности вашей системы. Воспользуйтесь 20 или 30 подсказками, и ваш ПК будет рваться вперед. Если (как-нибудь) вы сможете воспользоваться всеми 72-мя советами на отдельно взятом компьютере… Хорошо, не вините нас, когда вы выбьете свои окна, достигнув скорости звука. Но и это еще не все: если у вас есть собственные рецепты, почему бы не поделиться ими с остальными на нашем форуме http://unixforum.org ? LXF

HАШИ БЛАГОДАРНОСТИ…

Благодарим издательство O’Reilly, любезно предоставившее нам право использовать некоторые советы из их книг «Linux Desktop Hacks» (Petreley and Bacon, 2005) и «Linux Server Hacks» (Flickenger, 2003). Смотрите http://www.oreilly.com для получения дополнительной информации.

Персональные инструменты
купить
подписаться
Яндекс.Метрика