[RTC Build] Fetching performance issue
Philippe Krief (561●2●5●5)
| asked Mar 19 '13, 7:09 p.m.
JAZZ DEVELOPER edited Mar 20 '13, 3:13 p.m. by Spencer Murata (2.3k●11●59●71)
Hi Folks
We have a weird behavior with our build... The Repository Workspace associated to the Build Definition contains 350,000 files. When the build starts from scratch, fetching files in the build machine takes an expected time based on the footprint of our Workspace. Now, if we change only 1 file in our associated Stream and we keep unchecked "Delete directory before loading' option in the build definition is checked?", it takes 2 hours "just" for fetching 1 single file... We are running RTC 4.0.1... And, for our tests, the build engine is on the machine as the JTS. We found few posts mentioning some similar issues:
Now we are not sure what we should do to fix that. Any help will be welcome Thanks a lot. |
3 answers
The build activities should indicate how much of the activity is spent doing the load vs. the other pieces.
Reusing a build workspace and not deleting all the files every time will reduce the amount of content that gets transferred to the build machine, but does not make the cost of "load" free. We still need to figure out what the current configuration is, and figure out what delta needs to be downloaded from the client.
Additionally, if you have multiple build engines honouring this build definition, you may find that the file areas get "out of sync" if build engine 1 last ran the build, and build engine 2's repository workspace is out of date.
Are either of these conditions happening for you?
Comments
Jean-Yves Baudy
commented Mar 22 '13, 2:33 a.m.
Hi there,
Have you considered to put the JBE on its own machine?
Jean-Yves Baudy
commented Mar 22 '13, 6:53 a.m.
Have you considered to put the JBE on its own machine?
If you use Derby for this kind of huge stream, you should expect issues. Derby is only barely thought to be able to handle small teams - and this includes small SCM sizes.
|
we are adding caching proxies to our environment to solve this problem.
As mentioned, there is a LOT of work that goes on to figure out what to load again. many of our builds just load it all. every time. cause it easy. the RTC file naming convention works very well with the squid caching proxy (or similar) Comments
Jean-Yves Baudy
commented Mar 25 '13, 5:38 a.m.
Hi,
Please note that you can search Jazz.net.
Please note that I don't see why the performance should be better, if you have everything on the same machine. The JBE's and the caching proxy should be on another machine than the servers.
Jean-Yves Baudy
commented Mar 25 '13, 9:37 a.m.
I manage to make all tests but for now I do not have enough time to do so. My intention is to install DB2 database , RTC and the jbe on separates machines.
|
Here the results with this configuration
So the problem is with Windows build engine code. I already mentioned this kind of differences between Windows and Linux in this work items. But it skill opened. Long Time spends for "Loading" during sparse loading of large amount of files (208769) Comments
Ralph Schoon
commented Apr 02 '13, 11:46 a.m.
| edited Apr 02 '13, 11:46 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Consider writing a work item here and provide your data.
Jean-Yves Baudy
commented Apr 02 '13, 11:58 a.m.
Here the WI I created :
|
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.
Comments
How does the RTC SCM system know what has changed in the local sandbox vis what needs to be downloaded fresh ?
Is it doing something like comparing all files in the repository workspace with the sandbox to find out what has changed ?
Philippe,
To reduce the number of moving parts you might try to load the workspace outside of the build using the scm command line. If it also take a long time then we can throw out Build as being involved.