SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Hashstyling &Prelinks

  Horsepower your Linux system
What “distro” do you use?
   Ubuntu
   Slackware
   Debian
   Fedora
   BSD!!
   Gentoo!!!!!
Is your box sleepy!!
   If you have to wait for a program to start then you
    better be using windows……..
   How much time does KDE or Firefox take to load??
   Let’s give some power pills to your box

                               I look sick!!!
                               Nah
Here are the pills……
   Hastyling
•   you got to compile to hash style, preferably Gentoo
    or BSD



 Prelinks
 Will work on any distro, but 64bit will be voila…
What are Prelinks???
   Well there are libraries to be loaded at startup of a
    program…
   Most of them are shared with other programs
   Thus a lot of symbolic references needs to be
    resolved while startup.
   This is fast for smaller programs, but
   For programs like open office and Firefox- Pain
   My open office writer takes 20sec to load before
    prelinking and 11 after….
   Firefox takes <3 in place of 9
   Not to mention KDE loading at all( you time that)
Prelinks drawbacks
   You need to re-prelink every time you update your
    libraries or anything.
   Size of executables increases( just penalty on space
    though)
   It’s static. Libraries are bonded to the executables, It
    doesn’t work with dynamically loaded libraries
   So, the improvement in programs like open office is
    far lesser…
   Don’t worry…… Just keep following
Doing it with style: Hashstlye
   The new improvement in binutils and glibc called
    direct linking or –Bdirect is the next improvement in
    the field of faster computing.
   Careful… It’s still under development and not
    officially adopted.
   With Hashstyling people(l33t ones!!) have seen 50%
    improvements in dynamic linking , as in load times
   All of this is owing to new improvements in the new
    DT_GNU_HASH or gnu.hash. The older version was
    .hash.
How to prelink?
   It’s basically same in all distros
   Emerge or apt-get or yast or yum anything you use
   Just install “prelink”
   Run this command
   #prelink –amfRv
    a = all packages
    m = Conserve the virtual memory space
    f = force linking
   R = Random – randomize the address ordering, this
    enhances security against buffer overflows.
    v = I won’t tell that( no price for guessing either!)
