Everything Penguin

Focusing on Linux-based Operating Systems
htDig Search:

Operating Systems
  • /pub/OS/Linux

  • Storage
  • File Systems
  • HPC
  • /pub/Storage

  • Networking
  • /pub/Networking

  • Network Services
  • /pub/NetworkServices

  • Security
  • /pub/Security
  • Keytool/OpenSSL

  • Clustering
  • HA
  • DRM

  • Development
  • Design
  • C/C++
  • Java
  • Perl
  • Python
  • Shell
  • Web / J2EE

  • Not Linux ?
  • BSD
  • HP-UX
  • Mac
  • Solaris
  • VM
  • Windows
  • /pub/OS

  • Other
  • /pub
  • /pub/3rdParty
  •  Parent Directory

    Performance Tuning (Applications) - Overview
    Brett Lee
    ==============================================
    
    
    Overview:
    
      1.  Identify what the purpose is for the tuning:
           - faster execution from beginning to end
           - faster responses to stimulii
           - less memory usage
      2.  Understand that "bettering" one thing typically worsens another
      3.  If still in the design phase, provide areas for future optimizations
           - or, don't choose designs that will prohibit optimizations
      4.  When writing the code, don't spend a lot of time attempting to
            optimize each line or block of code
           - rather, spend the time focused on OO principles and functionality
           - optimizations now may limit future functionality or flexibility
      5.  Benchmark the application to measure the metric(s) to be tuned
      6.  Profile the code to look for hot spots ( 90/10 rule )
           - these are the first places to look at for optimizations
           - gprof, gcov, oprofile, etc.
           - sar, iostat, mpstat, etc
      7.  Optimize the hot spots
           - code changes
           - system changes 
           - system changes that can be leveraged by more code changes
           - of course, use an optimizing compiler
           - look for other areas top optimize
      8.  Re-run benchmark(s) to verify optimizations
      9.  Repeat steps 6 through 8
    
    
    What are the common bottlenecks, and what are the tuneables / remedies
    for these bottlenecks:
    
      1.  CPU bound applications
      2.  Disk bound applications
      3.  Network bound applications
      4.  J2EE applications
      5.  Database based applications
    
    
    For more, see:
    
      Linux Performance Tuning - mostly on IBM Power
        http://www.ibm.com/developerworks/wikis/display/LinuxP/Performance+Tuning
    
      IBM HPC Central: !!!!!!!!!!!!!!
        http://www.ibm.com/developerworks/wikis/display/hpccentral/HPC+Central
    
      http://en.wikipedia.org/wiki/Program_optimization
      http://en.wikipedia.org/wiki/Performance_analysis
      http://en.wikipedia.org/wiki/Performance_tuning
      http://www.ncsa.illinois.edu/UserInfo/Resources/Software/Intel/Compilers/10.0/main_cls/mergedProjects/optaps_cls/common/optaps_perf_app_obs.htm
    
    

    Other Sites

    RFC's
  • FAQ's
  • IETF
  • RFC Sourcebook

  • Linux
  • Linux - Intro
  • Linux Kernel
  • Linux Kernel (LKML)
  • Bash - Intro
  • Bash - Advanced
  • Command Line
  • System Administration
  • Network Administration
  • Man Pages (& more)
  • More Guides
  • Red Hat Manuals
  • HOWTO's

  • Reference/Tutorials
  • C++ @ cppreference
  • C++ @ cplusplus
  • CSS @ echoecho
  • DNS @ Zytrax
  • HTML @ W3 Schools
  • Java @ Sun
  • LDAP @ Zytrax
  • Linux @ YoLinux
  • MySQL
  • NetFilter
  • Network Protocols
  • OpenLDAP
  • Quagga
  • Samba
  • Unix Programming



  • This site contains many of my notes from research into different aspects of the Linux kernel as well as some of the software provided by GNU and others. Thouugh these notes are not fully comprehensive or even completetly accurate, they are part of my on-going attempt to better understand this complex field. And, they are your to use.

    Should you wish to report any errors or suggestions, please let me know.

    Should you wish to make a donation for anything you may have learned here, please direct that donation to the ASPCA, with my sincere thanks.

    Brett Lee
    Everything Penguin

    The code for this site, which is just a few CGI scripts, may be found on GitHub (https://github.com/userbrett/cgindex).

    For both data encryption and password protection, try Personal Data Security (https://www.trustpds.com).


    "We left all that stuff out. If there's an error, we have this routine called 'panic', and when its called, the machine crashes, and you holler down the hall, 'Hey, reboot it.'"

        - Dennis Ritchie on Unix (vs Multics)


    Google
    [ Powered by Red Hat Linux ] [ Powered by Apache Server] [ Powered by MySQL ]

    [ Statistics by AWStats ]