[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] cvs, servers and stuff.



Hi,

I've spent a lot of time on this, but the results are ... shall we say ... interesting. Before proceeding I have to remind you, again that I only used e17 without the version info, so you will probably want to try this out for yourself.

The script I wrote checked the average time for a checkout. I found that checkouts from the git server take a pheonmenally long time and I was too tired to wait for it (somewhere along the lines of 3-5 minutes, not sure really). 

That makes me think I may have not set it up. If there's anything I should have done, or more info you would like, include it here.

I've also found that git offers another very interesting thing. Rsync as a protocol for its client (similar to the way it uses http, there's no need for any extra modules or configuration, you just copy the tree somewhere and it works.

I also kept an eye on the CPU and memory load on the server. So here's what I found.

CVS: 
- Average checkout time: 41.843s
- CPU used: Constantly around 70% (something like 60-80%
- MEM used: 2-3%

SVN (svnserve):
- Average checkout time: 27.921s
- CPU used: 50-90%
- Mem used: 2%

SVN (http):
- Average checkout time: 61.239s
- CPU used: 70-90%
- Mem used: 10-12% *

Git/HTTP:
- Average checkout time: 98.962s
- CPU used: < 4%
- Mem used: 10-12 *

* Somehow I think Apache caches a lot of the stuff out because the memory gets allocated and remains there after the fun is over.

So this looks very weird. And at the end of the day it doesn't really prove too much. SVN and Git (particularly Git) are really gentle on the server's resources at the expense of higher download times.

But this is once again, a single connection, in a pedal-to-the-metal attempt to get the repository as quickly as possible. I have not optimized anything in here, but feel free to do it yourselves.

The script is written in Ruby, just make sure to change the constants for the commands at the top of the file. I eventually ran in 20 times because 100 seemed like way too much.

Hope you guys can use the data, or at least the script.

Cheers,
Eugen.

Attachment: scm_benchmark.rb
Description: Binary data