Есть ли смысл в использовании Prelink?

11

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

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

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

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

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

Кент Фредрик
источник

Ответы:

4

Вы не можете прочитать его до 23 июля 2009 года, если не подписаны на LWN.net, но вы можете найти http://lwn.net/Articles/341244/ полезным.

Дэвид Пашли
источник
Тогда вы можете предоставить «ссылку для подписчиков» на эту статью.
wazoox
5
Я всегда чувствую себя плохо из-за использования подписки. Как будто я их срываю или что-то в этом роде.
Дэвид Пашли
2
Я согласен. Я не против предоставить подписчикам ссылки на прямые контакты (друзей или коллег), когда я сталкиваюсь с интересной статьей, но не стоит публиковать ее публично.
Кристофер Кашелл
1

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

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

В общем, вам нужно рассмотреть вашу конкретную ситуацию, а затем решить, перевесят ли преимущества дополнительную работу и усилия.

Кристофер Кашелл
источник
1
«высокая частота повторного запуска программ» - если вы находитесь в такой ситуации, двоичные файлы и библиотеки окажутся в кеше вашей файловой системы. Поможет только предварительное связывание, если у вас так мало памяти, что у вас очень мало доступного кэша fs
Дэниел Лоусон,
2
Предварительная ссылка ускорит запуск программы, даже если она хранится в кеше файловой системы. Следует признать, что при кэшировании программы (и связанных с ней библиотек) увеличение производительности становится менее заметным. Однако, в зависимости от скорости запуска программ, несколько микросекунд могут сложиться, чтобы в конечном итоге изменить ситуацию.
Кристофер Кашелл
1

Я бы сказал, что prelink определенно полезен на многопользовательских настольных серверах, таких как LTSP-серверы, используемые, например, в школах и сетевых кафе. Предварительная ссылка не только ускоряет загрузку приложений, но также улучшает использование ОЗУ и перегрузку диска из-за конфликтов между пользователями, что позволяет гораздо большему числу одновременных пользователей на сервере.


источник
0

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

Ник Андерсон
источник
Я попытался выполнить предварительную загрузку, но обнаружил, что это замедляет время запуска, пока он сидит, жуя оба ядра, выполняя задачу чтения. И это также по какой-то причине, которую я не могу понять, заставило Х умереть во время загрузки. Кроме того, если вы не часто перезагружаетесь, предварительная загрузка перестает быть вообще полезной.
Кент Фредрик
0

Я оставляю это решение на версию ОС. Если по умолчанию ОС выбирает регулярный вызов prelink с использованием cron, тогда хорошо, может быть, это не так полезно. Я надеюсь, что создатели дистрибутивов подумали, прежде чем выбрать вариант добавления / удаления предварительной ссылки по умолчанию. Так что я иду с ними, а не анализирую вещи снова сам.

Саураб Баржатия
источник
э-э, он не действительно по умолчанию, это пакет, который вы должны установить, и если он не установлен, вы не получите предварительно связанные вещи. Если он установлен, он имеет тенденцию создавать сценарий cron, который по умолчанию отключен, который вы должны включить вручную.
Кент Фредрик
По умолчанию на fedora не выключен по умолчанию. Сдается до 19 но не выкл. Это было то же самое с Fedora 6 или 7.
Saurabh Barjatiya
0

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

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

Sidenote: OS X также использовала форму предварительной ссылки, но она была заброшена в пользу связанного кэша, который поддерживает сама связь. Лучшее из обоих миров, без двоичных изменений и без реальных накладных расходов по сравнению с обычными ссылками. Я надеюсь, что Linux подхватит эту идею в какой-то момент :)

Обновление: я недавно попробовал предварительные ссылки на Linux , и для компиляции cscope со многими файлами и процессами я получил увеличение скорости на 5%.

w00t
источник
1
Это не совсем ... это все-таки то, что вы должны установить и настроить, я говорю это, потому что я использую gentoo. И вы не можете точно «отключить» предварительную ссылку, вы можете только прекратить запуск предварительной ссылки, или пойти и отменить ссылку всей вашей системы. Кроме того, по какой-то неизвестной мне причине, у paludis есть проблемы с предварительно связанными двоичными файлами, и без хука отмены предварительной ссылки (не поддерживается) он оставляет двоичные файлы позади, приводя к суете. Недавно я обнаружил несколько приложений KDE, которые были оставлены из-за факта до того, как я установил хук, и они находились на пути раньше, чем новые в другом месте, что привело к появлению сегментов
Kent Fredric
Возможно, включение оптимизации компоновщика (-Wl, -O1) ¸ и новые изменения в распределении gnu-hash больше похожи на то, к чему перешел OSX, что, возможно, является более эффективным выбором.
Кент Фредрик
Я должен признать, что прошло много времени с тех пор, как я использовал gentoo ... С тех пор я перешел на OS X :). Я помню тест, который я когда-то делал на OS X: запустите все приложения одновременно и время (около 1 минуты iirc). Затем удалите всю информацию предварительной ссылки и снова запустите все приложения. Тогда это заняло 5 минут ... Это было в 2005 году на башне Mac, настоящий зверь.
w00t
1
В противовес вашей идее, что предварительные ссылки на ускорения могут стать менее заметными: они, вероятно, станут более важными, поскольку программы стремительно используют использование загружаемых библиотек во время выполнения. Gvim с 2009 года использовал 55 исполняемых библиотек. Один из 2-х лет назад использовал 73. 'mount' с 2009 года использовал 7, монтирует с сегодняшнего дня, использует 10 с 4 из них в / usr / lib64 и 6 в / lib64 ... так что они расширяются, становятся больше и более распространенными , - так же, как и раньше, - как только HW становится быстрее, SW становится намного сложнее, чтобы набрать обороты.
Астара
@astara верно, но рост использования библиотек не так быстр, как рост жесткого диска и скорости памяти.
24:00