За годы использования различных Linux-боксов я привык использовать предварительная ссылка ритуально для ускорения загрузки приложений.
Однако преимущества запуска предварительной ссылки сводятся на нет каждый раз, когда пакет переустанавливается, поскольку он, все его зависимости и их иждивенцы необходимо повторно связывать.
Это предварительное связывание может вызвать несколько проблем, и одна из них - это недействительность двоичного MD5, что проблематично для вещей, которые сравнивают MD5 с исходными версиями или используют MD5 для определения того, был ли изменен двоичный файл и, следовательно, не требуется очищать после удаления пакета. .
В последнее время компьютеры стали намного быстрее, и выгоды от использования предварительных ссылок теперь едва ли заметны.
Является ли использование prelink рациональной концепцией или его можно небрежно отбросить и оставить как нечто из прошлого?
Вы не сможете прочитать его до 23 июля 2009 г., если не подписаны на LWN.net, но вы можете найти http://lwn.net/Articles/341244/ полезно.
Я бы сказал, что prelink определенно полезен на многопользовательских настольных серверах, таких как LTSP-серверы, используемые, например, в школах и сетевых кафе. Предварительная связь не только ускоряет загрузку приложений, но также улучшает использование оперативной памяти и загрузку диска из-за конфликтов между пользователями, что позволяет большему количеству одновременных пользователей на сервере.
Я бы не сказал, что от него следует произвольно отказаться, однако я определенно сказал бы, что его использованию следует подумать немного больше.
На современной высокопроизводительной машине, которая часто обновляется, предварительная ссылка может оказаться бесполезной оптимизацией. Тем не менее, есть еще ряд случаев, когда его стоит использовать. Например, на старом или младшем компьютере или на компьютерах, которые довольно статичны и не претерпевают частых изменений или обновлений. Это также может быть полезно, если у вас много программ, запускаемых повторно (я могу вспомнить пару ситуаций, когда у вас могут быть программы, запускаемые в быстрой последовательности или параллельно, где предварительное связывание может улучшить производительность).
В общем, вам нужно рассмотреть вашу конкретную ситуацию, а затем решить, перевешивают ли выгоды дополнительная работа и усилия.
Я думаю, что с падением цен на память предварительное связывание становится менее полезным. Если вы все еще хотите немного ускорить процесс, вы можете изучить предварительная нагрузка.
Я оставляю это решение версии ОС. Если по умолчанию ОС предпочитает регулярно вызывать предварительную ссылку с помощью cron, то в противном случае это может быть не так полезно. Я надеюсь, что создатели дистрибутивов подумали, прежде чем выбрать вариант добавления / удаления предварительной ссылки по умолчанию. Поэтому я иду с ними, вместо того, чтобы снова анализировать ситуацию.
Gentoo использует предварительную ссылку. Они обходят проблему md5sum, игнорируя информацию о предварительной ссылке при вычислении хеша.
Prelink всегда дает вам прирост скорости, хотя он может становиться все менее и менее заметным по мере того, как оборудование становится быстрее. Единственный способ узнать наверняка на вашем оборудовании - отключить предварительную ссылку и посмотреть, как вам нравится замедление при запуске приложений.
Дополнительное примечание: OS X также использовала форму предварительного связывания, но от этого отказались в пользу связанного кеша, который связанный поддерживает сам. Лучшее из обоих миров, отсутствие двоичных изменений и никаких реальных накладных расходов по сравнению с обычным связыванием. Надеюсь, в какой-то момент Linux подхватит эту идею :)
Обновить: я недавно пробовал установить ссылку на Linux, а для компиляции cscope с большим количеством файлов и процессов я получил прирост скорости на 5%.