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.