Разделы новостей
Последние новости:
Железо
Софт
Интернет
Наука и техника
Электронная коммерция

Разделы статей



Как сделать Linux быстрее?

Тебе надоело ждать, пока загрузится Linux на твоем стареньком компьютере или же просто хочется сделать его еще шустрее? В этой статье мы поговорим о способах повышения производительности вашей домашней Linux-системы. Оптимизировать будем мой домашний дистрибутив Mandrake Linux release 10.0 (Official) for i686 (ядро 2.6.3-7).

Как будем оптимизировать?








Разместить статью на этом сайте





Еще раз повторюсь: мы будем оптимизировать домашний компьютер, а не сервер сети, поэтому все сказанное относится именно к домашнему компьютеру.

Для начала оптимизируем загрузку операционной системы – приятно осознать, что теперь Linux загружается на 10 секунд быстрее, не так ли? Для этого нам нужно сделать:

  • Отключить поиск нового оборудования
  • Отключить ненужные сервисы

    Затем мы займемся оптимизацией работы всей системы, а для этого нужно сделать:

  • По возможности использовать файловую систему ext2
  • «Разогнать» винт
  • Перекомпилировать ядро

    Теперь обо всем этом, но по порядку.

    Ускорение загрузки системы

    Почему нужно отключать определение нового оборудования? Неужели ты каждый день устанавливаешь новую видео плату или меняешь сетевую??? Как правило, компьютер собирается, на него устанавливается операционная система, и о железе забываем до следующего апгрейда. Даже если ты ярый любитель апгрейда, надеюсь, тебе будет не трудно два-три раза в месяц ввести команду harddrake (в новых дистрибутивах - harddrake2), чтобы Hard Drake обнаружил установленное устройство? Программа harddrake в Linux Mandrake используется для поиска нового оборудования, в других дистрибутивах, в частности Red Hat, используются другие программы, например, kudzu. Что же касается целесообразности отключения harddrake, то данная операция позволяет сэкономить от двух до пяти-семи секунд при загрузке системы в зависимости от твоей конфигурации. Потом ее нужно будет запускать только после установки нового оборудования. Отключается harddrake очень просто: заходим в систему как пользователь root (или вводим команду su в терминале), запускаем программу drakxservices и отключаем harddrake в списке сервисов. Если у тебя установлен Red Hat, для отключения ненужных сервисов используется конфигуратор redhat-config-services. При следующей загрузке harddrake (или kudzu) запускаться не будет.


    Конфигуратор drakxservices


    Средство автоматического определения оборудования harddrake2


    Средство автоматического определения оборудования kudzu

    Теперь перейдем к самим сервисам. Их довольно много и при первом знакомстве с окном drakxservices часто хочется его закрыть. А вот этого делать-то и не нужно. Отключив неиспользуемые сервисы, мы убиваем сразу четырех зайцев:

  • Делаем быстрее загрузку системы
  • Закрываем возможные дыры в системе безопасности, поскольку то, что сервис запускается, это ни о чем еще не говорит: его нужно правильно настроить. Часто бывает, что админ, установив сервис, продолжает использовать его с параметрами по умолчанию. А этим и пользуются умные люди, которые учатся на ошибках других, а не на своих собственных.
  • Делаем работу быстрее, поскольку ненужные сервисы уже не «отъедают» оперативную память и ресурсы процессора
  • Делаем останов системы быстрее, поскольку, чем меньше сервисов запускается, тем меньше потом придется их останавливать

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

    adsl

    Управляет ADSL-соединениями. Тут все просто: если у тебя есть ADSL-соединение, тогда его нужно включить, в противном случае он даже не будет включен по умолчанию

    alsa (*)

    Инициализирует расширенную звуковую архитектуру Linux (Advanced Linux Sound Architecture).

    atd (*) (-)

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

    autofs (*) (?)

    Средство автоматического монтирования сменных носителей (CDROM, дискета) по требованию. Желательно включить (точнее, не отключать). Хотя лично я предпочитаю монтировать CDROM вручную, поэтому у меня этот сервис постоянно выключен – это уже как кому нравится. Определить его необходимость очень просто: посчитай, сколько раз за день ты используешь CDROM. Если за день меняешь 2-3 диска, а в основном работаешь с сетью или Интернетом, он тебе просто не нужен. Его вполне можно заменить сценариями cd-on (монтирование) и cd-off (демонтирование):

    
    Листинг 1. cd-on
    #!/bin/bash
    mount -t iso9660 /dev/hdd /mnt/cdrom
    

    В данном сценарии считается, что CDROM – это устройство /dev/hdd. Сценарий cd-off выглядит так:

    
    #!/bin/bash
    fuser /mnt/cdrom
    umount /mnt/cdrom
    eject
    

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

    crond (*) (-)

    Еще один планировщик, отключаем. Для домашнего использования он не нужен.

    cups (*) (?), cups-lpd

    Поддержка системы CUPS – Common Unix Print System, что в переводе означает «Общая система печати UNIX». Если у тебя нет принтера, можешь отключить CUPS. А вот если принтер есть, то он без этого сервиса печатать не будет. Второй сервис добавляет в CUPS поддержку устаревшей системы печати lpd. Его нужно включить, если в сети есть гадкий утенок (компьютер с Unixом, на котором установлена lpd), к тому же этот утенок хочет печатать на твоем CUPS-принтере.

    devfsd (*)

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

    dm (*)

    Это менеджер дисплея (Display Manager), если вы планируете использовать графический интерфейс (X Window), не стоит отключать данный сервис.

    fam (*)

    Демон следит за изменившимися файлами, используется GNOME и KDE, также отключать не желательно.

    harddrake (*) (-)

    Об этом мы уже говорили… Отключаем.

    httpd (*) (-)

    Это Web-сервер Apache. Зачем тебе на домашней машине Web-сервер??! Если ты программируешь для Web, можно запускать его уже после загрузки системы (service httpd start), чтобы он не занимал ресурсы системы, пока он не нужен. Вердикт: отключить.

    internet (*) (-)

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

    iptables (*) (-)

    Это файрвол (firewall). Пока мы его отключим. Я не говорю, что iptables – это плохо, но пока ты его не настроил, лучше его отключить.

    jserver (*) (-)

    Вот этот сервис меня насмешил: несколько раз я запускал drakxservices, но его не трогал, думал, что он связан с Java, а оказалось с … японцами. Первая буква от слова Japanese. Если ты не японец, смело отключай этот ненужный сервис.

    keytable (*)

    Данный сервис загружает выбранную раскладку клавиатуры, указанную в файле /etc/sysconfig/keyboard. Нужен для нормальной работы большинства систем.

    kheader (*) (?)

    Автоматическая регенерация заголовков ядра. В принципе, он и не сильно нужен, но я его оставил.

    mailman (*) (-)

    Я бы его назвал SpamMan. Легализированный инструмент спаммеров. В общем, средство менеджер для списка рассылок. Отключаем.

    mtink (?)

    Низкоуровневый драйвер для принтера Epson. Если у вас Epson, вам стоит включить этот сервис.

    mysql (*) (-)

    Сервер баз данных MySQL. На домашнем компьютере он не нужен, во всяком случае, при загрузке.

    netfs (*) (-)

    Обеспечивает монтирование удаленных сетевых файловых систем (NFS, SMB, NCP (NetWare)). Может пригодиться для работы в локальной сети, но если ты подключен только к Интернету, он не нужен.

    netplugd

    Демон netplugd обрабатывает различные события соединений, получаемые от ядра Linux, например, потеря соединения или получение сигнала несущей.

    network (*)

    Поддержка сети. Данный сервис отключать нельзя, поскольку в Unix, равно как и в Linux, даже функции печати (не говоря уже о X Window) требуют поддержки сети.

    nfs (*) (-), nfslock (*) (-)

    Отключаем оба эти сервисы, реализующие поддержку NFS (Network File System)

    numlock (*)

    Безобидный сервис, включающий режим ввода цифр на дополнительной клавиатуре.

    oki4daemon

    Если у тебя Windows-принтер OKI, включи этот сервис.

    partmon (*) (?)

    Лучше не отключать – данный сервис проверяет, скоро ли будет заполнен раздел. Хотя… вводи почаще df и будешь получать более полезную информацию об использовании разделов

    postfix (*) (-)

    Агент доставки почты. На домашнем компьютере он не нужен.

    proftpd (*) (-)

    Файловый сервер ProFTD. Зачем он тебе на домашнем компьютере???

    random (*)

    Улучшает качество генерации случайных чисел. Включи его: запуск не займет много времени.

    rawdevices (*) (-)

    Назначает raw-устройствам block-устройства. Нужен для Oracle и некоторых DVD- проигрывателей.

    smb (*) (-)

    Если не планируешь подключаться к сети Microsoft, отключи его. А даже если и планируешь, все равно отключи – включишь, когда настроишь Samba. Надеюсь, скоро мы поговорим и о настройке Samba, но об этом – в следующей статье.

    sshd (*) (-)

    На домашнем компьютере SSH (Secure Shell) просто не нужен. А если хочешь уберечь свои данные от родственников, придумай пароль поинтересней вместо 123456 или qwerty.

    syslog (*)

    Это системный журнал. Не нужно отключать его!

    xfs (*)

    X Font Server – сервер шрифтов X Window, не отключать!

    xinetd (*)

    Суперсервер xinetd - это основа основ - без него не будет работать большинство сетевых сервисов, таких как POP3, IMAP, FTP (если он не запускается отдельно) и др. Почему xinetd называется суперсервером? Да потому, что он отвечает за установление TCP-соединения, то есть он прослушивает пакеты и запускает необходимые программы для обработки информации. Таким образом, получается, что сервер inetd(xinetd) управляет другими серверами и потому называется суперсервером. Например, если в запросе клиента будет требование установить соединение с двадцать первым портом, то суперсервер вызовет сервер ftp, конечно, при условии, что соединение с 21-м портом разрешено (в противном случае клиент получит сообщение Connection refused). Конечно, не все так просто, как я описал, но данная статья ведь посвящена оптимизации Linux, а не серверу xinetd, поэтому подробно останавливаться на нем не будем.

    В зависимости от установленных пакетов, сервисы могут отличаться. Например, может быть установлен сервер DNS (сервис named), вместо postfix может использоваться sendmail, а вместо proftpd – wu-ftpd и т.д.

    Результат оптимизации: отключено минимум 17 сервисов? Попробуй перезагрузить компьютер. Ну как, быстрее? Если говорить конкретнее, то загрузка Linux на моей машине (Duron 1,6Mhz 256MB/40 GB Maxtor) стала на 8 секунд быстрее. Если до оптимизации загрузка с момента запуска сервисов (с момента появления надписи “Нажмите I для интерактивной загрузки”) до появления графического менеджера входа в систему занимала 17 секунд, то после оптимизации – всего 9 секунд. Теперь поговорим о памяти. Система загружается, я вхожу в систему, запускаю терминал и ввожу команду free. До оптимизации у меня свободными были 52 Мб оперативной памяти, то после отключения ненужных сервисов – 108 Мб. 8 секунд и 56 Мб свободной памяти – вот результат оптимизации


    До оптимизации


    После оптимизации

    Во время запуска системы производится автоматическое монтирование файловых систем, указанных в файле /etc/fstab. Монтирование файловой системы занимает определенное время - обычно не очень много времени, но если файловая система не одна, можно выиграть немного времени. Для этого открой файл /etc/fstab и закомментируй строки, описывающие файловые системы, которые ты редко используешь (или вообще не используешь). Отключать проверку ext2-разделов программой fsck я не рекомендую - те пару секунд не стоят возможной потери данных.

    Все новое – это хорошо забытое старое…

    Да, ext3 – это хорошо. Она позволяет защитить твои данные от сбоев, но ext2 работает быстрее. Тут уж приходится выбирать между скоростью и безопасностью. У тебя есть автомобиль? Как часто ты пристегиваешь ремни безопасности? Никогда? Тогда будем использовать ext2. Если тебе важна и скорость и безопасность, сначала идешь в магазин, покупаешь средненький ИБП (не более 50 долларов, можно и за 30 найти), а потом переходишь на ext2.

    Перейти на ext2 просто. Так как ext3 – это почти тот же самый ext2, только с журналом, то чтобы все вернуть назад, достаточно в /etc/fstab строку

    /dev/hda1 / ext3 defaults 1 0

    Заменить строкой

    /dev/hda1 / ext2 defaults 1 1

    И так для каждого раздела. Потом нужно перезагрузить компьютер.

    Форсирование винчестера

    Тут ситуация двойственна. Форсаж подразумевает работу какого-либо устройства или механизма на пределе, из-за чего механизм, хоть и работает быстрее, но быстрее изнашивается. Мы не будем издеваться над своим винчестером, дабы продлить срок его жизни. Просто старые дистрибутив (и некоторые новые) не включают определенные функции, например, DMA или multcount. Большинство новых дистрибутивов по умолчанию используют оптимальные параметры для твоего винчестера. Конечно, можно

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

    Сначала узнаем скорость работы винчестера:

    # hdparm – t /dev/had


    Скорость чтения информации

    Данную команду нужно вводить от имени пользователя root. Лично я получил результат 57,64 Мб/с. Данный результат меня устраивает, поэтому я даже не пытался его увеличить, а просто еще раз запустил hdparm, чтобы просмотреть параметры винчестера.

    $ hdparm /dev/hda


    Параметры винчестера

    У меня все нормально:

  • Передача нескольких секторов (multcount) за такт включена (16 секторов)
  • Включена поддержка 32-битного ввода/вывода
  • Включено использование DMA

    На старом дистрибутиве (правда, для другого винчестера) я получил следующие результаты:

    
    /dev/hda:
    
    multcount = 0 (off)
    I/O support = 0 (default 16-bit)
    unmaskirq = 0 (off)
    using_dma = 0 (off)
    keepsettings = 0 (off)
    nowerr = 0 (off)
    readonly = 0 (off)
    readahead = 8 (on)
    

    Тут полный непорядок: multcount выключен, DMA не используется, поддержка 16- битного ввода/вывода тоже выключена. С такими параметрами винчестер выдавал лишь 3,75 Мб/с. Исправить это помогла команда:

    # hdparm –d1m8c3u1 /dev/hda1

    Теперь разберемся, что же мы сделали этой командой. Во-первых, мы включили DMA (d1), затем разрешили передавать более одного сектора за такт (8), а также включили 32- битный доступ к диску (команда с3). Кстати, параметр u1 полезен и в тех случаях, когда у тебя начинает «заикаться» xmms во время прослушивания музыки. Можно поэкспериментировать и с другими параметрами hdparm, узнать о которых можно в справке (man hdparm).

    Для сохранения параметров контроллера IDE используется команду:

    # hdparm -k 1 /dev/hda

    При перезагрузке системы параметры IDE теряются, поэтому команду «разгона» винчестера нужно поместить в сценарий запуска системы. Просто добавь команду вызова hdparm в файл /etc/rc.d/rc.local. Этот способ является наиболее универсальным, поскольку он позволяет установить отдельные параметры для разных жестких дисков, если их несколько. Второй, менее универсальный, способ заключается в редактировании файла /etc/sysconfig/harddisks,в котором можно задать общие параметры для всех жестких дисков.

    Есть еще один «подводный камень» состоит в следующем: при пробуждении системы в нормальное состояние после «сна» параметры контроллера также сбрасываются. Этого можно избежать, если подправить файл конфигурации демона apmd, который отвечает за управление питанием. Параметры контроллера IDE, которые устанавливаются при переходе системы в «спящий» режим и выходе из него, задаются строками HDPARM_AT_SUSPEND и HDPARM_AT_RESUME в файле конфигурации /etc/sysconfig/apmd.

    Файлы конфигурации, расположенные в каталоге /etc/sysconfig, имеются только в системах, подобных Red Hat -- это Red Hat Linux, Mandrake Linux, SuSE Linux, ASP Linux, Back Cat Linux, ABI Linux и другие

    Перекомпилирование ядра

    Подробно рассматривать процесс перекомпилирования ядра не будем – этому посвящено очень много статей. В принципе, ядро можно и не перекомпилировать, но все-таки лучше это сделать. Разработчики дистрибутива не знают, на какой компьютер будет устанавливаться их дистрибутив, поэтому ядра идут универсальные – для процессора 586/686. У тебя же установлен совершенно другой процессор. Поэтому первое, что нужно сделать – это в утилите конфигурирования ядра установить твой тип процессора. Затем пройтись по всем функциям ядра и решить, нужны ли они тебе? Каждая функция «отъедает» кусочек оперативной памяти. Если функция не нужна (или не нужна в ближайшее время), ее нужно выключить или, по крайней мере, попытаться включить в состав ядра в виде модуля. В этом случае она не будет занимать память, когда она не нужна, а будет загружаться только по требованию ядра. Наоборот, те функции, которые тебе точно необходимы, нужно стараться включить в ядро (не в виде модуля!). В этом случае они будут работать быстрее. Только тут нужно не перестараться, а то можно получить гигантское и неповоротливое ядро.

    Не хватает памяти???

    Система может изрядно притормаживать, если ей не хватает памяти. Возможно, у тебя всего лишь 128 Мб оперативки, а при создании своп-раздела ты пожадничал и отвел для него всего 64 Мб (или вообще не создавал его). Что ж теперь делать? Неужели опять переразбивать винт? Нет, можно просто создать своп-файл. Для этого сначала создай пустой файл /swap/sw-file (в примере - размер 32Мб) с помощью команды dd:

    dd if=/dev/zero of=/swap/sw-file bs=1k count=32768

    Примечание.Эта команда читает данные с устройства /dev/zero и записывает их в файл /swap/sw-file. В качестве данных будет просто поток нулей, причем не чисел ноль (ANSII-код 48), а неотображаемых символов NULL (ANSII-код 0). Данные читаются и записываются блоками по 1 Кб (bs=1k), и общее количество блоков равно 32768. Таким образом на выходе будет получен файл размером 32 Мб, заполненный символами NULL. Действия по созданию такого файла очень сходны с действиями, производимыми программой fdisk при создании нового раздела.

    После этого отформатируй данный файл под своп:

    mkswap /swap/sw-file 32768

    После создания файла подкачки, его нужно активизировать. Команда swapon -a включает все разделы свопинга (описанные в файле /etc/fstab), а команда swapon включает только конкретный раздел. Команда swapon -a обычно помещается в сценарий загрузки системы. Обычно это /etc/rc.d/rc.sysinit для систем, использующих инициализацию типа SysV -- RedHat, Mandrake, Debian (хотя RedHat и Mandrake используют несколько модифицированную схему инициализации, но суть та же) или /etc/rc/rc.S для BSD-подобных Linux-систем (Slackware). Для подключения нашего файла подкачки необходимо выполнить команду

    swapon /swap/sw-file.


    Создание файла подкачки

    На этом оптимизация Linux завершена, вопросы и комментарии рад буду выслушать по e- mail.



    www.dkws.org.ua

    Различные операционные системы 08-09-2006
    На предстоящей неделе Microsoft выпускает закрытую бета-версию Service Pack 2 для Vista 28-10-2008 Различные операционные системы
    На предстоящей неделе корпорация Microsoft выпустит первую закрытую бета-версию пакета обновлений Service Pack 2 для операционной системы Windows Vista. В пакете SP2 заявлено множество нововведений, в том числе встроенная поддержка работы с форматом Blu-ray.Майк Нэш, руководитель отдела разработки Windows, напомнил, что с прошлого года Microsoft начала выводить клиентские и серверные версии своих ОС на единый и синхронный цикл выхода основных нов...


    Информация, необходимой для устранения проблемы синего экрана Windows XP 22-08-2008 Различные операционные системы
    Операционная система Windows XP славится своим умением зависать по самым разным поводам и с самыми разными результатами. Иногда решить проблему можно просто завершением неотвечающего приложения или перезагрузкой, но в некоторых случаях это может привести к сбою всей системы. Microsoft называет такие сбои «стоп-ошибками» (Stop errors), потому что в подобных случаях система перестает реагировать на действия пользователя. При возникновении стоп-ошиб...


    Microsoft тратит 300млн. долларов на раскрутку Windows Vista 22-08-2008 Различные операционные системы
    Корпорация Microsoft готова инвестировать $300 млн на PR-камапнию для Windows Vista. По мнению ведущих маркетологов, этой суммы должно с лихвой хватить для поднятия имиджа операционной системы, которая оказалась не совсем удачной для Microsoft. В основном вся критика по поводу данной ОС сводилась к трем факторам:1. Проблемы с совместимостью оборудования и программного обеспечения;2. Проблемы обеспечения безопасности;3. Потеря производительности.С...


    Microsoft выпускает новую Windows XP для работы на ноутбуках OLPC XO 28-07-2008 Различные операционные системы
    В рамках ранее объявленного сотрудничества между некоммерческим фондом One Laptop Per Child (OLPC) и Microsoft было достигнуто соглашение о выпуске специализированной версии WindowsXP, предназначенной для работы на "стодолларовых" детских ноутбуках XO. Об этом сообщил Джеймс Уцшнайдер, менеджер Microsoft по развивающимся рынкам.Спецверсия Windows XP будет иметь драйверы для загрузки ОС с карты памяти SD, а также получит принципи...

    Навигационная система "хлебные крошки" (breadcrumb) как замена кнопке "Вверх" в Vista 18-06-2008 Различные операционные системы
    Как вам уже, наверное, известно, я нахожусь в постоянном поиске полезных гаджетов и утилит типа PowerToy, расширяющих возможности операционной системы Windows Vista. Во время недавней охоты я наткнулся на ряд программ, разработанных для добавления в интерфейс проводника Vista кнопки «Вверх» (Up).Кнопка «Вверх»Неудивительно, что появилось множество утилит для добавления кнопки «Вверх» в интерфейс Проводника Vista — мы привыкли пользоваться ей для ...
  •  

     
    Copyright by www.scripts.net.ua.
    Rambler's Top100 Рейтинг@Mail.ru