Hi all,

I wonder is that a common case, or rather a very specific one; anyway, would
deeply appreciate any help. :)

For a long time we've been thinking about how to speed up our operations.
Those are traversals: not very deep (level of depth is 2 at most), but
rather complex ones (with custom-made evaluator and selector policy
classes), and our DB for now has more than 4M nodes (but should have at
least 40M when deployed).

In this quest I've attempted to run multiple server instances at once - and,
well, was greatly surprised by outcome of this decision. :)

In single-instance mode I got about 100-120 nodes per minute processed, no
matter how many client processes were thrown at DB (results are fetched via
REST API). Results were more-o-less stable, though.

But in double-instance mode speed bumped up to 200-250 nodes ppm right after
the start, held there for 10 minutes - and then crashed down to meager 50-60
nodes. Then again, after spending a considerably long time at this level,
for twenty minutes it went to 200-250 nodes ppm again!

Watching system running with htop, I saw a clear pattern: when both cpu
cores were loaded at 90%, processing speed was great, but, sadly, most of
the time cpu was quite undertasked. )
I wonder what might cause such behavior, and is there a way for me to
improve the performance, perhaps with additional settings for JVM?

I've already updated Neo4j for 1.4.1 GA, but the problem still there. We've
got about 7 GB RAM free, two Neo4j instances eat up about 4 GB total.

P.S. Tried to set java processes cpu core affinity (with taskset), got zero
effect.

-- 
-- iD
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to