You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2018/01/27 15:24:32 UTC
svn commit: r1822417 - in /jmeter/trunk/bin: jmeter jmeter.bat
Author: pmouawad
Date: Sat Jan 27 15:24:32 2018
New Revision: 1822417
URL: http://svn.apache.org/viewvc?rev=1822417&view=rev
Log:
Comment JAVAVER better as per Felix note
Adapt some GC tuning based on:
- http://www.evanjones.ca/jvm-mmap-pause.html
- https://docs.oracle.com/javase/9/gctuning/garbage-first-garbage-collector-tuning.htm
Modified:
jmeter/trunk/bin/jmeter
jmeter/trunk/bin/jmeter.bat
Modified: jmeter/trunk/bin/jmeter
URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter?rev=1822417&r1=1822416&r2=1822417&view=diff
==============================================================================
--- jmeter/trunk/bin/jmeter (original)
+++ jmeter/trunk/bin/jmeter Sat Jan 27 15:24:32 2018
@@ -35,7 +35,7 @@
##
## JMETER_GC_ALGO (Optional) Java runtime options to specify JVM garbage collection
## algorithm
-## Defaults to "-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20"
+## Defaults to "-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem"
##
## JMETER_HEAP (Optional) Java runtime options for memory management
## used when JMeter is started.
@@ -173,7 +173,7 @@ esac
# RUN_IN_DOCKER="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
# Finally, some tracing to help in case things go astray:
-: "${JMETER_GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20"}"
+: "${JMETER_GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem"}"
# Always dump on OOM (does not cost anything unless triggered)
Modified: jmeter/trunk/bin/jmeter.bat
URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.bat?rev=1822417&r1=1822416&r2=1822417&view=diff
==============================================================================
--- jmeter/trunk/bin/jmeter.bat (original)
+++ jmeter/trunk/bin/jmeter.bat Sat Jan 27 15:24:32 2018
@@ -37,7 +37,7 @@ rem JVM_ARGS - (Optional) Java opti
rem Defaults to '-Duser.language="en" -Duser.region="EN"'
rem
rem GC_ALGO - (Optional) JVM garbage collector options
-rem Defaults to '-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20'
+rem Defaults to '-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem'
rem
rem HEAP - (Optional) JVM memory settings used when starting JMeter
rem Defaults to '-Xms512m -Xmx512m -XX:MaxMetaspaceSize=256m'
@@ -92,7 +92,9 @@ if not defined JAVAVER (
rem Check if version is from OpenJDK or Oracle Hotspot JVM prior to 9 containing 1.${version}.x
-rem JAVAVER will contain "XXXX", so we extract 2 chars starting from index 1
+rem JAVAVER will be equal to "9.0.4" (quotes are part of the value) for Oracle Java 9
+rem JAVAVER will be equal to "1.8.0_161" (quotes are part of the value) for Oracle Java 8
+rem so we extract 2 chars starting from index 1
IF "%JAVAVER:~1,2%"=="1." (
set JAVAVER=%JAVAVER:"=%
for /f "delims=. tokens=1-3" %%v in ("%JAVAVER%") do (
@@ -146,7 +148,7 @@ rem Uncomment this to generate GC verbos
rem set VERBOSE_GC=-Xlog:gc*,gc+age=trace,gc+heap=debug:file=gc_jmeter_%%p.log
if not defined GC_ALGO (
- set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20
+ set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem
)
set SYSTEM_PROPS=-Djava.security.egd=file:/dev/urandom
Re: svn commit: r1822417 - in /jmeter/trunk/bin: jmeter jmeter.bat
Posted by Felix Schumacher <fe...@internetallee.de>.
Am 27.01.2018 um 16:54 schrieb Philippe Mouawad:
> On Sat, Jan 27, 2018 at 4:41 PM, Felix Schumacher <
> felix.schumacher@internetallee.de> wrote:
>
>> Am 27.01.2018 um 16:24 schrieb pmouawad@apache.org:
>>
>>> Author: pmouawad
>>> Date: Sat Jan 27 15:24:32 2018
>>> New Revision: 1822417
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1822417&view=rev
>>> Log:
>>> Comment JAVAVER better as per Felix note
>>> Adapt some GC tuning based on:
>>> - http://www.evanjones.ca/jvm-mmap-pause.html
>>> - https://docs.oracle.com/javase/9/gctuning/garbage-first-
>>> garbage-collector-tuning.htm
>>>
>> I think it would be better to leave GC tuning to the user, as it is really
>> specific to the users environment.
>>
>> The first URL points to problems with GC that happened on a JVM with at
>> least 17G of RAM.
> I agree that it breaks jstat, if you feel we should keep it commented ok
> for me.
> Regarding heap size, are you sure ? where did you find it ?
Do you mean the heap size of 17G? That can be deduced from the given gc
log entries.
>
>
>
>> Our default is 512M (which is pretty low nowadays).
> I think we should increase it to 1G , I never really run it with default
> options.
+1 :)
>
>
>> The problem occurred on a program, that used memory mapped files. Does
>> JMeter use it by default? I don't know.
>>
> Isn't it related to Java ?
> https://bugs.openjdk.java.net/browse/JDK-8076103
When I read the comments correctly on the original first URL, it seems
that the problem does not seem to be that hard, if /tmp is on tmpfs
(which it is on many modern linux distros).
Did you experience long lags in GC?
>
>
>> And as a side effect the options from the first URL will break jstat - a
>> tool, that I often use to find memory and performance problems.
>>
>> Another thing to keep in mind is, that G1 is designed for heap sizes of
>> 32G and more.
>>
> In my experience (but I am not very good at GC tuning), I had better
> results regarding STW with G1 (even for heaps > 3g ) than with other
> policies.
I think the differences for "normal" programs are rather small,
especially on small heaps. But I found
https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsTuneJVM.html
where G1 is recommended for heaps from 16GB upwards and CMS for lower
heap sizes.
But on as G1 is the default in Java 8 and having no negative report so
far, we should stay with G1.
Felix
>
>> But on the other hand, if you found those options to be helpful with your
>> tests, it is good to document them.
>>
>> Felix
>>
>>
>>
>>> Modified:
>>> jmeter/trunk/bin/jmeter
>>> jmeter/trunk/bin/jmeter.bat
>>>
>>> Modified: jmeter/trunk/bin/jmeter
>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter?rev=182
>>> 2417&r1=1822416&r2=1822417&view=diff
>>> ============================================================
>>> ==================
>>> --- jmeter/trunk/bin/jmeter (original)
>>> +++ jmeter/trunk/bin/jmeter Sat Jan 27 15:24:32 2018
>>> @@ -35,7 +35,7 @@
>>> ##
>>> ## JMETER_GC_ALGO (Optional) Java runtime options to specify JVM
>>> garbage collection
>>> ## algorithm
>>> -## Defaults to "-XX:+UseG1GC -XX:MaxGCPauseMillis=250
>>> -XX:G1ReservePercent=20"
>>> +## Defaults to "-XX:+UseG1GC -XX:MaxGCPauseMillis=100
>>> -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled
>>> -XX:+PerfDisableSharedMem"
>>> ##
>>> ## JMETER_HEAP (Optional) Java runtime options for memory
>>> management
>>> ## used when JMeter is started.
>>> @@ -173,7 +173,7 @@ esac
>>> # RUN_IN_DOCKER="-XX:+UnlockExperimentalVMOptions
>>> -XX:+UseCGroupMemoryLimitForHeap"
>>> # Finally, some tracing to help in case things go astray:
>>> -: "${JMETER_GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=250
>>> -XX:G1ReservePercent=20"}"
>>> +: "${JMETER_GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=100
>>> -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled
>>> -XX:+PerfDisableSharedMem"}"
>>> # Always dump on OOM (does not cost anything unless triggered)
>>>
>>> Modified: jmeter/trunk/bin/jmeter.bat
>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.bat?rev
>>> =1822417&r1=1822416&r2=1822417&view=diff
>>> ============================================================
>>> ==================
>>> --- jmeter/trunk/bin/jmeter.bat (original)
>>> +++ jmeter/trunk/bin/jmeter.bat Sat Jan 27 15:24:32 2018
>>> @@ -37,7 +37,7 @@ rem JVM_ARGS - (Optional) Java opti
>>> rem Defaults to '-Duser.language="en"
>>> -Duser.region="EN"'
>>> rem
>>> rem GC_ALGO - (Optional) JVM garbage collector options
>>> -rem Defaults to '-XX:+UseG1GC -XX:MaxGCPauseMillis=250
>>> -XX:G1ReservePercent=20'
>>> +rem Defaults to '-XX:+UseG1GC -XX:MaxGCPauseMillis=100
>>> -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled
>>> -XX:+PerfDisableSharedMem'
>>> rem
>>> rem HEAP - (Optional) JVM memory settings used when starting
>>> JMeter
>>> rem Defaults to '-Xms512m -Xmx512m
>>> -XX:MaxMetaspaceSize=256m'
>>> @@ -92,7 +92,9 @@ if not defined JAVAVER (
>>> rem Check if version is from OpenJDK or Oracle Hotspot JVM prior to
>>> 9 containing 1.${version}.x
>>> -rem JAVAVER will contain "XXXX", so we extract 2 chars starting from
>>> index 1
>>> +rem JAVAVER will be equal to "9.0.4" (quotes are part of the value) for
>>> Oracle Java 9
>>> +rem JAVAVER will be equal to "1.8.0_161" (quotes are part of the value)
>>> for Oracle Java 8
>>> +rem so we extract 2 chars starting from index 1
>>> IF "%JAVAVER:~1,2%"=="1." (
>>> set JAVAVER=%JAVAVER:"=%
>>> for /f "delims=. tokens=1-3" %%v in ("%JAVAVER%") do (
>>> @@ -146,7 +148,7 @@ rem Uncomment this to generate GC verbos
>>> rem set VERBOSE_GC=-Xlog:gc*,gc+age=trace,gc+heap=debug:file=gc_jmet
>>> er_%%p.log
>>> if not defined GC_ALGO (
>>> - set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=250
>>> -XX:G1ReservePercent=20
>>> + set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=100
>>> -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled
>>> -XX:+PerfDisableSharedMem
>>> )
>>> set SYSTEM_PROPS=-Djava.security.egd=file:/dev/urandom
>>>
>>>
>>>
>
Re: svn commit: r1822417 - in /jmeter/trunk/bin: jmeter jmeter.bat
Posted by Philippe Mouawad <ph...@gmail.com>.
On Sat, Jan 27, 2018 at 4:41 PM, Felix Schumacher <
felix.schumacher@internetallee.de> wrote:
> Am 27.01.2018 um 16:24 schrieb pmouawad@apache.org:
>
>> Author: pmouawad
>> Date: Sat Jan 27 15:24:32 2018
>> New Revision: 1822417
>>
>> URL: http://svn.apache.org/viewvc?rev=1822417&view=rev
>> Log:
>> Comment JAVAVER better as per Felix note
>> Adapt some GC tuning based on:
>> - http://www.evanjones.ca/jvm-mmap-pause.html
>> - https://docs.oracle.com/javase/9/gctuning/garbage-first-
>> garbage-collector-tuning.htm
>>
> I think it would be better to leave GC tuning to the user, as it is really
> specific to the users environment.
>
> The first URL points to problems with GC that happened on a JVM with at
> least 17G of RAM.
I agree that it breaks jstat, if you feel we should keep it commented ok
for me.
Regarding heap size, are you sure ? where did you find it ?
> Our default is 512M (which is pretty low nowadays).
I think we should increase it to 1G , I never really run it with default
options.
> The problem occurred on a program, that used memory mapped files. Does
> JMeter use it by default? I don't know.
>
Isn't it related to Java ?
https://bugs.openjdk.java.net/browse/JDK-8076103
> And as a side effect the options from the first URL will break jstat - a
> tool, that I often use to find memory and performance problems.
>
> Another thing to keep in mind is, that G1 is designed for heap sizes of
> 32G and more.
>
In my experience (but I am not very good at GC tuning), I had better
results regarding STW with G1 (even for heaps > 3g ) than with other
policies.
>
> But on the other hand, if you found those options to be helpful with your
> tests, it is good to document them.
>
> Felix
>
>
>
>> Modified:
>> jmeter/trunk/bin/jmeter
>> jmeter/trunk/bin/jmeter.bat
>>
>> Modified: jmeter/trunk/bin/jmeter
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter?rev=182
>> 2417&r1=1822416&r2=1822417&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/bin/jmeter (original)
>> +++ jmeter/trunk/bin/jmeter Sat Jan 27 15:24:32 2018
>> @@ -35,7 +35,7 @@
>> ##
>> ## JMETER_GC_ALGO (Optional) Java runtime options to specify JVM
>> garbage collection
>> ## algorithm
>> -## Defaults to "-XX:+UseG1GC -XX:MaxGCPauseMillis=250
>> -XX:G1ReservePercent=20"
>> +## Defaults to "-XX:+UseG1GC -XX:MaxGCPauseMillis=100
>> -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled
>> -XX:+PerfDisableSharedMem"
>> ##
>> ## JMETER_HEAP (Optional) Java runtime options for memory
>> management
>> ## used when JMeter is started.
>> @@ -173,7 +173,7 @@ esac
>> # RUN_IN_DOCKER="-XX:+UnlockExperimentalVMOptions
>> -XX:+UseCGroupMemoryLimitForHeap"
>> # Finally, some tracing to help in case things go astray:
>> -: "${JMETER_GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=250
>> -XX:G1ReservePercent=20"}"
>> +: "${JMETER_GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=100
>> -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled
>> -XX:+PerfDisableSharedMem"}"
>> # Always dump on OOM (does not cost anything unless triggered)
>>
>> Modified: jmeter/trunk/bin/jmeter.bat
>> URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.bat?rev
>> =1822417&r1=1822416&r2=1822417&view=diff
>> ============================================================
>> ==================
>> --- jmeter/trunk/bin/jmeter.bat (original)
>> +++ jmeter/trunk/bin/jmeter.bat Sat Jan 27 15:24:32 2018
>> @@ -37,7 +37,7 @@ rem JVM_ARGS - (Optional) Java opti
>> rem Defaults to '-Duser.language="en"
>> -Duser.region="EN"'
>> rem
>> rem GC_ALGO - (Optional) JVM garbage collector options
>> -rem Defaults to '-XX:+UseG1GC -XX:MaxGCPauseMillis=250
>> -XX:G1ReservePercent=20'
>> +rem Defaults to '-XX:+UseG1GC -XX:MaxGCPauseMillis=100
>> -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled
>> -XX:+PerfDisableSharedMem'
>> rem
>> rem HEAP - (Optional) JVM memory settings used when starting
>> JMeter
>> rem Defaults to '-Xms512m -Xmx512m
>> -XX:MaxMetaspaceSize=256m'
>> @@ -92,7 +92,9 @@ if not defined JAVAVER (
>> rem Check if version is from OpenJDK or Oracle Hotspot JVM prior to
>> 9 containing 1.${version}.x
>> -rem JAVAVER will contain "XXXX", so we extract 2 chars starting from
>> index 1
>> +rem JAVAVER will be equal to "9.0.4" (quotes are part of the value) for
>> Oracle Java 9
>> +rem JAVAVER will be equal to "1.8.0_161" (quotes are part of the value)
>> for Oracle Java 8
>> +rem so we extract 2 chars starting from index 1
>> IF "%JAVAVER:~1,2%"=="1." (
>> set JAVAVER=%JAVAVER:"=%
>> for /f "delims=. tokens=1-3" %%v in ("%JAVAVER%") do (
>> @@ -146,7 +148,7 @@ rem Uncomment this to generate GC verbos
>> rem set VERBOSE_GC=-Xlog:gc*,gc+age=trace,gc+heap=debug:file=gc_jmet
>> er_%%p.log
>> if not defined GC_ALGO (
>> - set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=250
>> -XX:G1ReservePercent=20
>> + set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=100
>> -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled
>> -XX:+PerfDisableSharedMem
>> )
>> set SYSTEM_PROPS=-Djava.security.egd=file:/dev/urandom
>>
>>
>>
>
--
Cordialement.
Philippe Mouawad.
Re: svn commit: r1822417 - in /jmeter/trunk/bin: jmeter jmeter.bat
Posted by Felix Schumacher <fe...@internetallee.de>.
Am 27.01.2018 um 16:24 schrieb pmouawad@apache.org:
> Author: pmouawad
> Date: Sat Jan 27 15:24:32 2018
> New Revision: 1822417
>
> URL: http://svn.apache.org/viewvc?rev=1822417&view=rev
> Log:
> Comment JAVAVER better as per Felix note
> Adapt some GC tuning based on:
> - http://www.evanjones.ca/jvm-mmap-pause.html
> - https://docs.oracle.com/javase/9/gctuning/garbage-first-garbage-collector-tuning.htm
I think it would be better to leave GC tuning to the user, as it is
really specific to the users environment.
The first URL points to problems with GC that happened on a JVM with at
least 17G of RAM. Our default is 512M (which is pretty low nowadays).
The problem occurred on a program, that used memory mapped files. Does
JMeter use it by default? I don't know.
And as a side effect the options from the first URL will break jstat - a
tool, that I often use to find memory and performance problems.
Another thing to keep in mind is, that G1 is designed for heap sizes of
32G and more.
But on the other hand, if you found those options to be helpful with
your tests, it is good to document them.
Felix
>
> Modified:
> jmeter/trunk/bin/jmeter
> jmeter/trunk/bin/jmeter.bat
>
> Modified: jmeter/trunk/bin/jmeter
> URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter?rev=1822417&r1=1822416&r2=1822417&view=diff
> ==============================================================================
> --- jmeter/trunk/bin/jmeter (original)
> +++ jmeter/trunk/bin/jmeter Sat Jan 27 15:24:32 2018
> @@ -35,7 +35,7 @@
> ##
> ## JMETER_GC_ALGO (Optional) Java runtime options to specify JVM garbage collection
> ## algorithm
> -## Defaults to "-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20"
> +## Defaults to "-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem"
> ##
> ## JMETER_HEAP (Optional) Java runtime options for memory management
> ## used when JMeter is started.
> @@ -173,7 +173,7 @@ esac
> # RUN_IN_DOCKER="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
>
> # Finally, some tracing to help in case things go astray:
> -: "${JMETER_GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20"}"
> +: "${JMETER_GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem"}"
>
>
> # Always dump on OOM (does not cost anything unless triggered)
>
> Modified: jmeter/trunk/bin/jmeter.bat
> URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.bat?rev=1822417&r1=1822416&r2=1822417&view=diff
> ==============================================================================
> --- jmeter/trunk/bin/jmeter.bat (original)
> +++ jmeter/trunk/bin/jmeter.bat Sat Jan 27 15:24:32 2018
> @@ -37,7 +37,7 @@ rem JVM_ARGS - (Optional) Java opti
> rem Defaults to '-Duser.language="en" -Duser.region="EN"'
> rem
> rem GC_ALGO - (Optional) JVM garbage collector options
> -rem Defaults to '-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20'
> +rem Defaults to '-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem'
> rem
> rem HEAP - (Optional) JVM memory settings used when starting JMeter
> rem Defaults to '-Xms512m -Xmx512m -XX:MaxMetaspaceSize=256m'
> @@ -92,7 +92,9 @@ if not defined JAVAVER (
>
>
> rem Check if version is from OpenJDK or Oracle Hotspot JVM prior to 9 containing 1.${version}.x
> -rem JAVAVER will contain "XXXX", so we extract 2 chars starting from index 1
> +rem JAVAVER will be equal to "9.0.4" (quotes are part of the value) for Oracle Java 9
> +rem JAVAVER will be equal to "1.8.0_161" (quotes are part of the value) for Oracle Java 8
> +rem so we extract 2 chars starting from index 1
> IF "%JAVAVER:~1,2%"=="1." (
> set JAVAVER=%JAVAVER:"=%
> for /f "delims=. tokens=1-3" %%v in ("%JAVAVER%") do (
> @@ -146,7 +148,7 @@ rem Uncomment this to generate GC verbos
> rem set VERBOSE_GC=-Xlog:gc*,gc+age=trace,gc+heap=debug:file=gc_jmeter_%%p.log
>
> if not defined GC_ALGO (
> - set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20
> + set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem
> )
>
> set SYSTEM_PROPS=-Djava.security.egd=file:/dev/urandom
>
>