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

110

Я хотел бы знать, каковы недостатки использования preload? Если бы не было недостатков, preloadбыло бы включено по умолчанию, поэтому я думаю, что есть некоторые.

Хорошо, вам нужно немного больше оперативной памяти, но у большинства людей гораздо больше оперативной памяти, чем в Ubuntu - так в чем недостатки использования preload?

Paradiesstaub
источник
6
Спасибо за ваш полезный вопрос. Я хочу знать, это миф?
Саид Заринфам
1
Использование процессора и батареи может быть недостатком для некоторых ... bugs.launchpad.net/ubuntu/+source/preload/+bug/481861
Mateo
1
Хороший вопрос Некоторые дистрибутивы поставляются с предзагрузкой, например, элементарная ОС (это то, что я запускаю на своем ноутбуке, потому что gala намного быстрее, чем единство Ubuntu).
1
Просто предположение: одной из причин, по которой он не включен по умолчанию, является тот факт, что он не может использоваться на всех системах (его требования к оборудованию могут отличаться от стандартных требований).
don.joey
2
brainstorm.ubuntu.com/idea/1122 сообщение здесь предполагает, что он «работает как демон с привилегиями root». Что может быть проблемой безопасности, есть также этот мозговой штурм, который хочет включить его по умолчанию brainstorm.ubuntu.com/idea/14092
Mateo

Ответы:

65

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

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

Второй пример - грабли. Как разработчик ruby, который верит в тестирование, я запускаю rake TON. Грабли запускаются, выполняются в течение пары секунд - затем завершаются. Предварительная загрузка помогает мне ускорить мою ежедневную работу, потому что она загружает rake и необходимые библиотеки (которые могут быть очень обширными) заранее. Таким образом, есть много запусков и остановок для бега граблей. Дополнительный таран, используемый для ускорения 400 или 500 запусков рейка в течение нескольких часов, полностью стоит того.

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

И наконец, при предварительной загрузке, даже если вы ее не используете, потребляется оперативная память. Поэтому, если вы не часто запускаете приложения, вы могли бы на деле замедлить работу всей системы, если бы не было доступной памяти для других типов кэширования. Помните, что даже если у вас 32 гигабайта оперативной памяти, Linux постарается использовать как можно больше для кэширования данных, чтобы ускорить ваше взаимодействие. Используя предварительную загрузку, вы уменьшаете объем свободной памяти. Даже если это будет чуть-чуть, 2 секунды, которые вы сохранили при запуске Chrome 1, могут стоить вам 60 секунд по сравнению с месяцем, в течение которого он работает.

coteyr
источник
1
Кроме того, использование предварительной загрузки замедляет загрузку. Чем больше загружено файлов, тем дольше будет работать ваша система. Теперь представьте, что все, что вы хотите сделать, - это загрузиться, написать предложение в заметке и сразу же завершить работу. Вы будете ждать, когда сможете написать заметку, потому что ваша система предварительно загружает вещи, которые, скорее всего, не связаны с этой задачей. Таким образом, в некотором смысле, преднагрузка (вообще) - это палка о двух концах.
F-3000
1
Предварительная загрузка на самом деле не работает таким образом ... Она дает ядру подсказки типа "эй, загрузите это в свой кеш, пока вы там, мне это понадобится в ближайшее время", и ядро ​​делает это. Так что на самом деле он не использует оперативную память, как вы это описали. Может произойти две вещи: загрузка в кеш выталкивает приложения, которые вы собираетесь использовать в ближайшее время, что приводит к кратковременному зависанию и активности жесткого диска, когда вы возвращаетесь к приложению.
hurikhan77
1
Во-вторых: если предварительная загрузка прогнозирует неправильную схему использования (что вполне может иметь место, если у вас постоянно загружаются приложения), она кэширует содержимое, которое впоследствии будет снова вытеснено из ОЗУ, и, в свою очередь, само вытеснит кеш из ОЗУ, которое вы, возможно, имели лучше использовать для. Но, в конце концов, он «потребляет» только оперативную память, как это делает кеш vfs - так что это фактически сбрасываемая память и, таким образом, «свободная память». Тем не менее, он конкурирует с «нормальным кэшем», как вы пишете.
hurikhan77
1
Учитывая приведенные выше отзывы coteyr и @ hurikhan77, вы согласны с тем, что Preload - это неэффективный способ улучшить воспринимаемую скорость на старых настольных компьютерах с низкой оперативной памятью (~ 800 Мбайт при запуске). К вашему сведению, активация Preload на таких отремонтированных коробках даст менеджеру виртуальной памяти ядра много работы для небольшого улучшения?
tuk0z
2
@lliseil Если эти 800 МБ действительно нераспределенной оперативной памяти, предварительная загрузка может помочь ... Но, вероятно, лучше работает с большим объемом оперативной памяти. А это, в свою очередь, означает: предварительная загрузка будет конфликтовать с приложениями, требующими памяти, которые вы можете запустить позже. Здесь может потребоваться снижение перестановки, что, вероятно, сделает бесполезной предварительную загрузку, как только вы собираетесь использовать слишком много оперативной памяти.
hurikhan77
21

