[Koha-devel] Koha performance enhancement overview

Ian Walls koha.sekjal at gmail.com
Mon Apr 9 15:54:35 CEST 2012


Everyone,


I was doing some thinking this weekend about the overall goal of making
Koha perform faster.  We're approaching this from several different angles,
so I thought it might be a good idea to come up with a summary of all the
various methods we could use to speed Koha up.

Tuning & Hardware (http://wiki.koha-community.org/wiki/Koha_Tuning_Guide)

   - Hardware selection guide (how much CPU, RAM and disk to run Koha on)
   - Tuning the operating system
   - Tuning Apache
   - Tuning MySQL

Performance tools

   - Alternate, Persistent Perl interpreters, like Plack/PSGI or
   mod_perl/FastCGI (http://wiki.koha-community.org/wiki/Plack)
   - Alternate webservers like Nginx or Starman
   - caching tools like memcached or T:T cache

Code cleanup

   - Denesting dependencies
   - Optimizing SQL queries
   - Dual database handles (readonly, read/write)
   - Simplifying code
   - Minimizing XML parsing

Network latency

   - AJAX calls for key functions like circ (cheaper to send/receive than
   full page loads)
   - Minifying JS and CSS (
   http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=1918)
   - CSS sprites (css-tricks.com/css-sprites/)
   - caching some data client-side (like user preferences) in cookies or
   localStorage

Ergonomics

   - Fewer clicks to do common actions
   - Display important info more prominently
   - Preferences to customize to individuals' workflows


Now, here's the question:  which of these techniques will net us the
biggest boosts for the least effort?  We've got lots of great work on Plack
so far, but would figuring out the perfect MySQL tuning settings be easier
and give us a similar performance enhancement (I don't know, just using as
an example)?  Some of these are of course inter-related; doing code cleanup
and denesting would make it easier to do AJAX calls or use mod_perl.

I should probably dump this into a wiki page, but I wanted to raise the
issue on-list first.  Does anyone have any data that we could use to
determine what above is low-hanging fruit, or what will get the biggest
gains?  We're lucky in this community in that we have many, many kinds of
expertise, so we're not limited to pursuing any one course at a time, but
having a coordinated effort would help us reap more tangible benefits
sooner.

Cheers,


-Ian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-devel/attachments/20120409/3f18ae2b/attachment.htm>


More information about the Koha-devel mailing list