Операция «Оптимизация». Советы по ускорению Ubuntu. Настройка Swappiness и кеширования в Linux Ubuntu большой объем записи при выключении

Если сейчас сравнить новые версии десктоп дистрибутива Ubuntu например с версией 14.04, вы должны были бы увидеть, что дистрибутивы Linux стали более «прожорливыми», да новые версии получили проблему в виде Unity которая жрет оперативку как слон и если у вас оперативной памяти меньше 2гб, будет не сладко. В сегодняшнем материале мы обсудим несколько способов более оптимального решения возникшей проблемы которые бы позволили уменьшить апетиты в использовании оперативной памяти. Первый, конечно же - это выбор легкого дистрибутива (Xubuntu или же Lubuntu и прочих). Второй способ, в данном случае мы постараемся уменьшить потребления памяти без ограничения в функциональности работы дистрибутива, для опытов мы выбрали Ubuntu 16.04 LTS.

Введение

Если вы только установили систему на компьютер который имеет два гигабайта ОЗУ, после первого запуска система будет кушать не меньше 1 Гб памяти. Вроде и не критично, но очень много, если взять хотя-бы в сравнение более маленький дистрибутив и сравнить потребление памяти. А если и запустить браузер например с 5-6 вкладками, то ваши 2 ГБ быстро израсходуются и вы увидите первые косяки в производительности прочие зависания браузера итд.

Рассмотрим что нам нужно в функциональности, а что нет.

  • Прежде всего список демонов которые загружаются по умолчанию. Разработчики Ubuntu, попытались сделать минимум, но в нашей ситуации стоит обратить внимание на то, что в зависимости от степени использования дистрибутива, много функционала может быть вовсе лишним, что в итоге может быть отключено и не будет кушать оперативную память.
  • Так же стоит обратить внимание на приложения которые вы не используете. Разное ПО использует плагины, которые реализуются в большей части случаев в виде загружаемых библиотек. В данной ситуации не лишней будет тонкая настройка и отключение ненужного. Стоит вспомнить и о графической подсистеме компоненты которой не всем нужны отключив которые можно немного высвободить оперативной памяти.

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

Отключаем лишние службы / сервисы

В Ubuntu 16.04 используется systemd, чтобы посмотреть ПО которое запускается во время начальной загрузки, мы можем использовать следующую команду:

Sudo systemctl list-units --type service

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

Список загружаемых сервисов systemd

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

Sudo systemctl disable apparmor.service

Apport - это служба которая предназначена для отправления отчетов об ошибках в Canonical. Да, вроде и полезный инструмент, но представьте ситуацию, у вас мобильный 3G интернет и это окно об ошибках постоянно маячит перед глазами, в данной ситуации имеет смысл отключить данную службу, иногда это окно уж очень слишком часто вылазит когда его не ждешь, я лично отключил сразу же после установки так как иногда оно просто выводит своими появлениями когда его не ждешь. Отключать ли вам, вы должны сами решить для себя. Для отключения набираем команду:

Sudo systemctl disable apport.service

Avahi - это демон который предназначен для обнаружения служб / компьютеров в домене.local. Вроде и удобная штука, но на практике, если у вас есть пара компьютеров в локальной сети, смысла держать этот демон активным нет, мoжете смело отключить:

Sudo systemctl disable avahi-daemon.service

CGManager предназначен для управления cgroup позволяя непривилегированным пользователям получать доступ к cgroup и предотвращая выход из текущего cgroup в родительский не исключение и привилегированные приложения. Если трезво мыслить, он может пригодиться лишь при создании вложенных контейнеров LXC, если вы их не используете и не пользуетесь песочницей, в которой все это может пригодиться для запуска программ, смело отключайте:

Sudo systemctl disable cgmanager.service

Colord используется для управления цветовыми профилями, позволяет отображать идентичные цвета как на экране компьютера так и на принтере. Если вам это не нужно и вы не планируете управлять цвeтами, у вас нет монохромного принтера или вовсе нет никакого принтера, отключайте не раздумывая:

Sudo systemctl disable colord.service

ModemManager - это интерфейс, позволяющий реализовать подключение к сети интернет используя мoдемы, каналы связи (2G/3G/4G/CDMA), способы соединения (RS232, USB, Bluetooth) и методoв управления (AT, QCDM, QMI, MBIM). Если у вас кабельный интернет и вы не планируете использовать модем, отключайте:

Sudo systemctl disable ModemManager.service

Speech Dispatcher - это унифицированный API, который имеет предназначение для изменения порядка вызова синтезатора, так же позволяет предотвратить наложения звука при использовании нескольких приложений и воспроизведении в них звука одновременно. Если вы не планируете использовать синтезаторы речи, отключайте:

Sudo systemctl disable speech-dispatcher.service

Whoopsie - эта служба имеет те же корни что и Apport, если вы ее отключили, так же стоит и поступить с Whoopsie. Прежде всего откройте конфиг /etc/default/whoopsie здесь нам нужно изменить значение в параметре report_crashes замени true на false, сохраняем и после отключаем службу:

Sudo systemctl disable whoopsie.service

Отключение компонентов программ и графической подсистемы

Если отключить графическую подсистему, то ваша Ubuntu будет использовать на 40%. Первое, о чем стоит вспомнить и что может существенно облегчить работу в ubuntu, это отключение онлайн-поиска, который в большей части никому не нужен вовсе. Чтобы отключить вы можете перейти в «Параметры системы -> Защита и приватность -> Поиск» и переключить «Отображать результаты поиска в интернете». Или же воспользоваться консольным способом и выполнить в терминале следующую команду:

Gsettings set com.canonical.Unity.Lenses remote-content-search none

