Hi Lasse,

I know that your have functionality in place for managing memory using 
Neo4j configs ( I use it ).

The "ERROR! Neo4j cannot be started using java version . " error occurs 
because of the following command:
    java -version
which does not use the config settings used in the Neo4J config settings.


On the server over commit memory was set to 2 (do not allow overcommiting 
of memory):
    sudo sysctl vm.overcommit_memory=2
Swap was disabled.
And disk cache was huge (200 GiB).

So when "java -version" tried to run, is was not allowed because it tried 
to claim to much memory by default
(when vm.overcommit_memory=2 is active, if you malloc memory, even if you 
don't use it, it should be less than the total amount of free RAM + swap).

I will look at the pull request stuff later.

Thanks,
Gert

The patch above just solves the
Op donderdag 30 oktober 2014 09:28:39 UTC+1 schreef Lasse Westh-Nielsen:
>
> Gert,
>
> We have functionality in place for you to manage memory using Neo4j 
> configs. Look for neo4j-wrapper.conf in $NEO4J_HOME/conf. The configuration 
> in there is used here: 
> https://github.com/neo4j/neo4j/blob/master/packaging/standalone/src/main/distribution/shell-scripts/bin/neo4j#L73
>
> As for using different versions of grep, I remember writing that 
> particular bit of code a couple of years ago! Alas, my Linux skills are not 
> up to scratch, well spotted.
>
> As for changing it, any chance you might want to submit a pull request 
> with the change for us? There is some stuff here about how to go about it: 
> http://neo4j.com/docs/stable/community-contributing.html. We always 
> welcome help like that, and your name would live forever afterwards: 
> http://neo4j.com/docs/stable/contributors.html ;)
>
> Thanks,
>
> Lasse
>
>
>
>
> On Tue, Oct 28, 2014 at 11:44 AM, Gert Hulselmans <[email protected] 
> <javascript:>> wrote:
>
>> Hi,
>>
>> I have problems with starting Neo4J on a server with 256GiB of RAM.
>>
>> $ ./neo4j-community-2.1.5/bin/neo4j start
>> ERROR! Neo4j cannot be started using java version . 
>> * Please use Oracle(R) Java(TM) 7 or OpenJDK(TM) to run Neo4j Server.
>> * Please see http://docs.neo4j.org/ for Neo4j Server installation 
>> instructions.
>>
>>
>>
>> The problem comes from the checkjvmcompatibility function in ./bin/utils,
>> as it tries to run JVM without giving initial and maximum heap size.
>> Due the large amount of RAM in the server, JVM tries to allocate to many 
>> GiB
>> which are not always free.
>>
>> # check if running Oracle JDK 7 or OpenJDK 7, warn if not
>> checkjvmcompatibility() {
>>   # Shut down if java version < 1.7
>>   JAVAVERSION=$("$JAVACMD" ${JAVA_OPTS} -version 2>&1 | awk -F '"' 
>> '/version/ {print $2}')
>>   if [[ "$JAVAVERSION" < "1.7" ]]; then
>>     complain_about_java_version
>>     #exit 1
>>   fi
>>
>>   $JAVACMD ${JAVA_OPTS} -version 2>&1 | egrep -q "(Java 
>> HotSpot\\(TM\\)|OpenJDK) (64-Bit Server|Server|Client) VM"
>>   if [ $? -eq 1 ]
>>   then
>>     warn_about_java_runtime
>>   fi
>> }
>>
>>
>>
>> After fixing the function to the following, I can start Neo4J correctly.
>>
>>
>> # check if running Oracle JDK 7 or OpenJDK 7, warn if not
>> checkjvmcompatibility() {
>>   # Get Java version output
>>   JAVAVERSIONOUTPUT=$("$JAVACMD" -Xms10M -Xmx10M -version 2>&1)
>>   
>>   # Check if JVM was able to start correctly.
>>   if [ $? -ne 0 ] ; then
>>     echo 'ERROR: Problem with starting JVM.'
>>     exit 1
>>    fi
>>
>>   # Shut down if java version < 1.7
>>   JAVAVERSION=$(echo "$JAVAVERSIONOUTPUT" | awk -F '"' '/version/ {print 
>> $2}')
>>   if [[ "$JAVAVERSION" < "1.7" ]]; then
>>     complain_about_java_version
>>     exit 1
>>   fi
>>
>>   echo "$JAVAVERSIONOUTPUT" | egrep -q "(Java HotSpot\\(TM\\)|OpenJDK) 
>> (64-Bit Server|Server|Client) VM"
>>   if [ $? -eq 1 ]
>>   then
>>     warn_about_java_runtime
>>   fi
>> }
>>
>>
>> According to the manual of grep: egrep is deprecated, so it might be 
>> better to use grep -E instead:
>>
>>     In addition, three variant programs egrep, fgrep and rgrep are 
>> available. 
>>     egrep is the same as grep -E.
>>     fgrep is the same as grep -F.
>>     rgrep is the same as grep -r.
>>     Direct invocation as either egrep or fgrep is deprecated, but is 
>> provided to allow historical applications that rely on them to run 
>> unmodified.
>>
>>
>> Kind regards,
>> Gert Hulselmans
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Neo4j" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to