Kallithea Performance Tuning

Mads Kiilerich mads at kiilerich.com
Mon Jan 26 16:30:08 EST 2015


On 01/26/2015 10:01 PM, Tim Downey wrote:
> Hi folks,
>
> I'm running a Kallithea instance with about 100 repositories and 
> healthy amount of CI activity across several branches on each 
> repository.  I'm looking for some tips on tuning performance.  I'm 
> running using waitress (at least I think I am) and see what look like 
> several knobs in the production.ini file that can be turned, but I'm 
> not really sure what I'm looking at.
>
> See below for my settings.  Can anyone point towards what I can be 
> looking at or changing?  I appear to be CPU bound, not io or mem.  
> Most of my activity is the result of my CI activity, not users through 
> the web interface.

Normal Python was not designed for multi core CPUs. Neither was 
Mercurial ... even though hgweb should handle multi threading correctly. 
(I use largefiles which do horrible hacks with live monkey patching of 
modules and I would not dare to use that multithreaded.)

I would suggest a setup with multiple worker processes. I don't know how 
feasible that is with the Python web servers. It seems like people then 
put another web server / proxy in front of them - which in my opinion 
gives a much more complicated setup.

I am a relatively happy user of apache + mod_wsgi. It scales nicely with 
multiple single-threaded worker processes but might require more memory. 
(I might however investigate uwsgi.)

I am surprised you don't mention your database. Could it be that you are 
using sqlite and you need something that is less light?

/Mads



More information about the kallithea-general mailing list