Стоит вспомнить и о композитном менеджере Compiz, который имеет апетит как у слона и кушает вашу память сильнее, чем все остальные процессы. Чтобы умерить его апетиты, вам потребуется установить CompizConfig Settings Manager(после установки запустить):

Sudo apt-get install compizconfig-settings-manager ccsm

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

  • «Команды», если вы для комбинаций клавиш не задаете никаких команд, можете смело отключать; в Unity он не используется и никаких побочных последствий не вызовет если отключить.
  • Enhanced Zoom Desktop - это подобия «Экранной лупы». Если вам не нужно подобное ПО, отключайте.
  • Desktop Wall - это всем известный куб Compiz в 2D. Если вы не планируете использовать куб, отключайте.
  • Viewport Switcher - этот плагин, предназначен для переключения рабочих столов. Он так же создает нагрузки и если для вас он не нужен, отключайте.
  • В группе «Эффекты» можно отключить плагин: Animations и «Проявление/исчезание окон». Я в данном разделе вовсе все отключил и работаю без анимаций и без лишних красот так как в этом нет необходимости.
  • Session Management - предназначен для сохранения/восстановления положений и размера окон в сессии в промежутках между входом/выходом пользователя). Если вам это не нужно, отключайте как и я поступил.
  • При отключении лишних мусорных плагинов лучше всего перейти в вкладку «Все» и отключать ненужно лишь листая вверх или вниз где все будет под рукой.

Отключаем Compiz плагины через ccsm

Возьмем к примеру приложение Network Manager. В списке плагинов данного приложения имеется ofono, в том случае если вы не используете мобильные соединения не пользуетесь модемами и у вас лишь кабельный интернет, можете смело отключать если вы не планируете пользоваться модемами. Чтобы отключить, в терминале выполните команду sudo gedit /etc/NetworkManager/NetworkManager.conf в строчке Plugin удалите ,ofono и сохраните изменения.

Рассмотрим более пристально плагины Network Manager

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

Для отключения нужно сделать следующее, перейти в каталoг /etc/xdg/autostart:

Cd /etc/xdg/autostart sudo sed --in-place "s/NoDisplay=true/NoDisplay=false/g" onboard-autostart.desktop

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

Sudo sed --in-place "s/NoDisplay=false/NoDisplay=true/g" onboard-autostart.desktop

Посмотрим, что можно отключить:

  • Если вы не пользуетесь GPG, то gnome-keyring-gpg можете отключать, все равно системные утилиты будут напрямую обращаться к связке ключей.
  • Indicator-bluetooth, если вы не используете и не планируете использование Bluetooth, отключайте.
  • Indicator-messages предназначен для отображение входящих сообщений в почтовых клиентах, если не пользуетесь почтовыми клиентами, можете отключать, если пользуетесь, соответственно не отключать.
  • Indicator-printers - отображает подключение принтеры, если у вас нет принтера, отключайте.
  • Onboard-autostart - предназначен для запуска экранной клавиатуры, если не используете, отключайте, я отключил не раздумывая так как не пользуюсь ей и не планирую.
  • Orca-autostart - это экранная лупа, тот же мусор что и клавиатура, если у вас зрение хорошее, отключайте.
  • Print-applet - плагин который отображает задания на печать, как я писал выше к indicator-printers, если нет принтера, отключайте.
  • Telepathy-indicator - плагин который отображает уведомления от этого клиента, если вы им не пользуетесь, отключайте.
  • Update-notifier - плагин для уведомлений об обновлениях. Если вам не лень самому запустить процесс обновления, можете отключать.
  • Zeitgeist-datahub - плагин который имеет роль коллектора который запускает разные собиратели информации по технологии Zeitgeist. Эта технология регистрирует активного пользователя в целях восстановления хронологии событий. Да, стоит напомнить, что эта технология очень хорошо связана с Unity, чтобы ее отключить придется выполнить дополнительные манипуляции.

В первую очередь нужно закрыть доступ записи в файл БД для процесса zeitgeist-daemon, откройте терминал CTRL+ALT+T и выполним следующую команду:

Chmod -rw ~/.local/share/zeitgeist/activity.sqlite

Проверим, что этот процесс туда писать не может:

Zeitgeist-daemon --replace

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

Используем zRam для увеличения памяти

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

Для активации zRam, вам нужно установить следующие пакет:

Sudo apt-get install zram-config

после перезагрузиться. После чтобы проверить, посмотрите список ваших разделов подкачки:

Sudo swapon -s

Если все хорошо прошло, у вас на устройстве /dev/zram0 появится своп. По дефолту создается по одному на каждый процессор.

Вывод

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

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

Если у вас два гигабайта оперативной памяти, вместо нагрузочных приложений, например взяв офисный пакет LibreOffice Writer, вы можете заменить на более легкий AbiWord, вместо системного браузера который предустановлен по умолчанию Firefox, выберите более легкий, например Midori.

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

Де́мон (англ. daemon) - в системах класса UNIX - служба, работающая в фоновом режиме без прямого общения с пользователем. Демоны обычно запускаются во время загрузки системы. Типичные задачи демонов: серверы сетевых протоколов (HTTP , FTP , электронная почта и др.), управление оборудованием, поддержка очередей печати, управление выполнением заданий по расписанию и т. д. В зависимости от задач, выполняемых компьютером, некоторые из этих демонов можно отключить и, таким образом, сэкономить на времени запуска системы и уменьшить нагрузку на систему во время работы. Для этого воспользуемся утилитой sysv-rc-conf . Утилита эта консольная, но очень проста и интуитивно понятна, поэтому использовать ее могут даже люди с паническим страхом терминала. Установка:

sudo apt-get install sysv-rc-conf

