06 января 2014

Как ускорить загрузку программ в Ubuntu/Linux Mint и производные

В этой статье мне хотелось бы рассказать о двух утилитах, которые помогут ускорить работу системы Linux, а конкретно — запуск приложений: prelink и preload.

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

2. Preload кеширует часто запускаемые программы и библиотеки в памяти системы. После некоторого использования демон составляет список  часто запускаемых программ и будет держать их в памяти для повторных запусков.
Примечание. Кеш (Cache) — накопитель, быстродействующая память, куда складываются программы, с которыми вы работаете.

Обе утилиты есть в Центре приложений Ubuntu/Менеджере программ (Linux Mint), откуда вы можете их установить, а лучше следуйте инструкции, которая поможет не только установить, но и настроить.

Установка и настройка Prelink

Выполните следующую команду в терминале для установки:

sudo apt-get install prelink

Следующая команда применит предварительное связывание ко всем выполняемым файлам:

prelink --all

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

sudo gedit /etc/default/prelink

Найдите строку и измените параметр:

PRELINKING=unknown
на
PRELINKING=yes


 А теперь запустите prelink:

sudo /etc/cron.daily/prelink

Установка Preload

Выполните следующую команду:

sudo apt-get install preload

Как правило конфигурация preload после установки, по умолчанию не требует изменений.

Заключение

Почему не одна программа, а две? Всё просто. Prelink, запускается раз в день и модифицирует ELF файлы. Preload программа-демон, которая постоянно отслеживает интенсивность запуска программ и на основании собранной статистики загружает компоненты в память.

Вот и всё. Теперь вы можете проверить скорость запуска программ в системе.

Удачи.

