[issue2188] Operations Fail with 404 with lots of repos in hgweb.config and small RPS load

Matt Hawley bugs at mercurial.selenic.com
Thu May 13 17:51:24 UTC 2010


New submission from Matt Hawley <matt.hawley at microsoft.com>:

In a hosted environment that has lots of Hg repositories (CodePlex) we are 
running into issues where about 10-12 Requests Per Second to the server 
will result in 404 errors on simple operations (as well as cause pushes to 
fail with 500 errors). During our performance testing, we identified that 
setting up the hgweb.config file as

[paths]
/ = \\repo\path\*

Was very inneficient as the number of repositories grows the time taken 
for operations wish linearly getting worse (we were seeing about 90 
seconds to pull/push with 5000 repositories). Looking at the source during 
that time, indicated that using the wildcard scans the file system to 
generate a list of repositories. Our solution for this performance problem 
was to use the following format in the hgweb.config file

[paths]
/repo1 = \\repo\path\repo1
/repo2 = \\repo\path\repo2
...
/repoN = \\repo\path\repoN

However, now that our hgweb.config file has grown to a decent size (we 
have 1000+ repositories hosted), we start seeing 404 errors reported by 
hgweb under the load previously mentioned. Looking at the performance 
monitors on the server shows that we are not CPU bound (it hovers <15%). 

The only thing I can assume, is that reading of the hgweb.config each time 
sequentially is causing the server to not be able to serve the requests 
fast enough. Because of this, our users are experiencing problems when 
accessing their repositories.

Our setup and performance testing has confirmed this to be the case when 
hosted in IIS 7.5 with both hgwebdir.cgi and ISAPI-WSGI hosting.

----------
messages: 12498
nosy: matthawley
priority: urgent
status: unread
title: Operations Fail with 404 with lots of repos in hgweb.config and small RPS load
topic: hgweb

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue2188>
____________________________________________________


More information about the Mercurial-devel mailing list