Запускаем:

sudo sysv-rc-conf

В терминале получаем следующее: Управление осуществляется несколькими клавишами: Пробел - ставим/убираем крестик, + - - остановка/запуск процесса, Q - выход.

Цифры в верхей строчке - это уровни выполнения. Для отключения сервиса, надо просто убрать крестик со всех уровней.

    Acpi-support - Лучше оставить уровень по умолчанию. То есть: 2,3,4,5.

    Acpid - Демон acpi. Этот и предыдущий процессы отвечают за управление питанием и очень важны и для ноутбуков, и для рабочих станций, так что лучше оставить их включенными. По умолчанию: 2,3,4,5.

    Adjtimex - Инструмент для тонкой подстройки часов в ядре. Обычно в списке загрузки его нет. В исключительных случаях, если он всё же находится в этом списке, значит тому были веские причины и лучше оставить его включенным.

    Alsa - Если используется звуковая подсистема alsa, то да, запуск надо оставить. Но если у вас есть служба alsa-utils, то эту можно отключить. По умолчанию: выключена, если включена alsa-utils.

    Alsa-utils - В моей системе эта служба заменяет alsa, так что я выключил alsa и включил эту на уровне S. -Примечание- Говоря «Выключил» я подразумеваю - снял все «X» со всех уровней выполнения. Если у вас их и не было - замечательно. Продолжаем настройку. По умолчанию: уровень выполнения S.

    Anacron - Подсистема cron, которая выполняет любую его задачу, которая не была выполнена вовремя. Чаще всего такое случается, если в момент наступления задачи по cron ваш компьютер был выключен. Например, updatedb запланирован каждый день на 2 часа ночи, но в это время компьютер не работал. При запуске компьютера anacron попытается определить пропущенные задачи и выполнит их. Я убрал эту службу, поскольку не так часто выключаю свой ноутбук, но в большинстве случаев она должна быть включена. По умолчанию: 2,3,4,5.

    Apmd - Эта служба меня немного смутила. У меня уже включен acpid, так зачем мне включать ещё и apmd? Если ваш компьютер не настолько старый, чтоб даже не поддерживать acpi, попробуйте отключить эту службу. Я отключил. По умолчанию: 2,3,4,5.

    Atd - Планировщик, наподобие cron. Я отключил. По умолчанию: 2,3,4,5.

    Binfmt-support - Поддержка ядром других форматов бинарников. Я оставил. По умолчанию: 2,3,4,5.

    Bluez-utiles - Я выключил. У меня нет устройств bluetooth. По умолчанию: 2,3,4,5.

    Bootlogd - Оставьте запускаться. По умолчанию: S.

    Cron - Тоже надо оставить. По умолчанию: 2,3,4,5.

    Cupsys - Подсистема для управления принтером. У меня принтера нет, так что я смело отключил, но вы смотрите по обстоятельствам. По умолчанию: 2,3,4,5.

    Dbus - Система сообщений (Message bus system). Очень важна, оставьте включённой. По умолчанию: 2,3,4,5.

    Dirmngr - Утилита управления списками сертификатов. Работает заодно с gnupg. По умолчанию: 2,3,4,5.

    Dns-clean - В основном служит для очистки DNS при использовании соединений dial-up. У меня нет dial-up, так что я выключил. По умолчанию: S.

    Evms - (Enterprise Volume Management System) - система управления томами для ОС Linux. EVMS предлагает единые унифицированные механизмы для управления дисками, дисковыми разделами, файловыми системами, физическими томами LVM ит.д. Я выключил. По умолчанию: S.

    Fetchmail - Демон доставки электронной почты. Я выключил. По умолчанию: 2,3,4,5.

    Gdm - Менеджер рабочего стола (Gnome Desktop Manager). Я его в любом случае уже выключил, когда решил загружаться в консоль. В данном случае - дело предпочтений, так что решать вам, хотите ли вы загружаться напрямую в GUI . По умолчанию: 2,3,4,5.

    Gdomap - Я понятия не имею, зачем этот процесс должен запускаться. Я не видел этого демона больше ни в одной системе, так что я его выключил и не чувствую какой-либо утраты. Есть какие-нибудь причины для его использования на ноутбуках или рабочих станциях? По умолчанию: 2,3,4,5.

    Gpm - Поддержка мыши для консоли. Если вы чувствуете, что не можете обойтись без мыши в консоли - поставьте уровень выполнения 1 и 2. Это всё, что нужно. По умолчанию: 2,3,4,5.

    Halt - Не менять. По умолчанию: 0.

    Hdparm - Скрипт для подстройки жёсткого диска. Я отключил уровни 2,3,4,5, но установил уровень S. Я полагаю, что открытие DMA, 32-битного ввода-вывода и т.д. принесёт пользу остальным процессам. Также я сменил родной скрипт на очень простой, который сделал самостоятельно. Я думаю, не стоит производить все эти избыточные проверки, если я сам знаю, что делаю. Файл конфигурации - /etc/hdparm.conf. По умолчанию: 2,3,4,5.

    Hibernate - Если ваша система поддерживает спящий режим - оставьте службу работать. В противном случае она бесполезна. По умолчанию: S.

    Hotkey-setup - Этот демон включает некоторые специфические горячие клавиши в ноутбуках. Есть заводская поддержка: HP, Acer, ASUS, Sony, Dell, и IBM. Если у вас ноутбук этих производителей, можно оставить службу запускаться, в противном случае её запуск будет бесполезен. По умолчанию: 2,3,4,5.

    Hotplug и hotplug-net - Включение подсистем hotplug занимает время. Я бы задумался, включать ли их вообще. Я сделал несколько изменений в своём файле /etc/network/interfaces. Вместо того, чтобы адресовать свою беспроводную карту в процессе hotplug, я включил её в автоматический режим. Таким образом, я могу отключить эти процессы. Я удостоверился, что даже при их отключении, ubuntu находит драйверы usb, цифровой камеры и так далее. Так что, думаю, отключение этих процессов достаточно безопасно. -Примечание- Если после отключения hotplug ваша звуковая карта перестала работать, можно включить его обратно. Или можно отредактировать файл /etc/modules, чтобы добавить модуль драйвера звуковой карты. Более поздние работают быстрее, проверено. По умолчанию: S.

    Hplip - Подсистема печати и обработки изображений HP. Я отключил. По умолчанию: S.

    Hwtools - Утилита для оптимизации irq.

    Ifrename - Скрипт по именованию сетевых интерфейсов. Звучит красиво, но я отключил. Нужен, в основном, для управления именами нескольких сетевых интерфейсов. С тех пор, как у меня две сетевые карты - беспроводная и проводная - они обозначены ядром как eth0 и ath0, так что процесс для меня бесполезен. По умолчанию: S.

    Ifupdown и ifupdown-clean - Не отключайте. Это скрипты для включения сетевых интерфейсов при загрузке. По умолчанию: ifupdown - 0,6,S и ifupdown-clean - S.

    Inetd или inetd.real - Посмотрите в файл /etc/inetd.conf и закомментируйте все службы, которые вам не нужны. Если активных служб после этого не осталось - демон можно смело убирать из запуска. По умолчанию: 2,3,4,5.

    Klogd - Не выключать. По умолчанию: 2,3,4,5.

    Laptop-mode - Служба для проверки в ноутбуке: не пора ли выкинуть батарею. Бесполезна для стационарного компьютера. По умолчанию: 2,3,4,5.

    Libpam-devperm - Демон для восстановления прав доступа к файлам-устройствам после сбоя системы.

    Linux-restricted-modules-common - Нужно посмотреть, не загружены ли несвободные модули в систему. Эти модули можно найти в /lib/linux-restricted-modules. Если такие модули не используются - можно смело отключать демона. По умолчанию: 0,6,S.

    Lm-sensors - Если материнская плата поддерживает сенсорные чипы, можно посмотреть их состояние.

    Lvm - Я не использую, потому отключил. Оставьте, если у вас есть lvm. По умолчанию: S.

    Makedev - Не отключать. По умолчанию: 2,3,4,5.

    Mdamd - Инструмент для управления устройствами RAID . В большинстве случаев можно отключить. По умолчанию: 2,3,4,5.

    Mdamd-raid - Инструмент RAID . По умолчанию: S.

    Module-init-tools - Загружает дополнительные модули из файла /etc/modules. Можно посмотреть его содержимое на наличие ненужных модулей. Обычно включен. По умолчанию: S.

    Mountvirtfs - Монтирование виртуальных файловых систем. Не отключать. По умолчанию: S.

    Networking - Поднимает сетевые интерфейсы и конфигурирует DNS при загрузке, путём сканирования файла /etc/network/interfaces. Отключать не стоит. По умолчанию: 0,6,S.

    Ntpdate - Синхронизирует время с сервером времени ubuntu (или заданным другим). По умолчанию: S. -Примечание- Если второй системой стоит Windows, лучше оставить процесс включённым. Windows хранит в BIOS не универсальное (по Гринвичу), а локальное время и при перезагрузке из одной системы в другую они будут пытаться корректировать друг друга. В последних версиях эта проблема вроде бы исправлена.

    Nvidia-kernel - Я собирал драйвер nvidia самостоятельно, поэтому мне служба не нужна. Если используете несвободный драйвер nvidia - оставьте службу включённой. По умолчанию: 1,2,3,4,5.

    Pcmcia - Активирует устройство PCMCIA. Я поставил уровень выполнения в 0,6,S вместо умолчательных 2,3,4,5, поскольку, по моему мнению, оборудование надо подключать в первую очередь. С другой стороны, если устройства PCMCIA не используются, то и службу можно отключать.

    Portmap - Демон для управления такими службами, как nis, nfs, и т.д. По умолчанию: 2,3,4,5,0,6,S.

    Powernowd - Клиент для управления cpufreq. Нужен в основном для ноутбуков с поддержкой технологии изменения частоты процессора. Полезен для ноутбуков и наоборот для стационарных компьютеров. По умолчанию: 2,3,4,5.

    Ppp и ppp-dns - Мне не нужно. У меня нет dial-up. По умолчанию: ppp - 2,3,4,5 и pppd-dns - S.

    Readahead - Похоже, readahead это разновидность «предзагрузчика». Загружает при старте несколько библиотек в оперативную память, что позволяет некоторым программам быстрее стартовать. Но увеличивает время загрузки системы на 3-4 секунды. По умолчанию: S.

    Reboot - Не менять. По умолчанию: 6.

    Resolvconf - Автоматически настраивает DNS в соответствии со статусом сети. По умолчанию: S.

    Rmnologin - Убирает nologin, если находит. У меня такого не будет, я убрал. По умолчанию: 2,3,4,5.

    Rsync - Демон rsync. Можно убрать, если не уверены, что он вам нужен. По умолчанию: 2,3,4,5.

    Urandom - Генератор случайных чисел. Нельзя угадать какому приложению, особенно в графике, может понадобиться. По умолчанию: 0,6,S.

    Usplash - Картинка при загрузке системы, с индикатором загрузки. Для полного отключения надо редактировать файл /boot/grub/menu.lst: закомментировать строку splashimage и убрать опцию splash из строки загрузки ядра. По умолчанию: 2,3,4,5.

    Vbesave - Утилита для настройки BIOS видеокарты. По умолчанию: 2,3,4,5.

    Xinetd - Сверхдемон inetd для управления другими демонами. Включать имеет смысл только в том случае, если есть демоны под его управлением.

