MegaFAQ по разгону Linux на десктопе

Posted by admin On Сентябрь - 1 - 2009

Прожорливость современных Linux-дистрибутивов легко ощутить, запустив один из них на компе с 512Мб ОЗУ или купив ASUS ЕееРС. Нерасторопная загрузка десктопа, борьба приложений за ресурсы, тонущий под собственным весом Firefox и постоянно шуршащий жесткий диск — зрелище пугающее и обескураживающее. Где же тот Linux, который способен работать на машинах с 16 Мб оперативки и процессором семейства i486? А ведь он до сих портам, внутри, задавленный грузом многочисленных библиотек, бесполезных демонов, жирных приложений и красивостей рабочего стола.

Q. В моем любимом дистрибутиве Linux загружается огромное количество сервисов. Это занимает кучу времени. Можно ли как-то ускорить загрузку?
А. Ну, например, можно попытаться организовать параллельный запуск сервисов. Это несложно, найди в файле /etc/init.d/гс такой код:

for i in /etc/rc$runlevel.d/S*
do case “$runlevel” in
*) startup $i start ;; esac done

И замени строку «*) startup $i start;;» на «*) startup $i start & ;;». Так загрузочные процессы будут запускаться параллельно: последующий сервис начнет стартовать, не дожидаясь выполнения предыдущего. После модификации конфига перезагрузи систему. Если тебе повезет, и Linux запустится корректно, то время его запуска сократится примерно в два раза. Но он может и не загрузиться. У этого способа есть один недостаток. Представим, что нам нужно запустить к сервиса: А, В, С и D, причем сервис С — довольно громоздкий, и его запуск занимает, скажем, секунд 15-20, а сервис D
— небольшой, но он зависит от С. Получается, что С еще не запущен, a D запущен, но он не может работать без С. В результате, D окажется неработающим. В реальной системе таких сервисов можетбыть много. Что же делать? Ответ прост: нужно использовать программу cinit, которая параллельно запускает сервисы, но при этом проверяет зависимости. Таким образом, cinit не запустит сервис D, если сервис С, необходимый для корректной работы D, еще не запущен.

Прочитать о правильной настройке cinit можно по адресу: nico.schottelius.org/documentations/ speeches/metarheinrrtain-chaosdays-110Ь/ cinit/view. Еще один вариант — перевести дистрибутив на систему инициализации InitNG (Init Next Generation). За подробностями обращайся к статье «Молниеносная загрузка тукса»зс _03_2006). Кслову,убунтовский upstart, использующий метод параллельного запуска сервисов, грузит дистрибутив до окна логина за -10 секунд.

Q. А как отключить ненужные сервисы?
А. Отключить сервисы можно с помощью графического конфигуратора (drakxservices в Mandriva, system-config-services в Fedora, services-admin в Ubuntu), но намного проще «прибить» ссылку в соответствующем rcN.d-каталоге (или же переместить ее в другой каталог — на случай, если когда-то понадобится включить сервис).

Q. Какувеличить объем виртуальной памяти?
А. Набери команду free в консоли. Сколько виртуальной памяти (физическая память плюс область подкачки) сейчас свободно? Если все заполнено, например, осталось несколько мегабайт физической памяти и столько же в своп-области, значит, памяти катастрофически не хватает. Лучший совет — это купить еще один модуль оперативки. В качестве временного решения могу предложить создать и активировать дополнительный файл подкачки (в нашем случаеего размер — 512 Мб):

# dd if=/dev/zero of=/swap/sw-f ile bs=lk count=524288
# mkswap /swap/sw-file 524288
# swapon /swap/sw-file

Чтобы последнюю команду не вводить каждый раз при запуске системы, пропиши ее в загрузочных сценариях (желательно после команды «swapon -а»).

Q. Как повысить производительность виртуальной памяти?
А. Если ты работаешь с небольшими программами и часто переключаешься между ними, можно установить коэффициент подкачки равным 20 или 30. В этом случае переключение между приложениями будет мгновенным, но замедлится их работа. Поскольку приложения небольшого размера, то это не будет заметно.

