You can increase the number of threads on the servers:
max.threads in server.properties
The default setting is 100, you may want to increase it. Additionally,
we have an NIO server available ("enable.nio.connector" to true),
which removes that parameter from the tuning equation.
Here is a good comparison of both the NIO and blocking I/O servers in
terms of concurrent requests they are able to handle:
http://sna-projects.com/blog/2009/08/introducing-the-nio-socketserver-implementation/
Additionally, especially since you're using the in-memory engine, you
may want to make sure your server side garbage collector is tuned
correctly (GC pauses can also lead to timeouts).
Some tips on GC tuning are available at:
http://project-voldemort.com/configuration.php
Thanks,
- Alex
> --
> You received this message because you are subscribed to the Google Groups "project-voldemort" group.
> To post to this group, send email to project-...@googlegroups.com.
> To unsubscribe from this group, send email to project-voldem...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/project-voldemort?hl=en.
>
>
Thanks,
- Alex
On Mon, Oct 4, 2010 at 12:07 PM, Alex Feinberg <fein...@gmail.com> wrote:
> Hi Peter,
>
> What are your garbage collection settings (in voldemort-sever.sh) set to?
>
> What other server.properties settings have you made?
>
> What are your other client settings? It's also important to tune your
> client GC and threadpool sizes (e.g., do you have 75 connections
> without 75 threads on the client).
>
> Thanks,
> - Alex
What are your garbage collection settings (in voldemort-sever.sh) set to?
What other server.properties settings have you made?
What are your other client settings? It's also important to tune your
client GC and threadpool sizes (e.g., do you have 75 connections
without 75 threads on the client).
Thanks,
- Alex
Your Xmx2G only allocated 2 gigabytes of memory for the JVM heap, try
a much larger value. Try allocating 30G such as -Xmx30G to your
voldemort servers. I suspect that with all those client threads you
are overwhelming the JVM heap at 2G each.
--
Tom Chen
Software Architect
GOGII, Inc
t...@gogii.net
650-468-6318
max.threads=300
bdb.cache.size=10G
VOLD_OPTS for server (to take full advantage of your machine)
"-ea -server -Xms18g -Xmx18g -XX:NewSize=2048m -XX:MaxNewSize=2048 \
-XX:SurvivorRatio=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC \
-XX:CMSInitiatingOccupancyFraction=70"
VOLD_OPTS for the client (to sustain the amount of threads you're sending with)
"-Xmx4g -Xms4g -ea -server -XX:NewSize=768m -XX:MaxNewSize=768m \
-XX:SurvivorRatio=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseParNewGC \
-XX:CMSInitiatingOccupancyFraction=70""
I'd also suggest trying bdb storage engine along with
InMemoryStorageEngine, as BerkeleyDB should still have excellent
performance when all data fits into memory.
Thanks,
- Alex
Do make sure to set -Xmx/-Xms and the GC settings correctly, however.
Thanks,
- Alex