Программа для ускорение системы убунту. Ускорение работы Ubuntu с дисковой подсистемой

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

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

Операционная система Ubuntu и любая другая ОС Linux, позволяет это сделать, так как некоторые параметры, выставленные по умолчанию, имеют не совсем оптимальные значения. Это стремления разработчиков к универсальности и работе на любом типе компьютерного "железа" в ущерб производительности.

Немного теории

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

По большей части современный файловые системы Ext3 и Ext4 обладают хорошим быстродействием и их более тонкая настройка не требуется. Более пристальное внимание следует уделить работе оперативной памяти и дисковой подсистемы в целом.

Любая операционная система Linux, в том числе и Ubuntu, устроена так, что практически одновременно использует для хранения каких-то временных данных, оперативную память и файл подкачки - swap . Этот файл подкачки размещается на жестком диске и нужен для разгрузки ОЗУ при ее заполнении. Благодаря ему, у пользователя появляется возможность запускать тяжеловесные приложения с небольшим объемом оперативной памяти, где часть информации хранится на жестком диске. Как говорится: "медленно, но верно". Это точно также как в бизнесе, кто захочет платить лишние деньги за не полностью используемые производственные ресурсы или при заказе рекламы в Екатеринбурге , заказчик не будет переплачивать лишние деньги за избыточную рекламу, полный эффект которой останется не востребованным.

Почему данные хранятся "...практически одновременно..." в swap и ОЗУ?

Потому что Ubuntu устроенна так, что при заполнении оперативной памяти на 40%, происходит ее высвобождение в файл подкачки. Если взять за "стандартный компьютер" - компьютер с 2 Гб оперативной памяти (большинство современных нетбуков обладают даже меньшим объемом памяти - 1Гб), то можно подсчитать, что 40% от всей памяти - это 819,2 Мб (1024Мб * 2 * 0,4 = 819,2 Мб). Интернет-браузер Google Chrome, к примеру, в среднем потребляет порядка 200-300 Мб ОЗУ. Остальные браузеры потребляют примерно столько же. Но очень редко можно встретить пользователя, который бы не пользовался, наверное, главной возможностью современных ОС - многозадачностью и не запускал бы несколько приложений одновременно.

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

Из этого следует, что параметры работы оперативной памяти, которые выставлены в Ubuntu по умолчанию, не совсем подходят для повседневной работы.

Хотелось бы заметить, что никто не утверждает, что swap-файл не нужен в операционной системе и от его использования можно вообще отказаться. Просто его роль в работе операционной системы можно немного принизить.

Эта статья призывает к более оптимальной утилизации имеющейся ОЗУ, так как по умолчанию в ОС держится большое количество ОЗУ просто не используемой, тем самым "тормозя" операционную систему.

Ускоряем работы Ubuntu с дисковой подсистемой