Если же на протяжении дня ты в основном работаешь с громоздкими приложениями, например, OpenOffice, или занимаешься обработкой изображений в GIMP, лучше установить значение коэффициента, превышающее 70, например, 80 или даже 85.

Тогда переключение между приложениями будет медленное, зато основное приложение будет работать быстро. Изменить значение коэффициента подкачки можно с помощью команды:

swappiness
Или через /etc/sysctl.conf:
vm.swappiness =20

Поэкспериментируй с различными параметрами — только так можно подобрать для себя оптимальное значение. Кроме того, не мешает ограничить размер файлового кэша, чтобы он занимал меньше ОЗУ (так мы предотвращаем свопинг), и активировать принудительный сброс буфера в случае, если приложения суммарно займут более половины памяти:

vm.pagecache = 90 vm.dirty_ratio = 50

Q. Как оптимизировать работу жесткого диска?
А. В большинстве случаев система сама подбирает оптимальные параметры работы с жестким диском. Используя утилиту hdparm, есть возможность дополнительно повысить производительность. Чтобы получить информацию о текущих настройках харда, запустим команды:

$ hdparm /dev/sda $ hdparm -i /dev/sda

Параметров будет получено много, но на производительность напрямую влияют лишь некоторые:
• MaxMultSect/MultSect — максимальное/ текущее число секторов, которые диск может считать за один проход (для максимальной производительности они должны совпадать);
• РЮ modes/DMA modes — режимы, которые поддерживает жесткий диск (режим, помеченный звездочкой, является текущим);
• multcount — число одновременно считываемых секторов;
• 1/0 support — режим работы жесткого диска (16-битный режим, 32-битный режим или 32-битный синхронный режим);
• using_dma — использовать DMA или нет;
• readahead — количество секторов для упреждающего чтения.
Переопределить установки для конкретного диска можно в командной строке (вступают в силу немедленно) или —указав их в конфигурационном файле/etc/hdparm.conf или/etc/ default/hdparm (потребуется перезагрузка). Влияние изменений можно протестировать при помощи команды «hdparm -tT/dev/sda». Для примера включим DMA(-dl),32-битный режим I/O (c1); multicount выкручиваем по максимуму (-m64), а упреждающее чтение ставим равным multicount (-абЛ). Установка параметра *-и1* разрешает драйверу параллельно обрабатывать несколько прерываний, что повышает производительность:

# hdparm -ulcldlm64a64 /dev/sda

Дополнительно можно поиграться с параметром ‘-W (0/1), отключающим/включающим кэширование. Его значение зависит от производителя и модели харда и по умолчанию не определено.
Q. Как задать отдельной программе приоритет для работы с диском?
А. Аналогично nice, позволяющей изменить приоритет процесса, утилита ionice задает приоритет на использование харда для процесса или приложения. В Ubuntu ionice входит в пакет schedutils. Приоритет указывается при помощи класса и собственно приоритета в виде:

ionice -с класс -п приоритет -р PID

Приоритет — число от 0 до 7 (чем меньше число, тем он выше). В позиции класс три значения:
1. Realtime — планировщик дает преимущество при доступе к диску выбранному процессу, без внимания на работу других процессов (8 уровней приоритета [0-7]);
2. Best Effort — класс, устанавливаемый по умолчанию для всех процессов (8 уровней приоритета);
3. Idle — программа получает право на использование жесткого диска только в том случае, если другая программа не требует диск; приоритеты не задаются.
Вместо PID можно указать имя процесса:

$ sudo ionice -с2 -n0 mplayer

