<div dir="ltr">Hi folks,<div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Here's what top typically looks like.  Sorry for the formatting.  As you can see, the single python process tends to chew up what it can get.  I'm not sure if there's anything that I can do to produce another python worker since the process using the resources is not using both of the available cpus fully.</div><div><br></div><div>top - 15:59:12 up 98 days,  6:23,  2 users,  load average: 1.13, 1.27, 1.47</div><div>Tasks: 123 total,   2 running, 121 sleeping,   0 stopped,   0 zombie</div><div>Cpu(s): 79.1%us,  4.4%sy,  0.0%ni,  5.0%id, 11.4%wa,  0.0%hi,  0.2%si,  0.0%st</div><div>Mem:   4047932k total,  1442812k used,  2605120k free,    29784k buffers</div><div>Swap:  4192252k total,   326916k used,  3865336k free,   368712k cached</div><div><br></div><div>  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                         </div><div>25761 kallithe  20   0 1419m 811m 2960 S  166 20.5  40107:15 python                                                                          </div><div> 1325 root      20   0 88568 1280  972 S    1  0.0 104:15.11 vmtoolsd                                                                        </div><div> 1142 rabbitmq  20   0 1044m 9792  432 S    0  0.2  86:58.08 beam.smp                                                                        </div><div>    1 root      20   0 24348  732  276 S    0  0.0   0:03.57 init                                                                            </div><div>    2 root      20   0     0    0    0 S    0  0.0   0:00.52 kthreadd                             </div><div><br></div><div>Here's a bit from my production.ini.  I can produce the whole file if there are other things that I should be looking at.</div><div><br></div><div><div>[server:main]</div><div>## PASTE ##</div><div>#use = egg:Paste#http</div><div>## nr of worker threads to spawn</div><div>#threadpool_workers = 5</div><div>## max request before thread respawn</div><div>#threadpool_max_requests = 10</div><div>## option to use threads of process</div><div>#use_threadpool = true</div><div><br></div><div>## WAITRESS ##</div><div>use = egg:waitress#main</div><div>## number of worker threads</div><div>threads = 5</div><div>## MAX BODY SIZE 100GB</div><div>max_request_body_size = 107374182400</div><div>## use poll instead of select, fixes fd limits, may not work on old</div><div>## windows systems.</div><div>#asyncore_use_poll = True</div></div><div><br></div><div>Thank you for any help!</div><div>Tim</div><div><br></div></div>