Joel,

can you add the X-Stream:true header?

How many nodes do you have in your graph? If you return them all it is
quite a amount of data that's returned. Without the streaming header, the
Server builds up the response in memory and that most probably causes GC
pauses or it just blows up with an OOM.

What is your memory config for your Neo4j Server? Both in terms of heap and
mmio config?

Any chance to share your data/graph.db/messages.log for some diagnostics?

A thread dump in the case when it hangs would be also super helpful, either
with jstack <pid> or kill -3 <pid>  (in the second case they'll end up in
data/log/console.log)

Thanks so much,

Michael




On Tue, Mar 25, 2014 at 8:04 PM, Joel Welling <[email protected]>wrote:

> Hi folks;
>   I am running neo4j on an SGI UV machine.  It has a great many cores, but
> only a small subset (limited by the cpuset) are available to my neo4j
> server.  If I run neo4j community-2.0.1 with a configuration which is
> out-of-the-box except for setting -XX:ParallelGCThreads=32 and
> -XX:ConcGCThreads=32 in my neo4j-wrapper.conf, too many threads are
> allocated for the cores I actually have.
>   I can prevent this by setting server.webserver.maxthreads to some value,
> but the REST interface then hangs.  For example, here is a curl command
> which works if maxthreads is not set but hangs if it is set, even with a
> relatively large value like 320 threads:
>
>
> > curl --trace-ascii - -X POST -H "Content-Type: application/json" -d
> '{"query":"start a= node(*) return a"}'
> http://localhost:9494/db/data/cypher
> == Info: About to connect() to localhost port 9494 (#0)
> == Info:   Trying 127.0.0.1... == Info: connected
> == Info: Connected to localhost (127.0.0.1) port 9494 (#0)
> => Send header, 213 bytes (0xd5)
> 0000: POST /db/data/cypher HTTP/1.1
> 001f: User-Agent: curl/7.21.3 (x86_64-unknown-linux-gnu) libcurl/7.21.
> 005f: 3 OpenSSL/0.9.8h zlib/1.2.7
> 007c: Host: localhost:9494
> 0092: Accept: */*
> 009f: Content-Type: application/json
> 00bf: Content-Length: 37
> 00d3:
> => Send data, 37 bytes (0x25)
> 0000: {"query":"start a= node(*) return a"}
> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< HANGS AT THIS POINT
> <= Recv header, 17 bytes (0x11)
> 0000: HTTP/1.1 200 OK
> <= Recv header, 47 bytes (0x2f)
> 0000: Content-Type: application/json; charset=UTF-8
> <= Recv header, 32 bytes (0x20)
> 0000: Access-Control-Allow-Origin: *
> <= Recv header, 20 bytes (0x14)
> 0000: Content-Length: 41
> <= Recv header, 32 bytes (0x20)
> 0000: Server: Jetty(9.0.5.v20130815)
> <= Recv header, 2 bytes (0x2)
> 0000:
> <= Recv data, 41 bytes (0x29)
> 0000: {.  "columns" : [ "a" ],.  "data" : [ ].}
> {
>   "columns" : [ "a" ],
>   "data" : [ ]
> }== Info: Connection #0 to host localhost left intact
> == Info: Closing connection #0
>
> If I were on a 32-core machine rather than a 2000-core machine,
> maxthreads=320 would be the default.  Thus I'm guessing that something is
> competing for threads within that 320-thread pool, or else the server is
> internally calculating a ratio of threads-per-core and that ratio is
> yielding zero on my machine. Is there any way to work around this?
>
> Thanks,
> -Joel Welling
>
>  --
> 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.
>

-- 
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