Q. Как разогнать файловую систему?
А. Через отключение ненужной функциональности. Любая современная ФС достаточно гибка, но напичкана большим количеством функций, которые лично тебе могут и не понадобиться. Возьмем, к примеру, ext3, наиболее популярную сегодня Linux-ФС. Она обладает двумя важными, но далеко не всегда необходимыми функциями: журналирование и временные метки последнего доступа к файлу. Обе они требуются, но только в случае, если твоя система целиком «сидит» на одном разделе. Если же установить ОС на несколько разделов, каждый из которых будет ответственен за хранение файлов конкретного каталога, — мы получим возможность использовать для них разные файловые системы с различным уровнем функциональности. Смотри:
• Раздел #1. Корень файловой системы, то есть каталог
• Раздел #2. Каталог/usr, хранящий все устанавливаемое программное обеспечение.
• Раздел #3. Каталог/home, личные данные пользователей.
• Раздел #4. Каталог/tmp, временные файлы.
• Раздел #5. Каталог/var, множество изменяемых во времени данных приложений.
Зачем журналировать и обновлять время последнего обращения к файлам для корня файловой системы, который изменяется очень редко (обычно во время переустановки ядра или обновления дистрибутива)? Ответ: незачем. Монтируем к корню шуструю ext2 (которая не ведет журнал) с опцией noatime (не использовать временные метки последнего доступа). То же относится к каталогу/tmp, за исключением того, что в этом случае atime лучше оставить. Каталог/var хранит множество мелких файлов, для управления которыми отлично подходит ReiserFS./home — важнейшие данные пользователя, поэтому к нему лучше подключить журналируемую ФС.
Кстати, для ускорения доступа к каталогу/tmp можно использовать файловую систему tmpfs, хранящую все свои файлы в оперативной памяти. Это отличное подспорье тогда, когда памяти много, а девать ее некуда. Вот строка для/etc/fstab:

tmpfs /tmp tmpfs size=512m/mode=1777 О О

Можно пойти и радикальным путем: не разбивать диск на множество разделов, а просто перейти на файловую систему ext4. В июльском номере журнала, в статье «На пути к совершенству», мы много говорили о ней и показали бенчмарки, которые доказывают, что производительность ех14за последнее время возросла настолько, что другие ФС на ее фоне выглядят поделками второкурсников.

Q. Что можно сделать с видеоподсистемой?
А. Первое — отказаться от использования стандартных видеодрайверов, поставляемых в комплекте с Х.огд. Особенно ущербны драйвера для карточек ATI и nVidia, и если первые способны хотя бы на что-то в плане 20-ускорения (во многом благодаря открытию некоторых спецификаций), то вторые — просто ужасны. Я на собственной шкуре ощутил примитивизм драйвера nv, когда попытался поиграться с КОЕ4.1.1, По уровню тормознутости картинка легко обставляла UT, запущенный на 166′ом пентиуме (тоже личный опыт), и это несмотря на 1 Гб оперативки, 2.6-гигагерцовый камень и полностью отключенные эффекты. После установки официальных дров кеды полетели быстрее XFCE. Ответ на вопрос «почему?» легко найти, прочитав документацию Knv, которая прямо говорито полном отсутствии функций 2й-ускорения (именно 2D) в драйвере. Второе, что можно сделать —установить простую утилиту nvclock [www.linuxhardware.org/ nvclock), которая позволит разогнать видеокарту как по частоте видеочипа, так и по памяти. На моем домашнем компе установлена старенькая видеокарта nVidia 5900FX. Когда-то давно я запускал на ней первый Far Cry (через wine). Поначалу он притормаживал даже на средних настройках графики, но после выполнения команды «nvclock -f -n 540». которая увеличила частоту чипа с дефолтовых 400 МГц до 540, игрушка начала без проблем бегать на высоких настройках.
Третье — отключить Зй-эффекты рабочего стола. Операция, которая не несет особого прироста производительности (эффекты не грузят проц, а для 30-ускорителя это просто семечки), может повысить скорость реакции системы за счет снижения времени на исполнение дополнительного кода и количества переключений контекста.

Q. Как отключить Compiz?
А. Все зависит оттвоего дистрибутива. Например, в Ubuntu нужно выполнить команду «Система -> Параметры -> Внешний вид» и на вкладке «Внешний вид» отключить эффекты рабочего стола. В других дистрибутивах можно использовать универсальные команды:

# gtk-window-decorator –replace (если у тебя GNOME)
# kde-window-decorator –replace

