Artık Prelink'i kullanmanın bir anlamı var mı?


11

Yıllar boyunca çeşitli linux kutuları kullanarak , uygulamaların yükleme sürelerini hızlandırmak için prelink ritüelini kullanma alışkanlığına girdim .

Bununla birlikte, bir paketin her yeniden yüklenişinde ön bağlantının çalıştırılmasının yararları, tüm bağımlılıklarının ve bağımlılarının yeniden ön seçilmesi gerektiği için reddedilir.

Bu ön bağlantı birden çok soruna neden olabilir ve bir tanesi de MD5'i yukarı akış revizyonlarıyla karşılaştıran veya ikili kodun değiştirilip değiştirilmediğini belirlemek için MD5 kullanan ve dolayısıyla paket kaldırıldıktan sonra temizlenmesi istenmeyen ikili MD5 geçersiz kılmadır. .

Son zamanlarda, bilgisayarlar çok daha hızlı hale geldi ve prelink getirilerinin faydası hemen hemen hiç fark edilmiyor.

Prelink kullanımı hala rasyonel bir kavram mıdır yoksa geçmişe ait bir şey olarak rasgele atılabilir ve geride bırakılabilir mi?

Yanıtlar:


4

LWN.net'e abone değilseniz, 23 Temmuz 2009 tarihine kadar okuyamazsınız, ancak http://lwn.net/Articles/341244/ yararlı bulabilirsiniz .


Sonra bu makaleye bir "suscriber bağlantı" sağlayabilir.
wazoox

5
Abone bağlantılarını kullandığım için kendimi her zaman kötü hissediyorum. Sanki onları koparıyorum gibi bir şey.
David Pashley

2
Katılıyorum. İlginç bir makaleye rastladığımda doğrudan bağlantılara (arkadaşlar veya iş arkadaşları) abone bağlantıları sağlamayı umursamıyorum, ancak bunu herkese açık olarak yayınlamak yanlış geliyor.
Christopher Cashell

1

Keyfi olarak atılması gerektiğini söylemem, ancak kesinlikle biraz daha düşünülmesi gerektiğini söyleyebilirim.

Sık sık güncellenen modern bir üst düzey makinede, ön bağlantı yararlı bir optimizasyon olmayabilir. Bununla birlikte, hala kullanılmaya değer olabilecek birkaç durum vardır. Örneğin, eski veya alt uçtaki bir makinede veya oldukça statik olan ve sık sık değişiklik veya güncelleme yapmayan makinelerde. Yüksek hızda programların tekrar tekrar çalıştırılması da faydalı olabilir (programların hızlı bir şekilde arka arkaya veya ön bağlamanın performansı artırabileceği paralel olarak çalıştırılabileceği birkaç durumu düşünebilirim).

Sonuçta, özel durumunuzu düşünmeniz ve daha sonra faydaların ek iş ve çabadan daha ağır basmayacağına karar vermeniz gerekir.


1
"yüksek sayıda program tekrar tekrar çalıştırılıyor" - bu durumdaysanız, ikili dosyalar ve kütüphaneler dosya sistemi önbelleğinizde kalır. Ön hazırlık yardımcı olacak tek zaman çok az fs önbellek mevcut bellek açlıktan öyleyse
Daniel Lawson

2
Program dosya sistemi önbelleğinde saklansa bile, ön bağlantı programın başlatılmasını hızlandıracaktır. Kuşkusuz, program (ve ilişkili kütüphaneler) önbelleğe alındığında, performans artışı daha az fark edilir. Ancak, çalışmakta olan programların hızına bağlı olarak, bir kaç mikrosaniye ilave olarak fark yaratabilir.
Christopher Cashell

1

Prelink'in okullarda ve net kafelerde kullanılan LTSP sunucuları gibi çok kullanıcılı masaüstü sunucularında kesinlikle yararlı olduğunu söyleyebilirim. Ön bağlantı yalnızca uygulama yüklemesini hızlandırmakla kalmaz, aynı zamanda kullanıcılar arasındaki çekişme nedeniyle RAM kullanımını ve disk atmayı da geliştirir, böylece sunucuda daha fazla eşzamanlı kullanıcıya izin verir.


0

Sanırım bellek fiyatlarının düşmesi ile ön bağlantı daha az kullanışlı hale geliyor. Eğer hala işleri biraz hızlandırmak istiyorsanız önyüklemeye bakabilirsiniz .


Ben önyükleme denedim, ben sadece oturdu iken readahead şey yapıyor her iki çekirdek çiğneme başlangıç ​​sürelerini daha yavaş yaptı buldum . Ve ayrıca nedense X'in önyükleme sırasında ölmesine neden olamıyorum. Ayrıca, sık sık yeniden başlatmazsanız, önyükleme hiç kullanışlı olmaz.
Kent Fredric

