prelink sota debian gnu/linux

Estant a la Hispalinux, va sortir el tema del prelink. Unes comparatives deixaven a Mandrake com la més ràpida, seguida de Debian i finalment de Gentoo. La gent de gentoo al seu forum, va estar comentant el tema dient que fent servir aquesta tècnica guanyaríen força velocitat en els binaris. Algú de la audiència (no dirè que va ser en jBilbo XD) em va dir que això a la Debian no era factible, perque caldría recompilar tots els paquets i veient que l’apt-build no va massa fi (tothom ho diu, però encara no ho he provat mai; això ho deixo per a un article posterior) sería una feina titànica.

Doncs bé, inquiet com sòc i veient que no podía deixar passar aquesta afrenta contra l’espiral que ens guia als debianites, vaig decidir investigar el tema una mica. Cinc segons m’ha costat possar al google “prelink” i el primer resultat m’ha dut directament a la plana d’un paquet de Debian anomenat prelink.

Continúa dins…

Per als qui no ho sàpiguen, prelink el que fà és modificar les llibreries compartides i executables ELF per tal que facin falta resoldre força menys relocacions en temps d’execució, aconseguint que els programes s’engeguin abans.

A la Debian no fa falta més que un simple “apt-get install prelink”, que depèn de la libc6 i la libelf1 (llibrería per llegir i escriure als fitxers ELF). La seva documentació és aplastantment clara, concissa i senzilla (/usr/share/doc/prelink/README.Debian), i ens aclara com funciona aquesta utilitat.

Cal cridar al prelink cada cop que instalem un nou paquet, o bé es pot configurar el fitxer “/etc/default/prelink” per a que s’executi cada nit. Si encara no ho hem fet mai, podem executar la comanda “prelink –all –conserve-memory –random”, que trigarà “uns quants minuts”TM. Si a algú la cosa no li convenç, sempre es pot fer un “prelink –all –undo” que retornarà el nostre sistema al seu punt de partida inicial.

Problemes coneguts: no convè fer servir el prelink amb kernels inferiors al 2.4.10, i cal tenir en compte que com que el que fà és modificar binaris de sistema, tant el checksecurity com el tripwire i família es queixaràn i començaràn a generar reports com bojos 🙂
Autor: sergi

This entry was posted in Debian. Bookmark the permalink.