Если Вы не уверены, за что отвечает служба, не отключайте ее. Отключение нужных служб может привести к полной или частичной неработоспособности как некоторых программ, так и системы в целом.

15 июля 2015

Список советов по оптимизации Ubuntu 14.04. Цель которых повысить скорость ее работы и удобство ее использования.

Автозагрузка программ в Ubuntu 14.04

Уже давно, в Убунту, есть графический интерфейс для управления автозапуском программ. Это программа "Автоматически запускаемые приложения" (gnome-session-properties ). Найти ее можно в главном меню Dash. Но в этой программе отображаются не все автоматически запускаемые программы. Часть из них скрыта. Чтобы это исправить нужно, в терминале, выполнить две команды:

sudo sed -i "s/NoDisplay=true/NoDisplay=false/g" /etc/xdg/autostart/*.desktop

sed -i "s/NoDisplay=true/NoDisplay=false/g" ~/.config/autostart/*.desktop

После этого, в программе "Автоматически запускаемые приложения" будут видны все автоматически запускаемые программы:

Отключайте программы осторожно. Если не знаете назначение программы, которую хотите отключить, найдите информацию о ней и прочитайте, прежде чем отключать.

Примечание по автозагрузке программ

В Ubuntu используется два типа автозагрузки:

  1. Автозагрузка вместе с графической оболочкой (Unity, GNOME и т.п.).
  2. Автозагрузка вместе с ядром системы, в текстовом режиме.

Программа "Автоматически запускаемые приложения" управляет первым типом загрузки. Физически же такая загрузка выполняется через.desktop файл программы (аналог ярлыков Windows), который помещается в одну из двух папок:

  1. /etc/xdg/autostart
  2. ~/.config/autostart

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

Можно в эти папки копировать ярлыки нужных программ даже вручную. Ярлыки всех доступных программ размещены в папке /usr/share/applications (из этой папки их берет Dash). После копирования ярлыка в нем нужно для свойства "X-GNOME-Autostart-enabled " указать значение true.

Предварительная загрузка программ на старте Ubuntu

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

Во многих советах по оптимизации Ubuntu упоминают программу preload . Ее установку можно выполнить через терминал:

sudo apt-get install preload

sudo touch /var/lib/preload/preload.state

sudo chmod 644 /var/lib/preload/preload.state

/etc/init.d/preload restart

Однако прямо "из коробки" в Ubuntu устанавливается еще одна программа для этой же задачи - ureadahead . Нужно только включить ее автозапуск.

Примечание

Использование таких программ имеет смысл только в том случае если на компьютере установлен механический (HDD) диск. Если диск электронный (SSD), тогда смысла в этих программах нет, поскольку на SSD дисках фрагментация файлов очень слабо отражается на скорости их загрузки.

Уменьшить размер системных журналов (логов) Ubuntu

Ubuntu ведет целую кучу журналов. Как системных, так и журналов отдельных программ и служб.

Как правило все эти журналы хранятся в папке /var/log . Если эта папка размещена на разделе root (/) то в некоторых случаях возможно такое увеличение размера этой папки, когда будет забито все свободное место на разделе root, вплоть до невозможности запуска операционной системы. Это нетипичная ситуация, но такое случается.

Поэтому лучше настроить систему хранения журналов таким образом, чтобы снизить объем хранимой информации.

Лучше это сделать через настройку специальной программы logrotate . Эта программа удаляет архивные копии журналов с указанной периодичностью. Настройки программы хранятся в папке /etc/logrotate.d . Каждый файл в этой папке определяет управление журналами конкретной программы. Например файл /etc/logrotate.d/rsyslog это управление системными журналами. Для уменьшения размера хранимых журналов, в этих файлах нужно указать параметры rotate 0 и daily . Можно также добавить и ограничение по размеру журнала, например size 10M (10 мегабайт).

sudo gedit /etc/logrotate.d/rsyslog

И затем отредактировать этот файл. Так же можно сделать с другими файлами в этой папке. Можно изменить глобальные настройки для программы logrotate , через файл /etc/logrotate.conf .

После изменения настроек ротации журналов, можно удалить все старые журналы (логи). Команда в терминале:

sudo find /var/log -type f -name "*.gz" -delete

Tmp папку в оперативную память

Можно переместить папку временных файлов в оперативную память. Через редактирование файла fstab:

sudo gedit /etc/fstab

и добавить строку tmpfs /tmp tmpfs defaults,noexec,nosuid 0 0

Однако делать это нужно с осторожностью.

Во-вторых в этой папке какие-то программы могут хранить данные, которые они используют после перезапуска системы.

Использование swap на диске

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

sudo gedit /etc/sysctl.conf

и в конец файла добавить строку: vm.swappiness=10

Затем выполнить перезагрузку параметров: sudo sysctl -p

Параметр vm.swappiness=10 указывает, что дисковый своп будет использован при заполнении оперативной памяти на 90%.

Изменение параметров кэширования записи на диск

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

Основные параметры:

  • vm.dirty_background_ratio - размер оперативной памяти для размещения подготовленных для записи страниц кэша.
  • vm.dirty_ratio - размер оперативной памяти для размещения общего кэша записи.

Вспомогательные параметры:

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

Все эти параметры записываются в файл sudo gedit /etc/sysctl.conf.

Пример 1. Увеличение размера кэша записи (ускорение работы системы):

  • vm.dirty_background_ratio = 50
  • vm.dirty_ratio = 80

Пример 2. Уменьшение размера кэша записи:

  • vm.dirty_background_ratio = 5
  • vm.dirty_ratio = 10

Узнать текущие значения этих параметров можно командой sysctl -a | grep dirty .

Изменять эти параметры нужно с осторожностью. Четко понимая их взаимное влияние, их связь с размером оперативной памяти, а также возможные побочные эффекты.

Увеличение размера кэша или интервалов времени может привести к потере данных при отключении питания или критическом сбое системы.

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

Ускорение меню Dash

Можно отключить поиск в Интернет-источниках когда вы пишите что-то в поисковой строке меню Dash. Через графический интерфейс: "Настройки - защита и приватность - поиск: отображать результаты поиска в Интернет".

Или через терминал: gsettings set "com.canonical.Unity.Lenses" remote-content-search none.

Кроме этого можно отключить и поиск коммерческих предложений в онлайн-магазинах. Команда в терминале:

gsettings set "com.canonical.Unity.Lenses" disabled-scopes "["more_suggestions-amazon.scope","more_suggestions-u1ms.scope","more_suggestions-populartracks.scope", "music-musicstore.scope","more_suggestions-ebay.scope", "more_suggestions-ubuntushop.scope","more_suggestions-skimlinks.scope"]"

Добавить кодировку Windows в текстовый редактор Gedit

Чтобы не было "кракозябр", при открытии текстовых файлов Windows, в редакторе Gedit нужно добавить кодировку Windows-1251. Команда в терминале:

gsettings set org.gnome.gedit.preferences.encodings auto-detected "["UTF-8", "WINDOWS-1251", "CURRENT", "ISO-8859-15", "UTF-16"]"

Скроллбары Unity традиционного вида

По умолчанию, в Unity, скроллбары скрываемые. Но можно сделать чтобы они были видны постоянно. Команда в терминале:

gsettings set com.canonical.desktop.interface scrollbar-mode normal

Простой MP3 плеер под Ubuntu

Из коробки в Ubuntu устанавливается музыкальный плеер rhythmbox. Он довольно большой и не особо удобный, в нем лишнего много. Можно его удалить и установить более простой и удобный плеер.

sudo apt-get remove rhythmbox

sudo apt-get install Audacious

Audacious небольшой плеер без лишних наворотов:

sudo apt-get install qmmp

Добавление клавиатурных сокращений для запуска программ

Часто используемые программы, как например Наутилус, можно запускать с клавиатуры, если назначить сочетание клавиш. Это делается через графический апплет "Настройки - Клавиатура - Комбинации клавиш":

В секции "Дополнительные комбинации" можно добавлять свои команды запуска и связывать их с клавишами.

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

Свернуть все окна (Открыть Рабочий стол) в Ubuntu

В Ubuntu 14.04, по умолчанию, свернуть все открытые окна можно с клавиатуры: Ctrl + Win + D . Кроме этого можно добавить кнопку на панель запуска, которая будет выполнять это же действие. Это делается через графический апплет "Настройки - Оформление - Режим":

Сочетание клавиш Ctrl + Win + D , на мой взгляд, неудобно. В Windows используется Win + D (такое сочетание было и в 11-х версиях Ubuntu). Для того чтобы изменить это сочетание нужно установить программу compizconfig-settings-manager . Затем запустить ее и в разделе "Рабочий стол" открыть "Ubuntu Unity Plugin ". Параметр "Show desktop " определяет сочетание клавиш для этого действия:

Для энтузиастов

Для тех, кто любит углубиться в настройки, могу посоветовать пару программ.

gsettings

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

Команда gsettings help выдаст список параметров. Например gsettings list-recursively выдает общий список схем, ключей и текущих значений.

dconf

Графическая программа. Также позволяет изменять системные настройки. Эту программу нужно устанавливать (sudo apt-get install dconf ).

Ускорение ЗАГРУЗКИ ubuntu
После загрузки ядра, в ubuntu начинает загружаться образ рам-диска (initial ramdisk, initrd). Если распаковать этот образ, можно убедится, что там очень много чего лишнего и распакованный он занимает чуть-ли не 25 мегабайт. Поэтому, желательно пересобрать все initrd-образы в системе только с необходимыми модулями. Но все не так сложно, как кажется. Открываем файл:

Sudo nano /etc/initramfs-tools/initramfs.conf

там строчку

MODULES=most

и заменяем ее на:

MODULES=dep

Все, теперь надо запустить команду:

sudo update-initramfs -k all -u

Она пересоберет для всех установленных ядер все найденные образы initrd. В будущем, для новоустановленного ядра, initrd будет генерироваться уже сам с этими параметрами, так что это нужно сделать всего один раз. Теперь файлы initrd будут весить примерно по 3 мегабайта запакованными и по 6-7 мегабайт – распакованными. Это частично сократит время загрузки и при этом не повлияет отрицательно на систему.

Скорость загрузки ОС также напрямую зависит от файловой системы, на которой стоит ОС. Дело в том, что с мелкими файлами лучше работает новая ext4 и старый reiserfs. Собственно, в дистрибутиве больше всего мелких файлов. Поэтому, рекомендую полностью переходить на ext4 – это намного уменьшит скорость не только загрузки ОС, но и саму работу с системой, программами и файлами.

Так-же, можно отключить предварительную проверку разделов жесткого диска во время загрузки ОС. Журналируемые файловые системы уже давно безопасны и проверять их желательно лишь после достаточно долгого использования, после небезопасного выключения компьютера, после глюков, ну и по желанию собственно. Отключать надо в файле “/etc/fstab”. Там в конце каждой строчки стоят две цифры. Нам нужна только последняя цифра, она и отвечает за проверку жесткого диска во время запуска ОС. Меняем эту цифру на ноль на нужных файловых системах. И все, больше ничего трогать не нужно.

При загрузке Ubuntu автоматически устанавливается политика Ondemand — то есть саморегуляция с помощью ядра. Естественно частота процессора падает до минимальной, что полностью не устраивает. Но можно по умолчанию включить политику Performance (максимальная частота процессора)

Выполняется команда

Sudo update-rc.d -f ondemand remove

На системе атлон64. Тормозил thunderbird, firefox. В режиме перфоманс эти программы работают заметно быстрее, взято

++++++++++++++++++++++++++++++++++++++++

УСТАНОВКА prelink ДЛЯ УСКОРЕНИЯ ЗАГРУЗКИ СИСТЕМЫ

Установка:

Sudo apt-get install prelink

Теперь открываем файл настроек

Sudo nano /etc/default/prelink

и меняем значение опции « PRELINKING » с «unknown» на «yes», вот так: PRELINKING =yes

Так же программа установит скрипт ежедневного запуска prelink, но в первый раз нужно запустить его вручную:

Sudo /etc/cron.daily/prelink

потом его будет незаметно, он станет включаться автоматически и ГОТОВО!

++++++++++++++++++++++++++++++++++++++++

ОПТИМИЗАЦИЯ системы при работе с ПАМЯТЬЮ

Настройка /proc/sys/vm/swappiness и /proc/sys/vm/vfs_cache_pressure .
В псевдофайле swappiness хранится значение (в целых процентах), это уровень свободной памяти, при котором система начнет активно сбрасывать память в своп. Значение по умолчанию: 60. Изменяется значение от 0 до 100.
В псевдофайле vfs_cache_pressure хранится значение — уровень выделяемой памяти под кэш. Значение по умолчанию: 100. Пределов значения, к сожалению не знаю.

Если вы хотите ускорить работу системы (особенно те, кому жалко не задействованой оперативки во время работы системы), то измените значение системы, примерно, так:
swappiness = 10 , vfs_cache_pressure = 1000:

Теперь сделаем, чтобы эти параметры применялись при загрузке системы.
Редактируем файл /etc/sysctl.conf

sudo nano /etc/sysctl.conf

добавим в конец файла строки

vm.swappiness = 10 vm.vfs_cache_pressure = 1000

++++++++++++++++++++++++++++++++++++++++

Можно отключить загрузку системы в графическом режиме, для ubuntu 9.10 и 10.04

Sudo nano /etc/default/grub

В этом файле в этой строке данная строка приводится к такому виду

GRUB_CMDLINE_LINUX_DEFAULT=»quiet ipv6.disable=1″

убирается слово splash и добавляется отключение ipv6 при загрузке системы, затем команда

Sudo update-grub

и готово.

++++++++++++++++++++++++++++++++++++++++

Если /boot идет отдельным разделом, то можно закоментировать его автоматическое монтирование при старте системы в файле /etc/fstab

++++++++++++++++++++++++++++++++++++++++

Еще можно задействовать утелиту rcconf для управления демонами системы
Назначение сервисов (дальнейшая информация взята с этого сайта:

acpi-support – отметка на S-уровне;
acpid – сервис для управления питанием, необходим и для ноутбуков, и для настольных компьютеров. Оставляем как есть;
alsa-utils – S-уровень;
anacron – подсистема планировщика cron, которая выполняет любые задания cron, не выполненные вовремя. Можно выключить;
apmd – устаревший сервис для таких же компьютеров. Отключаем;
atd – планировщик задач, наподобие cron. Можно отключать;
binfmt-support – поддержка ядром других форматов бинарных файлов. Оставьте как есть;
bootlogd – оставьте как есть;
cron – оставьте включенным;
cupsys – подсистема управления принтерами. Если у вас нет принтера – отключайте;
dbus – система Message bus system. Очень важная служба, оставьте ее включенной;
dns-clean – очистка информации о dns, актуальна для dial-up. Не грех и отключить.
gdm – менеджер рабочего стола Gnome. Не трогайте;
gpm – поддержка мыши в режиме консоли. Включите для службы runlevel 1 и 2;
halt – не изменяйте;
hdparm – скрипт настройки винчестера. Снимите отметки с 2, 3, 4, 5 уровней запуска, и добавьте S runlevel. Чем раньше будет запущена эта служба, тем лучше.
hotkey-setup – назначение “горячих клавиш” на ноутбуках. Поддерживаемые производители: HP, Acer, ASUS, Sony, Dell, и IBM. Нужно это или нет – решайте сами:
hplip – подсистема печати и изображений HP. Можно выключить;
klogd – Оставьте службу включенной;
linux-restricted-modules-common – проверьте, есть ли в вашей системе какие-либо загруженные ограниченные (restricted) модули. Они могут быть найдены в /lib/linux-restricted-modules;
makedev – не выключайте;
module-init-tools – загружает дополнительные модули из файла /etc/modules. Вы можете исследовать файл /etc/modules, и посмотреть есть ли здесь какие-то модули, которые Вам не нужны. Пусть будет включено;
networking – устанавливает сетевые интерфейсы и настраивает информацию dns в процессе загрузки, сканируя файл /etc/network/interfaces. Оставьте включенным;
powernowd – клиент для управления частотой процессора (cpufreq). В основном предназначен для ноутбуков, поддерживающих технологию CPU speed stepping. Желательно оставить как есть;
ppp and ppp-dns – нужно для обеспечения модемного подключения. Если dial-up’ом не пользуетесь, смело отключайте;
readahead – один из предзагрузчиков (“preloader”). При запуске этот сервис загружает некоторые библиотеки в память, так что некоторые программы запускаются быстрее. Хотя,на самом деле, отключение службы никак не отразится на работе системы;
reboot – не изменяйте;
rmnologin – удаляет nologin если таковой будет найдет. В общем, малополезная служба, отключаем;
rsync – демон rsync. Можно отключить;
sendsigs – посылает сигналы перед перезагрузкой или выключением. Оставьте все как есть;
single – активирует однопользовательский режим. Оставьте как есть;
stop-bootlogd – останавливает bootlogd на 2,3,4,5 runlevel уровнях. Оставьте как есть;
sysklogd – не трогайте;
udev – поддержка файловой системы userspace dev. Лучше оставить службу включенной;
umountfs – оставьте как есть;
usplash – “красивый” загрузочный экран, можно отключать;
vbesave – инструмент настройки BIOS’a видеокарты. Оставьте включенным. ondemand Контролирует частоту процессора, в режиме ondemand — уменьшает частоту, когда процессор используется слабо и повышает при возникновении нагрузки. Т.к. действует с задержкой — приводит к легким(или сильным) тормозам, лучше оставить выключенным если не вопрос пара дополнительных ватт энергии.

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

В ОС семейства Windows файл, служащий для хранения неиспользуемой оперативной памяти в области жесткого диска, именуется «файлом подкачки» (pagefile.sys).

Его организация реализована далеко не лучшим образом (мягко говоря!). В ОС Linux еще при установке создается отдельный раздел подкачки — «Swap», что гораздо лучше.

Файл подкачки Windows и Linux-swap, располагаются на HDD (жестком диске). Когда оперативной памяти становиться недостаточно, происходит выгрузка страниц памяти из ОЗУ на жесткий диск, а когда вы снова обращаетесь к файлам, находящимся в разделе подкачки (swap), они снова загружаются в оперативную память.

Вся проблема в том, что скорость чтения-записи жесткого диска HDD (даже самого быстрого) В РАЗЫ меньше скорости оперативной памяти. Вот это и ведет к замедлению работы компьютера и снижению производительности в целом.

Здесь есть два способа решения этой проблемы: использовать большие объемы ОЗУ или правильно настроить работу системы с файлом подкачки и swap.

Итак, в Ubuntu есть такой параметр, который контролирует процент свободной памяти, при которой начнется сброс страниц памяти в swap - vm.swappiness.

В Ubuntu по умолчанию он имеет значение равное - 60. Это означает, что при 40% занятой оперативной памяти начнется активный сброс страниц памяти в раздел swap, т. е. 100% — 60% = 40%.

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

Открываем терминал комбинацией клавиш Ctrl+Alt+T и выполняем команду:

cat /proc/sys/vm/swappiness

Такое значение параметра может быть полезно только для компьютеров с малым количеством оперативной памяти (512 -1024 МБ).

Если у вас современный компьютер или ноутбук с большим объемом ОЗУ (4-6, а то и 8 ГБ), то это вам вряд ли подойдет.

На многих форумах и блогах, посвященных Ubuntu рекомендуется выставить значение параметра vm.swappiness = 10 (т. е. 100% — 10% = 90%). Но, по моему личному опыту, при наличии оперативной памяти объемом в 6 ГБ можно повести себя и по-агрессивнее, выставив значение равным 0. В данном случае система будет обращаться к разделу swap только в крайнем случае.

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

Сделать это можно так.

Опять же открываем всемогущий терминал комбинацией клавиш Ctrl+Alt+T и выполняем в нем следующую команду:

sudo sysctl vm.swappiness=

После знака равенства выставите значение от 100 до 0 (в зависимости от объема вашего ОЗУ).

После этого попробуйте «погрузить» свою систему: открыть несколько браузеров с большим числом вкладок, покопировать большие файлы на внешние носители (это, кстати, является больной стороной linux-систем — скорость копирования на внешние носители. Но об этом как-нибудь в следующий раз) и тому подобное.

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

sudo gedit /etc/sysctl.conf

Перед вами откроется конфигурационный файл в текстовом редакторе gedit . В конце этого файла вставляем два следующих параметра без решетки перед ними:

vm.swappiness=0 vm.vfs_cache_pressure = 1000

Сохраняем файл. Он должен выглядеть, как на скриншоте внизу:

Перезагружаем компьютер. После перезагрузки выполняем в терминале:

sudo sysctl -p

Я, как уже было отмечено выше, выбрал параметр равным 0, фактически отключив раздел swap, т. к. для моего компьютера с шестью гигабайтами ОЗУ он оказался наиболее оптимальным. Вы можете выбрать значение параметра равным 10, как это рекомендовано на многочисленных форумах.

В качестве примера мне бы хотелось продемонстрировать загрузку оперативной памяти в Ubuntu 12.10 x64 с 6 ГБ ОЗУ.
Итак, я открыл три браузера - штатный Mazilla Firefox, Opera и Google Chrome с общим количеством вкладок около 40, аудиоплеер Clementine (кстати, довольно требовательный к ресурсам компьютера), Skype, торрент-клиент qBittorrent.
И вот скриншот htop (это довольно продвинутый консольный монитор процессов). Для установки набираем в терминале

sudo apt-get install htop


Я думаю, что все становится понятно: занято менее половины установленной оперативной памяти.
Поэтому если у вас много ОЗУ, то использовать раздел подкачки не имеет никакого смысла. Это будет только замедлять скорость работы компьютера!
В заключении могу сказать, что это не единственное, что можно сделать для ускорения работы Ubuntu. Об этом в следующих статьях. Подписывайтесь на RSS — канал!
Отличного настроения, быстрой работы компьютера и с наступающим Новым годом!
В качестве приятной неожиданности сегодня видео о том, каким увидели уходящий год сотрудники компании Google.