My company has been running a trial of Atlassian Crucible for some months now. For repositories where it's working properly, users have given very positive feedback about the tool. The problem I'm having is that we have several different projects, each with its own repository, and some of those repositories are very large. One repository in particular has a large number of branches and probably around 9,000 files per branch. Browsing that repository in Crucible is extremely slow.
Crucible is running on a CentOS VM. The VM has 4GB of RAM, and I've set Crucible's maximum at 3GB, of which it is currently using 2GB. I've brought this up in a support ticket with Atlassian, and they suggested the following:
In particular because you have a rather large SVN repository you will likely find that Fisheye will be creating a large index file on disk. To help improve performance a few things you can try are:
- Increasing the available memory available to Fisheye.
- Migrating to an external database.
- Excluding files and directories from your index that aren't needed.
I've tried all of these things to an extent, but so far none have helped greatly. I was originally running Crucible on a Windows box with 2GB of RAM using the built in HSQL DB. Moving to MySQL on CentOS saw a performance increase for some repositories, and made Crucible much more stable, but did not seem to help much with our biggest repository. There are only so many files/branches I can exclude from indexing while maintaining the tool's usefulness.
That being the case, does anyone have any tips on how to speed up Crucible on large repositories, without investing in insanely powerful hardware?
Edit: To clarify, since I didn't mention it explicitly above, I am using FishEye.
Edit 2: Since I originally posted this, performance has improved somewhat with new Crucible releases, but it's still not great by any means. It seems that this issue affects many users, including some with far more powerful hardware than we are using. Thus, I do not believe it is a hardware issue, but rather an issue with inherent inefficiency in Crucible. Atlassian is aware of the issue and will be including further performance improvements in future releases, so hopefully those changes solve our problems.
Edit 3: I'd forgotten how long ago I'd asked this question, so in my previous edit I neglected to mention that our hardware situation has also changed since it was originally asked. We're now running Crucible on a dedicated, physical server, still using CentOS. The hardware is still modest (4GB RAM, quad core CPU and dual 500GB disks in RAID 1 with external backup), but we did see a slight performance increase when we moved away from the VM.