Hi all,

last week we upgraded our productive instance of Archiva from 1.3 to
2.0.1 and I'm struggling a bit with trying to tweak the performance. My
findings / issues so far:

1. Our main pain point is degrading performance for uploads (we have
quite a lot Jenkins jobs which upload to Archiva). I'm still not 100%
sure what's the matter here, but it looks like it is closely related to
the repository-scanning queue. As soon as that one gets above a few
hundred Jenkins deployment times rise from 2 minutes to sometimes over
30 minutes.

I ran the VisualVM CPU Sampler and a lot of time was spent in
"DefaultISMLocking.acquireReadLock()" and "aquireReadWriteLock()".

During that time io-waits were at 1-2% and only one core was at 100% - I
saw that the scanning and indexing are processed single threaded so this
is expected.

2. Sometimes the system comes to a grinding halt (today we had a period
of at least 5 minutes are nothing was responding. I couldn't connect via
JMX / VisualVM, via remote debugging, Web UI was showing the spinner, Up
/ Downloads via Maven were blocked. I have no idea what caused it, maybe
a search? Or the calculation of dependencies / used by? CPU was at 100%
on all cores. Maybe it was GC constantly running as I wanted to check
that, the system started acting "normal" again.

Regarding memory, is it possible that the wrapper.conf only alows up to
4 GB of heap? I tried setting 6 GB, but VisualVM shows only 4 (yes,
64-bit OS, Java and VisualVM ;) I double checked that). So Archiva runs
with 512MB PermGen and 4GB of heap (initial heap is set to 4GB as well).

Hardware / Installation:
* 4 cores
* 8 GB RAM
* RHEL 6.5
* somewhat slow FS (VMWare with para-virtual driver and not the fastest
SAN in the world)
* Oracle JDK 1.7.0_51
* Running Archiva standalone with it's Jetty

Are there any recommendations what to do to improve the situation?
Should I try patching the repo-scanning to use multiple cores? Should we
get more cores? Any VM recommendations? Should I run it inside a Tomcat
or another container recommended?

Btw. in order to at least have it somewhat stable, I disabled scanning
of repositories at all and we only index pom.xml nothing more. Obviously
I would like to enable that again.

I also tried playing with the Lock Timeout / Skip Locking setting in the
Runtime Configuration, imho that didn't change the situation much.

And as a last side note: Is it possible that remember me isnt working? I
get logged out quite frequently.

Thanks for reading that long :) Any pointers are highly welcome! I would
hate to downgrade to 1.3 again!

Greetings
-Sascha-

Reply via email to