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