Afterward we setted up another test, this time we setted the parameter to ten minutes,
and we setted the FullSize parameter, PageSize parameter, DownCacheSize parameter of the
queue to be tested
to 3355444, 10000, and 10000, and the messages we sended in this test were all
NON_PERSISTENT messages, so this
time all the messages that sended to the queue were all stored in the memory. We also
checked that the
persistent database had never been writed or readed.
In this test case we saw that messages send rate was very fast, almost equaled to
it's
target send rate, but the messages received by the consumer were so a little, almost
equaled to 1/10
of the messages sended to the queue, so the mesages been buffered in the queue while
receiving message
were several hundred thousand or several million. And along with the send rate to be
increased the buffered number
was increased, so the time to complete the receving job increased too. And the most
important point was that the
receive rate was so poor, almost equaled to 1/10 of it's send rate per parallel
test.
Why the messages receive rate so poor?
Does the queue must scan some of (or all) the message handles (or something like that)
while a consumer receive a message
because of the message selector mechanism ?
Does the queue will copy all the message handles or synchronize all the message handles
before it do this scan
, so the message receiving time of one message receiving trip will increase along with
the messages buffered
in the queue increased ?
Does message receive rate is computed like this :
all messages received / message job spended time ?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4159505#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...