Q. Можно ли как-то использовать ресурсы видеоадаптера во время его простоя?
А. Да, можно. ATI и nVidia, два основных игрока на рынке видеоадаптеров, не так давно выпустили специальные фреймворки, позволяющие перенести некоторые прожорливые вычислительные задачи на GPU. Позднее была сформирована специальная группа KhronosGroup, разработавшая стандарт OpenCL (www.khronos. org/opencll. который описывает стандартизованный интерфейс доступа kGPU для вычислительных задач. Беда втом, что пока почти не существует приложений, использующих эту технологию. А вот задействовать установленную на видеоадаптер высокоскоростную память удастся прямо сейчас. Ядро Linux включает в себя специальный драйвер Memory Technology
Device (MTD), который позволяет адресовать не только оперативную память, но и память любого устройства, подключенного через шину PCI. Методика, описанная в статье en.gentoo-wiki.com/ wiki/TIP Use memory on video card as swap, использует этот драйвер для создания (псевдо) блочного устройства, которое будет использовать видеопамять в качестве хранилища данных. На устройстве можно создать своп или файловую систему для хранения файлов, например, каталога Amp. Интересная особенность: подход отнюдь не отменяет возможности использования графических приложений, позволяя зарезервировать небольшой кусочек памяти для VGA-режима.

Q. Интернет-соединение тормозит, периодически появляются раздражающие задержки. Как исправить?
А. Это известная проблема в некоторых дистрибутивах Linux с включенной по умолчанию поддержкой IPv6. Если поддержка новой версии протокола IP в системе не нужна, ее очень просто отключить. Для этого достаточно закомментировать строку, содержащую «ipv6», в конфиге /etc/modprobe.conf, или занести этот модуль в блэклист, добавив в файл /etc/modprobe.d/ blacklist.local запись «blacklist ipv6». Если проблема не решена, следует включить/отключить параметр TCP window scaling, определяющий масштабирование TCP-окна, то есть установку количества пакетов, которое может быть послано без подтверждений. Временно отключить его можно командой:

# sysctl -w net.ipv4.tcp_window_ scaling=0

Если это поможет, заносим следующую строчку в/etc/sysctl.conf:

net.ipv4.tcp_window_scaling=0

Другой вариант — не отключать «ТСР window scaling», а попробовать подобрать оптимальные параметры для TCP-буфера чтения и записи:

net . ipv4.tcp_rmem = 4096 87380 174760
net.ipv4.tcp_wmem = 4096 87380 174760

Аналогичный параметр есть и для UDP:

net.ipv4.udp_rmem_min = 16384 net.ipv4,udp_wmem_min = 16384 net.ipv4.udp_mem = 8388608 12582912 16777216

Ядро Linux 2.6 включает алгоритмы автоматической оптимизации буферов принимающей и отправляющей сторон.

Вечный вопрос: Windows или Linux

Posted by admin On Август - 26 - 2009

Понятно, что рождение истины в таких войнах невозможно по определению. В самом деле, о какой истине может идти речь, если предметом, из-за которого разгорается очередной сыр-бор, являются в числе прочего софтверные продукты. Типичный пример - холивар “Windows vs Linux». К слову, эта тема весьма привлекательна для администрации некоторых форумов: наплыв пользователей, заглянувших «на огонек», и, как следствие, резкий скачок посещаемости обеспечены, Еще одна неизбывная тема - обсуждение браузеров и почтовых клиентов. И если в случае иентернет-обозревателей выбор невелик, то почтовиков на рынке софта пруд пруди.

Одним из фаворитов в данном классе программ традиционно (и вполне заслуженно) считается The Bat! (www.ritlabs. com/ru/products/thebat), но стоимость даже домашней версии - 780 руб. - не вызывает особого восторга. Ко всему прочему Linux-версии «летучей мыши» не существует в природе, а мое знакомство с Sytpheed началось именно в Linux. Ноутбук преклонного возраста, на котором был установлен один из дистрибутивов, с величайшей неохотой «переваривал» Evolution и Mozilla Thunderbiro! (см. врезку): эти продукты при всем желании нельзя отнести к категории легковесных. Зато Sylpheed запускалась практически мгновенно: минимальные системные требования, предъявляемые японским «почтальоном.», весьма демократичны - процессор с частотой не менее 266 МГц и 128 Мбайт памяти (впрочем, разработчик все-таки рекомендует камень с частотой от 500 МГц и 256 Мбайт RAM). Программа базируется на GTK-r, что и обусловливает легкую переносимость Sylpheed на большинство платформ.

В «линуксовых» репозиториях нашлась более продвинутая, но менее стабильная вариация под названием Sylpheed Claws (sylpheed-claws.sf.net). Продукт наверняка понравится любителям экспериментов - к их услугам много интересных плагинов, в том числе модуль проверки орфографии и читалка RSS-каналов.

Я решил ограничиться стабильной Linux-версией, и все было хорошо до той поры, пока не вышел релиз-кандидат Windows 7. По правде сказать, я до последнего тешил себя надеждой на то, что в Ред-монде таки не станут отказываться от системного почтового клиента, тем более что Windows Mail, входящая в поставку Vista, была, на мой взгляд, не так плоха и вполне себе успешно боролась со спамом. Увы, «семерка» так и останется без почтовика, и дело здесь вовсе не в антимонопольных репрессиях, которые стали обрушиваться на Microsoft. Корпорация продолжает продвигать свои продукты линейки Live, в том числе приложение «Почта Windows Live» (download.live.com/ wlmail). Однако необходимость установки программы из Сети и обязательной загрузки разнообразных дополнительных компонентов сделали свое дело: я стал искать другие варианты.

Первым почтовым клиентом, установленным в Windows 7, на моем компьютере стала portable-версия Mozilla Thunderbird (обычная версия, как ни странно, огорчала глюками непонятной природы). Впечатления были самые благоприятные: удобно, функционально и бесплатно. Но вскоре память услужливо подсказала, что и Sylpheed портирована для Windows, так почему бы не опробовать «легковесное» приложение в «семерке»? Предварительная настройка Windows-версии не отличается от аналогичного процесса в Linux-инкарнации -нужно указать расположение папки Mail, а если таковая отсутствует, просто нажать Enter.

Пожалуй, единственным огорчением (во всяком случае, лично для меня) явилось отсутствие функции импорта почтовых сообщений, адресной книги и параметров учетных записей из других почтовых программ - Mozilla Thunderbird куда демократичнее в этом аспекте. Несмотря на то что формат почтовых сообщений в Sylpheed стандартен и позволяет открывать письма в других почтовиках, софти-на умеет лишь импортировать послания в МВОХ-файл и экспортировать сообщения из оного (к слову, письма хранятся в каталоге VDocuments and Settings\USER\ Application Data\Sylpheed\Mailboxes\Mail). Следовательно, придется указывать необходимые параметры учетных записей вручную: «Настройка» > «Создать новую учетную запись».

Несмотря на относительно небольшой дистрибутив, Sylpheed позволяет работать с несколькими учетными записями и поддерживает протоколы РОРЗ, IMAP, АРОР (вкладка «Прием»), SMTP (как с авторизацией, так и без нее), а также дает возможность использовать SSL и TLS. Желаете шифроваться по полной? Легко - к вашим услугам цифровые подписи PGP (вкладка «Защита»). На упоминавшейся вкладке, содержащей параметры приема сообщений, обратите внимание на опцию удаления писем с сервера при загрузке: некоторые граждане предпочитают оставлять корреспонденцию в Сети. Кстати, параметры подписи нужно указывать на вкладке «Написать».

Причем функция загрузки новых писем при запуске Sylpheed отключена. Найти ее можно здесь: «Настройки» > «Общие настройки» > «Прием». По вашему желанию программа готова проверять наличие писем на сервере через заданный интервал (по умолчанию предлагается 10-минутный). Настоятельно рекомендую открыть вкладку «Отображение» > «Общие» и указать предпочитаемые вами гарнитуру и размер шрифта сообщений - изначальные параметры вряд ли устроят большинство пользователей.

Можете не беспокоиться о корректности отображения экзотических кодировок: видимо, японский разработчик знаком с данной проблемой и поэтому не мудрствуя лукаво предлагает использовать UTF-8 по умолчанию («Отображение» > «Кодировка»). Всего же поддерживается более 20 различных кодировок. Японцы - люди педантичные и трудолюбивые: г-н Ямамото не поленился организовать гибкую фильтрацию («Настройка» > «Настройка фильтра») и создать шаблоны для писем, а также поисковый модуль, позволяющий оперативно находить в почтовых залежах сообщения по ключевым словам.

К сожалению, возможности адресной книги не столь велики, как в системном Outlook Express. Добавление в нее новых контактов возможно двумя способами: командой контекстного меню и таинственным двойным кликом («Настройки» > «Общие настройки» > «Прочее» > «Другое»), вот только в каком месте следует кликать, остается загадкой. Зато настройки инструментария для уничтожения спама вполне понятны и расположены на вкладке «Спам» окна общих настроек.

Для убиения почтового мусора предлагаются два «бойца»: Bogofilter и Bsfil-ter, базирующиеся на алгоритме Байеса. При желании можно приказать этим «самураям» удалять спам на сервере при загрузке сообщений, но не следует забывать о процессе обучения антиспамерских фильтров на конкретных примерах легитимных и откровенно «мусорных» сообщений. Если вы планируете перемещать спамерские письма для последующей проверки в отдельную папку, создайте ее и укажите путь в параметрах антиспамерского модуля. Качество работы байесовских фильтров вам наверняка известно, отметим лишь, что результативность борьбы со спамом мы не могли проверить по простой причине: почтовые сервисы Mail.ru и Gmail не пропустили ни одного образчика назойливых рассылок. Впрочем, включив антиспамерский модуль, вы абсолютно ничего не теряете.

Интерфейс Sylpheed изменяется в меню «Вид»: можно задать «вертикальное» отображение элементов окна, скрыть текст выделенного сообщения и включить фрейм с деревом папок. По нашему мнению, возможности программы ничуть не хуже, чем у той же Windows Mail в Vista, если же абстрагироваться от отсутствия функции импорта (почты, адресной книги и параметров учетных записей), то функционал японского «почтальона» вполне сравним с тем, что предлагает Thunderbird, А единственный вышеупомянутый изъян с лихвой компенсируется отменным быстродействием Sylpheed.

Кроссплатформенное почтовое приложение Mozilla Thunderbird (www.mo-zilla-russia.org, 7 Мбайт, бесплатно) умеет не только оперировать электронной почтой, но и поддерживает чтение RSS-каналов, групп новостей, а также несет на борту толковый поисковый инструмент. С точки зрения функциональности среди аналогичных продуктов Thunderbird занимает промежуточное место между монструозными клиентами вроде MS Outlook и облегченными версиями, предназначенными только для работы с элек тронной почтой (Outlook Express). Имеющиеся в Thunderbird функции управления сообщениями и поиска реализованы столь же качественно, как и аналогичные фичи «взрослого» Outlook.

Встроенный инструмент борьбы со спамом (на основе байесовских фильтров) после минимального обучения легко идентифицирует рекламный «мусор», а уже одно наличие в Thunderbird плагина чтения RSS, на наш взгляд, оправдывает его загрузку и установку. Более того, пользователи могут наращивать функции Thunderbird посредством модулей, разработанных сторонними девелоперами. Не нужно опасаться рутины при создании учетных записей и переносе сообщений: в процессе установки предлагается импортировать имеющееся почтовое добро из того же Outlook Express. Ко всему прочему интерфейс Thunderbird практически не отличается от системного почтовика, а в чем-то даже и элегантней его (впрочем, это дело вкуса).

Portable-версия Thunderbird живет на Рог-tableApps.com, однако в ней встроенная русификация интерфейса отсутствует. Для исправления данного казуса нужно вначале установить расширение Locale-Switcher (addons. moziUa.org), а затем модуль локализации, ссылка на который расположена на русском зеркале проекта.