erlang - Mirrored queue performance factors -


we operate 2 dual-node brokers, each broker having quite different queues , workloads. each box has 24 cores (h/t) worth of xeon e5645 @ 2.4ghz 48gb ram, connected gigabit lan ~150μs latency, running rhel 5.6, rabbitmq 3.1, erlang r16b hipe off. we've tried hipe on made no noticeable performance impact, , crashy.

we appear have hit ceiling our message rates of between 1,000/s , 1,400/s both in , out. broker-wide, not per-queue. adding more consumers doesn't improve throughput overall, gives particular queue bigger slice of apparent "pool" of resource.

every queue mirrored across 2 nodes make broker. our publishers , consumers connect equally both nodes in persistant way. notice adsl-like asymmetry in rates too; if manage publish high rate of messages deliver rate drops high double digits. testing un-mirrored queue has higher throughput, expected. queues , exchanges durable, messages not persistent.

we'd know can improve situation. cpu on box fine, beam takes core , half 1 process, 80% each of 2 cores couple of processes. rest of box idle. using ~20gb of ram in userland system cache filling rest. io rates fine. network fine.

is there erlang/otp tuning can do? delegate_count default 16, explain in bit more detail please?

this difficult answer without knowing more how producers , consumers configured, client library you're using , on. discussed on irc (http://dev.rabbitmq.com/irclog/index.php?date=2013-05-22) minute ago, i'd suggest attempt reproduce topology using multicastmain java load test tool ships rabbitmq java client. can configure multiple producers/consumers, message sizes , on. can 5khz out of two-node cluster ha on desktop, may client (or application code) related issue.


Comments

Popular posts from this blog

python - How to create a legend for 3D bar in matplotlib? -

java - Multi-Label Document Classification -

php - Dynamic url re-writing using htaccess -