37 комментариев :

  1. Володя такое ощущение что ты никогда не спишь )))

    ОтветитьУдалить
  2. Есть мнение, что prelink больше не нужен
    https://www.google.ru/search?q=Prelink++DT_GNU_HASH&hl=ru&cad=h

    ОтветитьУдалить
    Ответы
    1. есть мнение, что preload тоже (при наличии SSD)

      Удалить
  3. Я понял в паре лучше. А по отдельности от какой толк больше? Или (preli) скрипач не нужен?

    ОтветитьУдалить
    Ответы
    1. В Заключении к статье даётся пояснение:
      Prelink, запускается раз в день и модифицирует ELF файлы.
      Preload программа-демон, которая постоянно отслеживает интенсивность запуска программ и на основании собранной статистики загружает компоненты в память.

      Удалить
  4. Что-то я не заметил разницы от использования Preload, раньше устанавливал всегда.

    ОтветитьУдалить
    Ответы
    1. Че-то я тоже не заметил. Надо будет на слабом ноуте попробовать.

      Удалить
    2. Ну, не знаю. У меня на стационаре сильно заметно увеличилась скорость открытия программ.

      Удалить
    3. Ноут dell a860 2008г.Действительно заметно.

      Удалить
    4. "Действительно заметно."
      это будет заметно -"на глаз" при пользовании слабого оборудования-как то HDD- при использовании SSD-этой проблемы нет -отклик менее 0.1 ms-смотрим скрин-
      http://4put.ru/pictures/max/821/2523766.jpg
      ранее ставил эти фичи-теперь нет- возможны проблемы при отключении и др-я думаю это лишнее-и что бы утверждать это-я ,конечно установил и проверил эти опции....

      Удалить
  5. "Действительно заметно."
    действительно-когда заметно время отклика приложений-пожалуйста дайте скрин до -и после применения-тогда уже будет видно-что заметно

    ОтветитьУдалить
  6. Ну, Дримыч, ты и загнул! Разьве здесь кто-то обязан что-то доказывать. Люди высказывают свое субъективное мнение. А скриншотами мериться это че-как пиписьками? Если у меня системный монитор 2-3 секунды думал, а сейчас сразу после нажатия...В общем не будем мерится. С Рождеством всех, наступающим!

    ОтветитьУдалить
    Ответы
    1. "Если у меня системный монитор 2-3 секунды думал"
      странно-при чём здесь системный монитор-ведь есть же универсальная утилита ,что под гном что под кде -установи и посмотри время отклика-вот и всё,я её и показал на скрине-и при чём здесь чем то меряться-это собственно для себя-для самоконтроля,не более того...набери в синаптике ,установи ,посмотри ,сравни-и потом обозначь свои впечатления....да и конечно -с наступающим Праздником всех,всех читателей и участвующих в создании этого блога!

      Удалить
    2. "Ну, Дримыч, ты и загнул!"
      нечего гнуть...)))
      http://4put.ru/pictures/max/821/2524014.jpg

      Удалить
    3. "Если у меня системный монитор 2-3 секунды"
      это жесть-такого не должно быть..Что хоть за система...а либр или фото у тебя что ли за 5 сек открываться будут?

      Удалить
    4. "А скриншотами"
      кстати, очень простая и примитивная утилита-glxgears- наберите в терминале и посмотрите fps- с проприетарными драйверами на видеокарту и со свободными...

      Удалить
  7. Запуск программ в системе реально ускорился-подтверждаю!Спасибо за статью!!

    ОтветитьУдалить
  8. Они реально работают!!! У меня и без них машина летала, теперь не успеваю .Всё происходит мгновенно

    ОтветитьУдалить
  9. Использую связку preload+prelink уж лет 5-6. На слабых машинах (а их много в офисе) быстродействие заметно

    ОтветитьУдалить
  10. в связке действительно не успеваешь увидеть как окна мелькают%))

    ОтветитьУдалить
  11. а вот подскажите пожалуйста нужно ли их добавлять в автозапуск ? или они добавляются автоматом .

    ОтветитьУдалить
    Ответы
    1. Ничего не нужно добавлять в автозапуск. Сделать всё как в инструкции и всё будет работать.

      Удалить
  12. спасибо большое эффект действительно заметен KDE 4.11.3

    ОтветитьУдалить
  13. Владимир,команда prelink --all у меня вызвала небольшую проблемку:в конце процесса высветилось,- что связывания по каким-то причинам произойти не может.Но вот с sudo prelink --all всё пошло.

    ОтветитьУдалить
    Ответы
    1. логично.
      "prelink: Could not write prelink cache: Permission denied"
      Не хватает прав.

      Удалить
  14. Тебе тоже удачи! vladimir dolgirev

    ОтветитьУдалить
  15. Расскажите о Systemd и Ulatencyd. Как установить, чтоб работало.

    ОтветитьУдалить
  16. точно не знаю но по логике после установки preliad появилась вот такая ошибка при выключении/перезагрузки пк: https://www.youtube.com/watch?v=K5qJVRU-PZI
    как от нее избавиться?

    ОтветитьУдалить
    Ответы
    1. Ни какой ошибки здесь нет. Просто после установки preliad, при завершении работы системы, терминал выдаёт извещение о том, что все процессы будут убиты (killall), т.е. завершены. Только и всего.

      Удалить
    2. я о том что там красным пишется fail.
      переводчики переводят что это означает крах, сбой, неудача.

      Удалить
    3. Возможно это после первой перезагрузки компьютера. Попробуйте ещё раз перезагрузится.

      Удалить
    4. дело в том что эта проблема существует с середины декабря, как я понял появляется после установки preliad и за это время я много раз перезагружал пк и в том числе ставил разные версии хубунту но проблема остается.
      я думаю что для последних версий хубунту 14....16 прожка не актуальна или же не подходит к конфигурации моего пк.

      Удалить
    5. Если не ощущается ускорения запуска программ. Удали preload из системы: sudo apt-get purge preload

      Удалить
    6. Ну да, на 16.04 не работает.

      Удалить
  17. привет всем . скажите можно ли поднять фпс в играх через стим ? убунта 14.04 уж оч сильно проседает в частности warthunder и дота . говорят можно разогнать процессор ,подскажите пожалуйста ,за ранее спасибо .

    ОтветитьУдалить