How to reduce high load on CVS?

I noticed that Team City seems to put a high load on our CVS server. When I shutdown Team City cpu utilization on our CVS server drops from roughly 20% to 5%. What is interesting is that Cruise Control is also monitoring CVS on the same server for many more projects than Team City and appears to add no noticeable load.

I have Team City running on Windows and am pretty sure that I have the check interval set to 5 minutes. I set the interval in the windows registry. When I changed the interval from the default to 5 minutes the load on the CVS server dropped noticeably.

What else can I do to reduce the load from Team City? It is especially troublesome since Cruise Control seems much more efficient.

16 comments

Richard,

Please try enabling "History command supported" option in CVS settings in TeamCity. This should help.

Kind regards,
KIR

0

That option is already enabled for all projects. There are only seven active projects and I wonder what would happen with more.

0

Hello Richard,

Do all of your cvs projects work with the same cvs server? You can updrage
your TeamCity installation with Benares EAP and customize all such projects
to use one sharing root. It means only one root will be checked in time for
changes.

You can also try to enable "checkout on agent" option for these
configurations to reduce operations with project sources on server. This
might be done without any upgrade.



--
Olesya Smirnova
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


"Richard Hansen" <no_reply@jetbrains.com> wrote in message
news:5844830.1186771852977.JavaMail.itn@is.intellij.net...

That option is already enabled for all projects. There are only seven
active projects and I wonder what would happen with more.



0

I finally got to installing TC 3 and the load on CVS is even higher than before and not just a little higher. The load from TC 3 is three times what TC2.1 was.

Is there any documentation on using the shared VCS roots because it makes no sense to me? I would have expected shared VCS roots to be a completely separate configuration item and not included in the configuration of a project. It looks to me like the CVS module name is part of a shared VCS root. Our projects share the same CVS server but all have different module names. When I tried to attach a shared root and change the module name I got warnings that it would affect other projects.

0

VCS root can be marked as shared so that different projects will be able to
reuse it without need to create a new one. However, if your VCS roots are
always different then shared roots do not make sense for you.

I think the only way to reduce server load in your case is to set
"modification.check.interval" property
(http://www.jetbrains.net/confluence/display/TCD/SystemPropertiesforRunningthe+Server).
Hope this helps.

--
Pavel Sher
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"



"Richard Hansen" <no_reply@jetbrains.com> wrote in message
news:20889288.1188230264557.JavaMail.itn@is.intellij.net...
>I finally got to installing TC 3 and the load on CVS is even higher than
>before and not just a little higher. The load from TC 3 is three times what
>TC2.1 was.
>

Is there any documentation on using the shared VCS roots because it makes
no sense to me? I would have expected shared VCS roots to be a completely
separate configuration item and not included in the configuration of a
project. It looks to me like the CVS module name is part of a shared VCS
root. Our projects share the same CVS server but all have different module
names. When I tried to attach a shared root and change the module name I
got warnings that it would affect other projects.



0

Well that pretty much leaves me exactly where I was a month ago. I've set the check interval to 300 seconds and TC still increase the load from 5% to 20% all the time. Team City puts more load on CVS than is necessary or acceptable. I want to emphasize that I have not seen any other build server put so much load on CVS. I could understand some spikes but the load is consistent and never decreases.

0

Richard,

please rerun the server with -Dcvs.log.commands=true parameter. I could see commands being run by plugin.

I created bug request http://www.jetbrains.net/jira/browse/TW-3296

Please watch it and attach there the server logs for a day (with given system property).

Thanks!

0

Hi, will this be fixed soon. i tried the fix from the ticket, but it didn't work. The TC CVS client always reports an authentication failure - UnknownUserException. Our CVS server admins are considering banning TC usage for CVS, or or forcing us to make check intervals every hour due to the extreme load TC places on CVS servers.

Please consider reducing load if a shared CVS root is used, even with different checkout rules. can yuo release a V3 patch and also include it in V4?

Thanks!

-Trevor

0

BTW,

We share VCS roots where possible and use checkout rules. We also use cvs history. but from the ticket (and our CVS admin), it does not look like checkout rules save any cvs load....it should IMO. Just do a cvs history from the top, and then each build config can just see its own part, no? after all, they are all sharing parts of the same tree...

thx.

0

Are you sure the exception is caused by the new version of CVS plugin? Have you tried to revert to the old plugin?

--
Pavel Sher

0

Hi Pavel,

some other developers in our company have tried it and it works for them. i'm going to try it again, maybe i did something wrong.

Early consensus is that TC now optimizes CVS logging (only 1 check for a root) with VCS checkout rules, so that should help us tremendously! it would reduce our checks by a factor of 40!!

thx.

0

Please keep me informed about results.

--
Pavel Sher

0

Thanks Pavel. i've been updating the ticket : http://jetbrains.net/tracker/issue/TW-3296

have a look at the ticket. finally got it to work, but with some issues. I'll stop using the forum and use the ticket to update.

thanks!

0

Hi Pavel, i updated the tracker ticket with the latest findings. will you be releasing another patch to sort those few issues? also, will this make it into the 4.0 release? or at least will the patch be 4.0 compatible?

Thanks.
Trevor

0

I finally found why you had problems with CVS password. This is because storing of password fields has been changed in 4.0 branch, so the patched plugin will have problems with password fields in TC 3.x but will work fine in 4.0. I am going to create another patch for 3.x and attach it to the same issue, just have not enough time for this. Aside from these bugs plugin should work and since you already found a workaround I did not try to make new patch ASAP.

BTW the same fixes were included into the last EAP released today.

--
Pavel Sher

0

Thanks, I'll give the 4.0 EAP a try then. i didn't see the ticket (http://jetbrains.net/tracker/issue/TW-3296) as being marked as included in this latest EAP, but I'll take your word for it.. ;)

Thanks for the fix!

-Trevor

0

Please sign in to leave a comment.