Вся работа по ускорению Ubuntu для удобства разбита не несколько частей:

  1. Редактируем конфигурационный файл /etc/sysctl.conf :

    sudo nano /etc/sysctl.conf

    1. В самом низу этого файла есть параметр vm.swappiness , который как раз и отвечает за распределение оперативной памяти. По умолчанию он имеет значение 60, показывая, что в любом случае должно оставаться 60% свободной оперативной памяти. Для рабочих станций рекомендуется изменить это значение на 10. Должно получится так:

      vm.swappiness=10

      Если этого параметра нет, то необходимо его добавить в самом конце открытого конфигурационного файла!

    2. В конце этого файла рекомендуется еще добавить параметр vm.vfs_cache_pressure , который указывает размер используемого дискового кэша.

      Если Вы обладатель компьютера с SSD-накопителем , то для Вас будет актуален параметр:

      vm.vfs_cache_pressure = 50

      Если у Вас компьютер с "простым" жестким диском , то наибольшую отзывчивость можно получить при установке параметра:

      vm.vfs_cache_pressure = 1000

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

    Чтобы воспользоваться демоном preload в Ubuntu, необходимо его установить:

    sudo apt-get install preload

    Дальнейшей дополнительной настройки preload не требует.

  • После всех манипуляций необходимо перезагрузить операционную систему или выполнить:
  • Дополнительная информация

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

    echo 10 > sudo /proc/sys/vm/swappiness

    echo 1000 > sudo /proc/sys/vm/vfs_cache_pressure

    Для пользователей, которые не готовы работать с командной строкой и конфигурационными файлами, есть решение в виде графической утилиты для тонкой настройки операционной системы Ubuntu - , которая "умеет" это делать.

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

    Случайные 7 статей:

    Комментарии

    1. myr4ik07
      29 Август, 14:35
    2. myr4ik07
      29 Август, 14:43

      P.S. К тому же, сразу прирост производительности, используемый сие демон, не почувствует!

    3. Андрей
      29 Август, 15:07
    4. Danil
      29 Август, 19:49

      от 1 до 100 – это значение vm.swappiness, а 1000 для vfs_cache_pressure – справедливо. Mut@NT – спасибо за статью!

    5. Mut@NT
      30 Август, 11:54

      myr4ik07: Пожалуйста, источники в студию …

      О чем Вы? Статья написана с использованием большой кучи блогов и сайтов, которые копипастят контент откуда непоподя

      myr4ik07: Кстати, Вы забыли упомянуть, что работа демона preload будет заметна,если у использующего,будет большой объем, физического размера оперативной памяти.
      P.S. К тому же, сразу прирост производительности, используемый сие демон, не почувствует!

      Спасибо, за уточнение. Добавлю.

      Андрей: vfs_cache_pressure=1000 это ошибка? У этого параметра значения от 1 до 100 допустимы, и по умолчанию как раз 100 в ubuntu. Чем меньше значение, тем больше кэшируется.

      Вроде как у него нет ограничения.

    6. selius
      31 Август, 10:01

      Ubuntu 10.04, сделал по инструкции – не знаю есть ли хоть какой прирост производительности (или это скорее самовнушение) – уже как больше суток, полет нормальный! Хуже точно не стало =)
      За статью – спасибо!

    7. Mut@NT
      31 Август, 11:45

      selius: Ubuntu 10.04, сделал по инструкции – не знаю есть ли хоть какой прирост производительности (или это скорее самовнушение) – уже как больше суток, полет нормальный! Хуже точно не стало =) За статью – спасибо!

      Смотря как работаете с ОС. Если У Вас большое количество ОЗУ изначально, то, возможно, ее заполнение и не доходило до отметки разгрузки в файл подкачке.

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

    8. Комполюбитель
      31 Август, 05:42

      Я рушил проблему проещ, но дороже. Полностью отключил swap, убрал раздел подкачки и нарачтил оперативку до 8 Гб. теперь никаких лагов из-за сброса подкачки на диск

    9. Леана
      9 Июль, 02:02

      Делала по описанию, но в моем случае особого прироста не заметила, а вот apt-get install zram, вродь как полезнее оказался. Если кто захочет поэкспериментировать, то swappiness придется вернуть взад на 60, или не меньше 40, иначе фокус не получится.

    Если сейчас сравнить новые версии десктоп дистрибутива 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.

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

    Изменим поведение Ubuntu в отношении использования ОЗУ и подкачки (раздел swap). Есть такой параметр vm.swappiness , который по умолчанию имеет значение 60, и контролирует процент свободной памяти, при которой начнется активный сброс страниц в раздел swap. Иными словами, при 100-60=40% занятой памяти, Ubuntu уже начнет использовать раздел swap. При большом количестве ОЗУ в компьютере, лучше изменить параметр vm.swappiness до 10 и тем самым приказать Ubuntu не использовать swap пока занятая ОЗУ не достигнет 100-10=90%. Установим значение 10 вместо 60. В консоли введите следующую команду:

    Echo 10 > /proc/sys/vm/swappiness

    Sysctl -w vm.swappiness=10

    Для сохранения настройки после перезагрузки внесите в конец файла /etc/sysctl.conf следующую строку:

    Vm.swappiness=10

    Что бы сразу применить настройку:

    Sysctl -p

    В дополнение можно сказать еще о нескольких параметрах.
    В псевдофайле vfs_cache_pressure хранится значение - уровень выделяемой памяти под кэш. Значение по умолчанию: 100. Увеличение этого параметра заставляет ядро активнее выгружать неиспользуемые страницы памяти из кеша, т.е. количество выделяемой оперативной памяти под кеш будет расти медленнее, что в свою очередь снизит вероятность того, что будет задействован раздел swap. При уменьшении этого параметра ядро, наоборот, будет дольше держать страницы памяти в кеше, в том числе и в swap"е. Это имеет смысл при небольшом количестве ОЗУ, например, если у нас 512 МБ памяти, то параметр vfs_cache_pressure можно выставить равным 50. Это позволит сократить количество дисковых операций в swap разделе, так удаление неиспользуемых страниц будет происходить реже. Дальнейшее уменьшение этого параметра может привести к нехватке памяти.
    Если вы хотите ускорить работу системы и у вас достаточно оперативки (2 Гб и более), то измените значение системы, так: swappiness = 10 , vfs_cache_pressure = 1000 (по умолчанию 100) , внесите в файл /etc/sysctl.conf следующую строку:

    Vm.vfs_cache_pressure=1000

    или на лету:

    Sysctl -w vm.vfs_cache_pressure=1000

    Кэширование в Linux

    При записи данных на диск (любой программой) Linux кэширует эту информацию в области памяти, называемой Page Cache (страничный кэш). Информацию об этой области памяти можно посмотреть с помощью команд free, vmstat или top . Полную информацию об этой области памяти можно посмотреть в файле /proc/meminfo . Ниже приведен пример этой файла на сервере с 4-мя GB RAM:

    MemTotal: 3950112 kB
    MemFree: 622560 kB
    Buffers: 78048 kB
    Cached: 2901484 kB
    SwapCached: 0 kB
    Active: 3108012 kB
    Inactive: 55296 kB
    HighTotal: 0 kB
    HighFree: 0 kB
    LowTotal: 3950112 kB
    LowFree: 622560 kB
    SwapTotal: 4198272 kB
    SwapFree: 4198244 kB
    Dirty: 416 kB
    Writeback: 0 kB
    Mapped: 999852 kB
    Slab: 57104 kB
    Committed_AS: 3340368 kB
    PageTables: 6672 kB
    VmallocTotal: 536870911 kB
    VmallocUsed: 35300 kB
    VmallocChunk: 536835611 kB
    HugePages_Total: 0
    HugePages_Free: 0
    Hugepagesize: 2048 kB

    Размер Page Cache показан в параметре "Cached", в данном примере он составляет 2,9 GB. При записи страниц в память размер параметра "Dirty" увеличивается. При начале записи на диск будет увеличиваться параметр "Writeback" до тех пор, пока запись не закончится. Достаточно сложно увидеть параметр "Writeback" высоким, так как его значение увеличивается только во время опроса, когда операции ввода/вывода (I/O) поставлены в очередь, но еще не записаны на диск.
    Linux обычно записывает данные из кэша на диск с помощью процесса pdflush. В любой момент в системе запущено от 2 до 8 потоков pdflush. В файле /proc/sys/vm/nr_pdflush_threads можно посмотреть сколько в данный момент активных потоков. Каждый раз все существующие потоки pdflush заняты по крайней мере 1 секунду. Новые потоки пытаются записать данные в свободные очереди устройств, таким образом, чтобы на каждое активное устройство был 1 поток сбрасывающий данные из кэша. Каждый раз по прошествии секунды без какой-либо активности со стороны pdflush убирается 1 поток. В Linux можно настроить минимальное и максимальное количество pdflush потоков.

    Настройка pdflush
    Каждый поток pdflush контролируется несколькими параметрами в /proc/sys/vm:

    • /proc/sys/vm/dirty_writeback_centisecs (default 500): в сотых долях секунд. Этот параметр означает как часто pdflush возобновляет работу для записи данных на диск. По умолчанию возобновляет работу 2 потока каждые 5 секунд.
      Возможно недокументированное поведение, которое пресекает попытки уменьшения dirty_writeback_centisecs для более агрессивного кэширования данных процессом pdflush. Например, в ранних версиях ядра 2.6 Linux в файле mm/page-writeback.c код включал логику, которая описывалась "если запись на диск длится дольше, чем параметр dirty_writeback_centisecs, тогда нужно поставить интервал в 1 секунду". Эта логика описана только в коде ядра, и ее функционирование зависит от версии ядра Linux. Так как это не очень хорошо, поэтому вы будете защищены от уменьшения этого параметра.
    • code>/proc/sys/vm/dirty_expire_centiseconds (default 3000): в сотых долях секунд. Этот параметр указывает как долго данные могут находится в кэше, после чего должны быть записаны на диск. Значение по умолчанию очень долгое: 30 секунд. Это означает, что при нормальной работе до тех пор пока в кэш не запишется достаточно данных для вызова другого метода pdflush, Linux не будет записывать данные на диск, находящиеся в кэше менее 30 секунд.
    • /proc/sys/vm/dirty_background_ratio (default 10): Максимальный процент оперативной памяти, который может быть заполнен страничным кэшем до записи данных на диск. Некоторые версии ядра Linux могут этот параметр устанавливать в 5%.
      В большинстве документации этот параметр описывается как процент от общей оперативной памяти, но согласно исходным кодам ядра Linux это не так. Глядя на meminfo, параметр dirty_background_ratio расчитывается от величины MemFree + Cached - Mapped. Поэтому для нашей демонстрационной системы 10% составляет немного меньше, чем 250MB, но не 400MB.

    Когда pdflush начинает запись?
    В конфигурации по умолчанию, данные, записываемые на диск, находятся в памяти до тех пор пока:

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

    Процесс записи страниц
    Параметр /proc/sys/vm/dirty_ratio (default 40) - максимальный процент общей оперативной памяти, который может быть выделен под страничный кэш, до того как pdflush будет писать данные на диск.

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

    Рекомендации по оптимизации Linux для операций, требующих частой записи
    Обычно, при попытке увеличения производительности дисковой подсистемы сталкиваются с проблемой, что Linux буферизует слишком много информации сразу. Это особенно заметно для операций, требующих синхронизации файловой системы, использующих вызовы fsync. Если во время такого вызова в кэше много данных, то система может "подвиснуть" пока не закончится этот вызов.
    Другая частая проблема происходит потому, что слишком много требуется записать до того, как начнется запись на физический диск, операции ввода/вывода происходят чаще, чем при нормальной работе.

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

    В итоге получим
    В файле /etc/sysctl.conf вносим:

    Vm.dirty_background_ratio = 10 vm.dirty_ratio = 40

    После синхронизируем данные кэша и диска, очистим кэш и сохраним параметры:

    Sync; echo 3 > /proc/sys/vm/drop_caches; sysctl -p

    Чтобы уменьшить количество финализаций записи на диск необходимо подкорректировать:

    Vm.dirty_writeback_centisecs = 15000

    Перед тем как перейдем к ускорению работы Ubuntu, разберемся, почему же система со временем становится медленнее. На это может быть несколько причин. У вас может быть слабый компьютер с обычной конфигурацией. Вы могли установить несколько приложений, которые «съедают» ресурсы во время запуска системы. По сути, причин - бесконечное множество.

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

    Я использовал эти хитрости с более старой версией Ubuntu, но, думаю, их можно применять и на других версиях, а также на других дистрибутивах Linux, которые основаны на Ubuntu: Linux Mint, Elementary OS Luna и т. д.

    Уменьшите время загрузки экрана выбора.

    Этот экран дает 10 секунд на то, чтобы выбрать операционную систему, войти в режим восстановления и т. д. Мне кажется, этого времени слишком много. Если следовать этой системе, нужно сидеть рядом с компьютером и нажать на нужную клавишу, чтобы как можно скорее войти в Ubuntu. Это занимает некоторое время, не так ли? Первая хитрость - изменить время появления этого экрана выбора. Если вам удобнее использовать инструмент графического интерфейса, можно ознакомиться с материалами, в которых рассказывается об изменении времени и порядка загрузки в Grub Customizer .

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

    Sudo gedit /etc/default/grub &

    Нужно заменить GRUB_TIMEOUT=10 на GRUB_TIMEOUT=2 . Тогда время загрузки будет 2 секунды. Лучше не выбирайте 0 секунд, ведь тогда вы не сможете выбирать между входом в ОС и в режим восстановления. После изменения конфигурации введите следующую команду, которая закрепит изменения:

    Sudo update-grub

    Настройте автозапуск приложений.

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

    Итог: компьютер замедляется на большой промежуток времени после запуска. Зайдите в Unity Dash и найдите там Startup Applications:

    Там вы увидите все приложения с автозагрузкой. Подумайте, нет ли там приложений, которые вам не нужны при запуске ОС? Их можно убрать из этого списка.


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

    В таком случае можно отложить запуск приложений. Тогда вы освободите некоторое количество ресурсов, которые используются при загрузке ОС, а через какое-то время нужные приложения будут запущены автоматически. На экране с предыдущей картинки нажмите кнопку «Edit» и измените время запуска с помощью опции sleep.

    Например, если вы хотите отложить запуск индикатора Dropbox на, допустим, 20 секунд, нужно просто добавить в существующую команду вот это:

    Sleep 10;

    Тогда команда dropbox start -i меняется на sleep 20; dropbox start -i. Это значит, что Dropbox теперь будет запускаться с 20-секундной задержкой. Аналогично можно изменить время старта других приложений.


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

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

    Sudo apt-get install preload

    После установки перезапустите компьютер и забудьте об этом процессе. Он будет работать в фоновом режиме.

    Выбирайте лучшие зеркала для обновлений.

    Хорошо бы убедиться в том, что вы используете лучшие версии зеркал для обновления приложений. Хранилище софта «отзеркаливается» по всему миру в случае Ubuntu. Оптимизация состоит в том, чтобы использовать сервер, который находится ближе к вам территориально. Благодаря этому система будет быстрее обновляться, ведь сокращается время отправки пакетов к серверу.

    В Software & Updates -> вкладка Ubuntu Software -> Download From выберите Other , а затем кликните на Select Best Server :


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

    Для быстрых обновлений используйте apt-fast, а не apt-get.

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

    Sudo add-apt-repository ppa:apt-fast/stable sudo apt-get update sudo apt-get install apt-fast

    Уберите из apt-get обновлений ign, который относится к языкам.

    Когда-нибудь обращали внимание на то, что выдает sudo apt-get обновление? Оно содержит три типа строк: hit, ign, get. Если взглянуть на строки ign, можно заметить, что они в основном связаны с переводом языков. Если вы пользуетесь приложениями и пакетами на одном языке, вам не нужен перевод на него же.

    Если вы уберете из apt-get обновления, связанные с языком, то скорость apt-get немного увеличится. Для этого откройте такой файл:

    Sudo gedit /etc/apt/apt.conf.d/00aptitude

    Добавьте в конце этого файла следующую строчку:

    Acquire::Languages "none";

    Уменьшите перегревание.

    Перегревание - частая проблема, которая встречается у большинства компьютеров. Перегретый компьютер довольно медленно работает. На открытие программы уходят столетия, когда вентилятор процессора крутится со скоростью Усэйна Болта. Существует 2 способа, позволяющие уменьшить степень нагревания, а значит и повысить эффективность работы Ubuntu, оптимизация тоже будет лучше. Это TLP и CPUFREQ.

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

    Sudo add-apt-repository ppa:linrunner/tlp sudo apt-get update sudo apt-get install tlp tlp-rdw sudo tlp start

    После установки вам ничего не нужно делать. TLP работает в фоновом режиме.

    Чтобы установить индикатор CPUFREQ, воспользуйтесь следующей командой:

    Sudo apt-get install indicator-cpufreq

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


    Настройте LibreOffice, чтобы эти программы работали быстрее.

    Если вы часто пользуетесь офисными программами, тогда вы, может быть, захотите настроить LibreOffice ради ускорения работы. Здесь будет настраиваться память. Откройте LibreOffice, зайдите в Tools -> Options . Там из левого столбца выберите Memory и включите Systray Quickstarter, увеличьте распределение памяти.


    По возможности пользуйтесь более легким интерфейсом.

    Если вы пользуетесь обычным интерфейсом Unity или GNOME, возможно, вам будет интересно перейти на более простые интерфейсы вроде Xfce или LXDE.

    Эти интерфейсы меньше используют ОЗУ и тратят мощность процессора. В них также есть программы небольшого размера, которые также позволяют ускорить работу Ubuntu.

    Конечно, эти интерфейсы могут выглядеть не настолько современными, как Unity или GNOME. На такой вот компромисс вам придется пойти.

    Используйте более легкие по размеру версии приложений.

    Это скорее просто предложение, так этот вопрос зависит от личных предпочтений. Многие стандартные или популярные приложения тратят много ресурсов и могут не подходить для компьютера низкой мощности. В таком случае следует искать альтернативы таким приложениям. Например, вместо Ubuntu Software Center можно использовать AppGrid. Для установки пакетов подойдет Gdebi. Вместо LibreOffice Writer можно воспользоваться AbiWord.

    На этом заканчивается сборник советов, которые помогут устокрить Ubuntu 14.04, 16.04 и других версий. Уверен, благодаря выполнению данных трюков система будет работать гораздо лучше.

    В этой статье будет дан список советов по оптимизации 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), тогда смысла в этих программах нет.

    Уменьшить размер системных журналов (логов) 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

    Можно отключить поиск в Интернет-источниках (wikipedia) когда вы пишите что-то в поисковой строке меню 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 ).

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

    Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь - поддержите материально автора. Это легко сделать закинув денежек на Яндекс Кошелек № 410011416229354 . Или на телефон +7 918-16-26-331 .

    Даже небольшая сумма может помочь написанию новых статей:)

    Поделиться