14 Responses to prelink sota debian gnu/linux

  1. jBilbo says:

    Com q no tenia ni faba de prelink (a la conferencia que estàvem no ho van explicar del tot i ens vam quedar a mitges…) suposava que per a tenir prelink s’havía de compilar el binari amb aquesta opció (tipus compilació estàtica). Perque prelink es un estat entremig de compilació estàtica i dinàmica.
    Ara veig que es pot modificar el binari sense recompilar, per tant el meu comentari no té cap significat… només es fruit de la ignorancia (recordo q tots 2 pensàvem q es tindria q recompilar per a tenir prelink ;))

    I ara q tens prelink, alguna millora??

  2. jBilbo says:

    Com q no tenia ni faba de prelink (a la conferencia que estàvem no ho van explicar del tot i ens vam quedar a mitges…) suposava que per a tenir prelink s’havía de compilar el binari amb aquesta opció (tipus compilació estàtica). Perque prelink es un estat entremig de compilació estàtica i dinàmica.
    Ara veig que es pot modificar el binari sense recompilar, per tant el meu comentari no té cap significat… només es fruit de la ignorancia (recordo q tots 2 pensàvem q es tindria q recompilar per a tenir prelink ;))

    I ara q tens prelink, alguna millora??

    PD: Article de prelink per a Gentoo:

    http://www.gentoo.org/doc/en/prelink-howto.xml

  3. davidcg says:

    Pero si con una cosa tan tonta se puede acelerar significativamente el sistema… ¿Cómo es que nos enteramos ahora?

    ¿Esto no es vender duros a 4 pesetas?

    ¿ein?

    ¿Funciona con mozilla y Openoffice? 🙂

    No se yo, llamarme conservador pero no se yo.

  4. jBilbo says:

    no se conoce mucho, no… y además en los tests que presentaron en la hispalinux se veía un incremento considerable/increible en la rapidez a la hora de cargar una aplicación (por ejemplo Kmail no tardaba ni 1 segundo en cargar… 0.poco).

  5. davidcg says:

    Arghgh, només està a la testing i unstable, a la woody no hi es, i la libc6 es una versió superior.

    Doncs esperarem a la sarge estable que es a punt de caure, en menys de un any i mig la tenim ja 🙂

    si si, ja se que podria upgradear parcialment, que per un paquet no s’acabarà el mon…

    Doncs no!!!!! la meva woody ni tocarla!

    XD

  6. jBilbo says:

    De que el prelink es una mica… “buggy” com diuen els anglesos… El kde peta (3.1.3 sembla) i a algú en el foro de gentoo la petat el sistema enter… tenien q fer virgueries per recuperarlo.. (clar, fins i tot el binari del bash estava corrupte..).
    Així que aneu amb compte xD

  7. llpamies says:

    Felicitar-te per l’article i preguntar-te si has notat algun aument en les mides dels executables.

    Salutacions.

  8. llpamies says:

    Doncs no!!!!! la meva woody ni tocarla!

    Segons el que dius, enlloc de processador de textos deus grabar els caracters a la pantalla amb un martell i un punxó.

    :p

  9. sergi says:

    doncs si t’he de ser sincer, no en tinc ni idea. Haguès sigut una bona idea el mirar els tamanys abans i desprès, no? 🙂

    En fi, com que s’ha d’anar fent quan s’instalen nous paquets, ja ho mirarè amb més detall i potser farè alguna comparativa. Ho apunto a la meva llista de coses per fer.

    PD: per cert, no sé si serà bugie o no, però per ara no m’ha espatllat res el prelink aquest. Tot funciona “com toca”TM

  10. marble says:

    He probado prelink en Gentoo en un Pentium IV 2.0 Ghz y un AMD Ahtlon XP 1.6 (1.4 Ghz), utilizo habitualmente GNOME como escritorio de trabajo con la mayoria de aplicaciones basadas en GTK. Resultado en ambos: optimización no visible.

    Según he visto parece que obtienes mejor rendimiento con programas escritos en C++ como KDE, QT… Quizás sea es el motivo, no he hecho mediciones exactas de reloj para comprobar el incremento de rendimiento, simplemente he intentado ver la diferencia trabajando habitualmente y no he apreciado nada.

    Los binarios incrementan de tamaño en muy poca cantidad, por eso no os preocupeis y tampoco se me ha fastidiado nada del sistema. Es fàcil volver al estado original sin prelink haciendo un “undo”.

  11. sergi says:

    vale, es posible que no se note mucha diferencia (yo tampoco la he notado), aunque yo lo achacaba posiblemente a que alomejor se tendrían que reiniciar las X o algo por el estilo (y yo no hago esas cosas 🙂 ). De todas formas convendría estudiar el tema más a fondo, ya que en principio parece o parecía que la cosa promete/prometía (la gente hablaba de ello como si del santo grial se tratara, así que algo de cierto debe tener).

  12. davidcg says:

    No no, la woody está intacta, pero el /usr/local está lleno 🙂

    Pero la woody, lo que es la woody es sagrada.

    Amén.

  13. jBilbo says:

    Entonces no sé para qué sirve el apt-get si luego a la hora de la verdad, el día a día, se utilizan binarios de terceros para instalar las cosas de forma manual…

    ¿apt-get sólo para mantener lo básico? Pues sí que es delicado…

  14. utopic says:

    Jo he probat el prelink en SID, pero no crec que sigui una bona idea, básicament per que cada cop que actualitzes els paquets has de tornar a fer el prelink almenys dels paquets actualitzats, sense scripts automàtics [encara que…], amb “lo cualo” fas un prelink de tot que es més fàcil però que tarda massa. Tampoc he notat massa diferència, em funciona igual de rapid com sempre 😉

    Stich, passa’t a SID, no et defraudarà.

Leave a Reply