0

Bu kararı OS sürümüne bırakıyorum. İşletim sistemi varsayılan olarak ön bağlamayı cron kullanarak düzenli olarak çağırmayı seçerse, başka bir şey o kadar yararlı olmayabilir. Dağıtımların içerik oluşturucularının varsayılan olarak ön bağlantı seçeneğini eklemeyi / kaldırmayı seçmeden önce düşündüklerini umuyorum. Ben de olayları kendim tekrar analiz etmek yerine onlarla birlikte gidiyorum.


er, onun gerçekten varsayılan değil, onun yüklemek zorunda bir paket, ve eğer yüklü değilse önceden hazırlanmış şeyler alamadım. Yüklüyse, varsayılan olarak kapalı olan ve manuel olarak etkinleştirmeniz gereken bir cron betiği oluşturma eğilimindedir.
Kent Fredric

Fedora'da varsayılan olarak varsayılan olarak kapalıdır. 19 olarak yenilenmiştir ancak kapalı değildir. Fedora 6 veya 7'den beri aynı.
Saurabh Barjatiya

0

Gentoo prelink kullanıyor. Hash hesaplayarak prelink bilgi tavuk görmezden gelerek md5sum sorunu almak.

Prelink, donanım hızlandıkça gittikçe daha az fark edilir hale gelse de, size her zaman bir hız artışı sağlayacaktır. Donanımınızdan emin olmanın tek yolu, ön bağlantıyı kapatmak ve uygulama lansmanlarındaki yavaşlamayı nasıl sevdiğinizi görmektir.

Sidenote: OS X de bir tür ön bağlantı yapıyordu, ancak bağlantının kendisini koruduğu bağlantılı bir önbellek lehine terk edildi. Her iki dünyanın en iyisi, ikili değişim yok ve normal bağlantıya karşı gerçek bir ek yük yok. Umarım Linux bir noktada bu fikri alır :)

Güncelleme: Ben geçenlerde Linux üzerinde prelinking çalıştı ve birçok dosya ve süreçleri ile cscope bir derleme için bir% 5 hız artışı var.


1
Çünkü gerçekten ... yükleyip yapılandırmak zorunda olan yine bir şey, bu söylemez ben gentoo kullanıyorum. Ve ön bağlantıyı tam olarak "kapatamazsınız", yalnızca ön bağlantı çalıştırmayı durdurabilir veya gidip tüm sisteminizin bağlantısını kaldırabilirsiniz. Ayrıca, benim için bilinmeyen bir nedenden ötürü, paludis'in önceden hazırlanmış ikili dosyalarla ilgili sorunları var ve geri alma öncesi bir kanca (desteklenmeyen) olmadan ikili dosyaları geride bırakarak küstahlık yaratıyor. Son zamanlarda ben kanca takılı önce çünkü gerçeğin arkasında kalmıştı birkaç KDE uygulamaları keşfetti ve onlar seg en neden farklı bir konumda yeni olanlar önce yolunda idi
Kent Fredric

Muhtemelen, bağlayıcı optimizasyonunu (-Wl, -O1) etkinleştirmek ve gnu-hash tahsisinde yeni değişiklikler OSX'in taşındığına daha yakındır, bu muhtemelen daha etkili bir seçimdir.
Kent Fredric

Gentoo kullandığımdan bu yana bir süre geçtiğini itiraf etmeliyim ... O zamandan beri OS X'e geçtim :). OS X'te bir kez yaptığım bir testi hatırlıyorum: tüm uygulamaları bir kerede ve o anda başlatın (yaklaşık 1 dakika iirc). Ardından, tüm ön bağlantı bilgilerini kaldırın ve tüm uygulamaları yeniden başlatın. O zaman 5 dakika sürdü ... Bu 2005 yılında gerçek bir canavar olan bir kule Mac'teydi.
w00t

1
Ön hızlandırmaların daha az fark edilebileceği fikrinizin bir tersi olarak: programların çalışma zamanı yüklenebilir kütüphanelerin kullanımında arttıkça daha önemli hale gelmeleri muhtemeldir. 2009 yılında bir gvim 55 çalışma zamanı kütüphanesi kullandı. 2 yıl öncesinden biri 73 kullanıldı. 2009'dan itibaren 'mount' 7 kullandı, bugünden monte edildi, 10 tanesi 4 / usr / lib64 ve 6 / / lib64 ... kullanıyor, böylece genişliyorlar, büyüyorlar ve daha da yayılıyorlar . - her zamanki gibi - HW daha hızlı hale gelir gelmez, SW artışı artırmak için çok daha karmaşık hale gelir.
Astara

@astara doğru, ancak kütüphane kullanımındaki artış sabit disk ve bellek hızındaki artış kadar hızlı değil.
w00t
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.