Вопрос, заданный баунтиром Саидом Заринфамом 5 сентября 2012 года:

Привет всем, я хочу знать, это миф? Действительно ли [предзагрузка] улучшает мою производительность? Каковы недостатки его использования? У меня есть ноутбук с этой спецификацией (Core i5 CPU, 4 ГБ ОЗУ, 128 ГБ SSD Hard). Огромное спасибо.

  • Там нет реальной необходимости предварительной загрузки, если у вас есть SSD
    • Это связано с тем, что твердотельные накопители обеспечивают гораздо более быстрое время произвольного доступа, чем жесткие диски, поэтому «предварительная загрузка» двоичных файлов / зависимостей в память является пустой тратой, IMO
    • Основным недостатком является то, что предзагрузка «использует» дополнительную память без ощутимых преимуществ.
иш
источник
20
Это не охватывает вопрос OP, так как есть какие-либо недостатки использования предварительной загрузки? Во-вторых, вы сформировали мнение, сделали заявление о «предварительной загрузке», а затем ввели «SSD» в уравнение. В какой момент вы на самом деле собирались ответить на вопрос?
Рингтейл
12

Preload - это «адаптивный демон readahead», который работает в фоновом режиме вашей системы и отслеживает, какие программы вы используете чаще всего, кэшируя их, чтобы ускорить время загрузки приложения. Используя Preload, вы можете эффективно использовать неиспользуемую оперативную память и повысить общую производительность настольной системы.

Не ожидайте резкого изменения производительности сразу. Кроме того, если вы просто периодически открываете / закрываете приложения, ваш компьютер все равно будет хранить эти файлы в кеше (это называется «горячей» загрузкой), поэтому вы не увидите здесь никакой разницы в скорости. Однако вы увидите улучшение скорости, если, например, вы используете программу с перерывами; Эти программы будут запускаться быстрее, чем без предварительной загрузки.

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

Теперь, как говорится, кажется, что предварительная загрузка - отличная утилита, и это может быть.

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

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

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

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

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

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

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

1 Источник: techthrob

2 Источник: Предварительная загрузка - Демон адаптивной предварительной выборки Бехдада Эсфахбода - Диссертация, представленная в соответствии с требованиями степени магистра наук - Аспирантура факультета компьютерных наук - Университет Торонто Copyright (c) 2006 - Бехдад Эсфахбод.

Митч
источник
1
Спасибо за ваш ответ, Митч. Это были и мои мысли. Особенно на ноутбуках предзагрузка может быть проблемой. Но все же я хотел бы найти официальный источник / обсуждение того, почему команда Ubuntu отказалась от предварительной загрузки.
Glutanimate
9

Недостатки? НЕТ!

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

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

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

смотреть статью

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

sudo apt-get install preload

Результаты:

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

ссылка

Самка луня
источник
3
Я знаю, что это доза, и я прочитал несколько «предварительных загрузок HowTos», но нигде не мог прочитать что-то о недостатках. Если бы не было никаких недостатков, по умолчанию он был бы поставлен со многими дистрибутивами Linux - но, насколько я знаю, это не так.
Paradiesstaub
1
Производительность не снижается , а увеличивается . В этом весь смысл использования предварительной загрузки. Может быть, это просто опечатка.
Марко
2
Ваша диаграмма выглядит великолепно, но ей не хватает важной информации. Это было бы на 100% вписано в презентацию PowerPoint для продавца, но это пример «плохой статистики». Откуда эти цифры? Какой протокол был использован для их записи? Что это за один снимок? Сколько машин было задействовано в выборке? Какое было оборудование? Как была настроена программа предварительной загрузки?
1
@Ringtail: Ты прав. Вы не автор этой диаграммы. Но если вы щелкнете по всем ссылкам в статьях, вы попадете на страницу Techthrob.com, на которой должна была быть статья, написанная автором программы. Но эта страница исчезла. Так что есть только источник: тезис автора.
2
Нужно обновить аппаратное обеспечение, если запуск терминала gnome занимает более 2 секунд ...
Питер и волк