Enhance KDE
   What you did on the last page was good enough to
    see the power, but some more tweaking is no harm
   Set KDE_IS_PRELINKED=quot;truequot; in
    /etc/env.d/*kdepaths* to inform KDE about the
    prelinking.
   Prelink cronjob: Set it up as a cron job, if you keep
    updating your libraries
   Generally not required for quarterly updaters
Just in case : if you don’t like it
   To remove prelinks:
   Remove the prelink cronjob
   Run $prelink –au
   Just uninstall it as you do for any other software
   Gentooers $ emerge –aC prelink

   And there are gentoo forums and irc channels to
    discuss any meshups( and there will be!!) you
    encounter
Hashstyling: Gentoo only
   Get THE latest version of binutils , glibc and
    gcc(4.2+) .( edit package.keywords)
   Follow the steps in order:
   1) emerge binutils
    $ binutils-config -l
    $ binutils-config # (Replace # with the
    corresponding number to binutils-2.17.50.0.3)
    $ emerge glibc
Edit make.conf
   Open /etc/make.conf and make this entry exactly
    with NO SPACES what so ever.
   LDFLAGS=quot;-Wl,--hash-style=both“
   If you already use some LD flags, change them and
    input these.
   Now we will rebuild the system with these new flags.
   $emerge –e world
   $emerge prelink
   $prelink –amfRv
Crosscheck
   Just run this on the executable you want to check
   $ readelf -a /usr/bin/nano | grep GNU_HASH
     [ 4] .gnu.hash GNU_HASH 00000000004009a0           000009a0
    0x000000006ffffef5              (GNU_HASH)           0x4009a0

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


   Please ensure you are emerging binutils >=
    2.17.50.0.3
   That’s it guys: You have a very fast system now,
    but don’t go and mess with a “l33t” guy yet.
    There are other ways of improving performance.
Upgrade from patch to newer version
   In case you have an old hashstyled system which
    was based on patches then follow exactly, or good
    luck restarting the whole process again
   Remove -Wl,--hash-style from LDFLAGS
   Get the latest overlay from the svn
   Run
   $ LD_X=1 emerge -1 coreutils binutils glibc
   Add -Wl,--hash-style=both to LDFLAGS again
   Run:
   $ LD_X=1 emerge -e world
Continued
   Emerge prelink
   Prelink –amfRv
   Do not turn off power during the whole process
   That’s it
   In case…..System crashed!! Rebuild or go dig
    Gentoo forums

 I haven’t tested it, but a gentoo veteran have:
http://gentoo-wiki.com/User:Roderick
Gentoo hashstlye thread
   http://forums.gentoo.org/viewtopic-t-475538.html

   You may find the solutions to all your problems here,
   If you don’t post one….
Some glichy packages
   X11-drm
   Maadwifi-ng

   While compiling these packages just comment
    LDFLAGS in make.conf
The next level……
   Hope you have your CHOST and CFLAGS and USE
    flags right
   Don’t you dare use anything below i686
   Add “ –O2 –march=<your-cpu> -fomit-frame-pointer”
   MAKEOPTS =“-j?” Google for your processor
   If you arte having more than one system give a look
    to distcc
   And ya ccache
   Above two will save a lot of compile time.
Wanna ask something…..




   I know you have lot of question, just throw them,
    answer is NOT guaranteed 
If you have time go Gentoo…




             Thanks!!!

Weitere ähnliche Inhalte

Was ist angesagt?

Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016Antoine Cœur
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Michele Orselli
 
Time tested php with libtimemachine
Time tested php with libtimemachineTime tested php with libtimemachine
Time tested php with libtimemachineNick Galbreath
 
Newgenlib Installation on Ubuntu 12.04
Newgenlib Installation on Ubuntu 12.04Newgenlib Installation on Ubuntu 12.04
Newgenlib Installation on Ubuntu 12.04Rajendra Singh
 
PHP Deployment With SVN
PHP Deployment With SVNPHP Deployment With SVN
PHP Deployment With SVNLorna Mitchell
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Michele Orselli
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleOrestes Carracedo
 
Instruction: dev environment
Instruction: dev environmentInstruction: dev environment
Instruction: dev environmentSoshi Nemoto
 
A Docker-based Development Environment Even I Can Understand
A Docker-based Development Environment Even I Can UnderstandA Docker-based Development Environment Even I Can Understand
A Docker-based Development Environment Even I Can UnderstandJeremy Gimbel
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Jeff Geerling
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)Soshi Nemoto
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to AnsibleMichael Bahr
 

Was ist angesagt? (20)

Docker perl build
Docker perl buildDocker perl build
Docker perl build
 
Os Whitaker
Os WhitakerOs Whitaker
Os Whitaker
 
SVN essentials
SVN essentialsSVN essentials
SVN essentials
 
C++ Production Debugging
C++ Production DebuggingC++ Production Debugging
C++ Production Debugging
 
Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))
 
Time tested php with libtimemachine
Time tested php with libtimemachineTime tested php with libtimemachine
Time tested php with libtimemachine
 
Newgenlib Installation on Ubuntu 12.04
Newgenlib Installation on Ubuntu 12.04Newgenlib Installation on Ubuntu 12.04
Newgenlib Installation on Ubuntu 12.04
 
PHP Deployment With SVN
PHP Deployment With SVNPHP Deployment With SVN
PHP Deployment With SVN
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
 
VS Debugging Tricks
VS Debugging TricksVS Debugging Tricks
VS Debugging Tricks
 
Instruction: dev environment
Instruction: dev environmentInstruction: dev environment
Instruction: dev environment
 
A Docker-based Development Environment Even I Can Understand
A Docker-based Development Environment Even I Can UnderstandA Docker-based Development Environment Even I Can Understand
A Docker-based Development Environment Even I Can Understand
 
Node.js essentials
 Node.js essentials Node.js essentials
Node.js essentials
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)
 
Ansible intro
Ansible introAnsible intro
Ansible intro
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Holding a mule flow
Holding a mule flowHolding a mule flow
Holding a mule flow
 

Andere mochten auch

Being a sustainable learner
Being a sustainable learnerBeing a sustainable learner
Being a sustainable learnerjanmulreany
 
Supporting the vision
Supporting the visionSupporting the vision
Supporting the visionjanmulreany
 
Primetime permaculture
Primetime permaculturePrimetime permaculture
Primetime permaculturejanmulreany
 
Marcos Ton Curriculum, Resume e Referências Linkedin
Marcos Ton Curriculum, Resume e Referências LinkedinMarcos Ton Curriculum, Resume e Referências Linkedin
Marcos Ton Curriculum, Resume e Referências LinkedinMarcos Ton Coaching
 

Andere mochten auch (8)

Garden project
Garden projectGarden project
Garden project
 
QCBT Retreat
QCBT RetreatQCBT Retreat
QCBT Retreat
 
Bioregionalism
BioregionalismBioregionalism
Bioregionalism
 
Being a sustainable learner
Being a sustainable learnerBeing a sustainable learner
Being a sustainable learner
 
Supporting the vision
Supporting the visionSupporting the vision
Supporting the vision
 
Primetime permaculture
Primetime permaculturePrimetime permaculture
Primetime permaculture
 
Alg case study
Alg case study Alg case study
Alg case study
 
Marcos Ton Curriculum, Resume e Referências Linkedin
Marcos Ton Curriculum, Resume e Referências LinkedinMarcos Ton Curriculum, Resume e Referências Linkedin
Marcos Ton Curriculum, Resume e Referências Linkedin
 

Ähnlich wie Optimize Linux Performance with Hashstyling and Prelinking

Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalChad Woolley
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swposcon2007
 
Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Levente Kurusa
 
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)Ruoshi Ling
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Slim Baltagi
 
Virtual Infrastructure
Virtual InfrastructureVirtual Infrastructure
Virtual InfrastructureBryan McLellan
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Libraryjeresig
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler IceccSZ Lin
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureJérôme Petazzoni
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSJérôme Petazzoni
 
Chef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructureChef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructureMichaël Lopez
 
Steps to Create odbc connection linux
Steps to Create odbc connection linuxSteps to Create odbc connection linux
Steps to Create odbc connection linuxOsama Mustafa
 
Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6Carlos Eduardo
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modulesKris Buytaert
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool boxbpowell29a
 
Using Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled WorldUsing Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled WorldFrank Hunleth
 

Ähnlich wie Optimize Linux Performance with Hashstyling and Prelinking (20)

Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or Gal
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
 
Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!
 
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink
 
Virtual Infrastructure
Virtual InfrastructureVirtual Infrastructure
Virtual Infrastructure
 
An introduction to SVN
An introduction to SVNAn introduction to SVN
An introduction to SVN
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Library
 
Os Wilhelm
Os WilhelmOs Wilhelm
Os Wilhelm
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler Icecc
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFS
 
Chef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructureChef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructure
 
Steps to Create odbc connection linux
Steps to Create odbc connection linuxSteps to Create odbc connection linux
Steps to Create odbc connection linux
 
Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modules
 
Docker and the Oracle Database
Docker and the Oracle DatabaseDocker and the Oracle Database
Docker and the Oracle Database
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool box
 
Using Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled WorldUsing Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled World
 
Ndp Slides
Ndp SlidesNdp Slides
Ndp Slides
 

Kürzlich hochgeladen

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Kürzlich hochgeladen (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Optimize Linux Performance with Hashstyling and Prelinking

  • 1. Hashstyling &Prelinks Horsepower your Linux system
  • 2. What “distro” do you use?  Ubuntu  Slackware  Debian  Fedora  BSD!!  Gentoo!!!!!
  • 3. Is your box sleepy!!  If you have to wait for a program to start then you better be using windows……..  How much time does KDE or Firefox take to load??  Let’s give some power pills to your box I look sick!!! Nah
  • 4. Here are the pills……  Hastyling • you got to compile to hash style, preferably Gentoo or BSD  Prelinks  Will work on any distro, but 64bit will be voila…
  • 5. What are Prelinks???  Well there are libraries to be loaded at startup of a program…  Most of them are shared with other programs  Thus a lot of symbolic references needs to be resolved while startup.  This is fast for smaller programs, but  For programs like open office and Firefox- Pain  My open office writer takes 20sec to load before prelinking and 11 after….  Firefox takes <3 in place of 9  Not to mention KDE loading at all( you time that)
  • 6. Prelinks drawbacks  You need to re-prelink every time you update your libraries or anything.  Size of executables increases( just penalty on space though)  It’s static. Libraries are bonded to the executables, It doesn’t work with dynamically loaded libraries  So, the improvement in programs like open office is far lesser…  Don’t worry…… Just keep following
  • 7. Doing it with style: Hashstlye  The new improvement in binutils and glibc called direct linking or –Bdirect is the next improvement in the field of faster computing.  Careful… It’s still under development and not officially adopted.  With Hashstyling people(l33t ones!!) have seen 50% improvements in dynamic linking , as in load times  All of this is owing to new improvements in the new DT_GNU_HASH or gnu.hash. The older version was .hash.
  • 8. How to prelink?  It’s basically same in all distros  Emerge or apt-get or yast or yum anything you use  Just install “prelink”  Run this command  #prelink –amfRv  a = all packages  m = Conserve the virtual memory space  f = force linking  R = Random – randomize the address ordering, this enhances security against buffer overflows.  v = I won’t tell that( no price for guessing either!)
  • 9. Enhance KDE  What you did on the last page was good enough to see the power, but some more tweaking is no harm  Set KDE_IS_PRELINKED=quot;truequot; in /etc/env.d/*kdepaths* to inform KDE about the prelinking.  Prelink cronjob: Set it up as a cron job, if you keep updating your libraries  Generally not required for quarterly updaters
  • 10. Just in case : if you don’t like it  To remove prelinks:  Remove the prelink cronjob  Run $prelink –au  Just uninstall it as you do for any other software  Gentooers $ emerge –aC prelink  And there are gentoo forums and irc channels to discuss any meshups( and there will be!!) you encounter
  • 11. Hashstyling: Gentoo only  Get THE latest version of binutils , glibc and gcc(4.2+) .( edit package.keywords)  Follow the steps in order:  1) emerge binutils  $ binutils-config -l  $ binutils-config # (Replace # with the corresponding number to binutils-2.17.50.0.3)  $ emerge glibc
  • 12. Edit make.conf  Open /etc/make.conf and make this entry exactly with NO SPACES what so ever.  LDFLAGS=quot;-Wl,--hash-style=both“  If you already use some LD flags, change them and input these.  Now we will rebuild the system with these new flags.  $emerge –e world  $emerge prelink  $prelink –amfRv
  • 13. Crosscheck  Just run this on the executable you want to check  $ readelf -a /usr/bin/nano | grep GNU_HASH [ 4] .gnu.hash GNU_HASH 00000000004009a0 000009a0 0x000000006ffffef5 (GNU_HASH) 0x4009a0 More information on http://www.gentoo.org/doc/en/prelink-howto.xml  Please ensure you are emerging binutils >= 2.17.50.0.3  That’s it guys: You have a very fast system now, but don’t go and mess with a “l33t” guy yet. There are other ways of improving performance.
  • 14. Upgrade from patch to newer version  In case you have an old hashstyled system which was based on patches then follow exactly, or good luck restarting the whole process again  Remove -Wl,--hash-style from LDFLAGS  Get the latest overlay from the svn  Run  $ LD_X=1 emerge -1 coreutils binutils glibc  Add -Wl,--hash-style=both to LDFLAGS again  Run:  $ LD_X=1 emerge -e world
  • 15. Continued  Emerge prelink  Prelink –amfRv  Do not turn off power during the whole process  That’s it  In case…..System crashed!! Rebuild or go dig Gentoo forums  I haven’t tested it, but a gentoo veteran have: http://gentoo-wiki.com/User:Roderick
  • 16. Gentoo hashstlye thread  http://forums.gentoo.org/viewtopic-t-475538.html  You may find the solutions to all your problems here,  If you don’t post one….
  • 17. Some glichy packages  X11-drm  Maadwifi-ng  While compiling these packages just comment LDFLAGS in make.conf
  • 18. The next level……  Hope you have your CHOST and CFLAGS and USE flags right  Don’t you dare use anything below i686  Add “ –O2 –march=<your-cpu> -fomit-frame-pointer”  MAKEOPTS =“-j?” Google for your processor  If you arte having more than one system give a look to distcc  And ya ccache  Above two will save a lot of compile time.
  • 19. Wanna ask something…..  I know you have lot of question, just throw them, answer is NOT guaranteed 
  • 20. If you have time go Gentoo… Thanks!!!