JTreg spawns java processes and uses all memory with CONCURRENCY=auto
jonathan.gibbons at oracle.com
Tue May 21 19:47:25 PDT 2013
I've published a new page on the OpenJDK jtreg pages that attempts to
summarize the wisdom collected in this email thread.
The page is http://openjdk.java.net/jtreg/concurrency.html
The page is not yet linked in to other any pages, to give folk here a
chance to give feedback before the page becomes more generally available.
On 05/21/2013 12:33 AM, Alan Bateman wrote:
> On 20/05/2013 21:59, Tomasz Kowalczewski wrote:
>> during a recent "Adopt OpenJDK" event held in Krakow I was using
>> jtreg for running OpenJDK test cases. It was set up as per
>> instructions published here:
>> OpenJDK repository was cloned from http://hg.openjdk.java.net/jdk8/tl
>> and jtreg version was jtreg-4.1-bin-b05_29_nov_2012.zip
>> I have set 'CONCURRENCY=auto' environment variable.
>> When running a test suite (.e.g.: 'cd jdk8_tl/test; make jdk_util')
>> jtreg spawns a lot of java processes and it seems not to stop. Ever.
>> It uses all 8 GB of RAM on my machine at which point Windows starts
>> killing random processes.
>> With 'CONCURRENCY=1' jtreg will spawn only a few java processes and
>> will happily run all the test.
>> What is the behavior for 'CONCURRENCY=auto'? Which value is used as
>> default? Maybe it is not a bug its just that OpenJDK tests should be
>> run on a big server machine with lots of RAM?
>> Any suggestions or pointers to documentation will be very appreciated.
>> Tomasz Kowalczewski
> If you are using -concurrency then I would also suggest adding
> -vmoption:-Xmx512m so that you limit the heap size of the VMs. I think
> Mike has a patch coming for the test Makefile to make this the default.
> On concurrency I personally find that -concurrency:auto works well for
> the jdk tests, assuming you limit the heap size. The reason is that
> the tests are a wild mix of work loads (some tests are I/O bound, some
> are compute bound, some spend a lot of time sleeping). The exception
> is Windows 32-bit where you can limit the heap but you might still run
> into the virtual memory limits on the system.
More information about the jtreg-use