<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">We use rabbitmq 3.1.5. This is installed on a red hat linux server (6.4), the same server where our application is also running. The database (postgresql) is on a separate server. </font></font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">I ran a test where concurrent users post to a rest service (say R). This service basically expects <span style> </span>two UUIDs (UUID_A and UUID_B), that identify two database entities <span style> </span>A and B. Once the service is called with these two values, it publishes to the default exchange. There are two queues bound to this exchange. QueueA and QueueB. Two services,<span style> </span>Service A and Service B, each listen on QueueA and QueueB respectively.<span style> </span>There are no other consumers to these queues. Service A picks up the message and validates<span style> </span>UUID_A exists in the database. Service B validates UUID_B exists. If they are both valid, an entry is made to the db, mapping these two values. </font></font></p>
<div style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">I find as the test progresses, response <span style> </span>time of this overall post increases.<span style> </span>A lot of the time is being spent in<span style> </span>Unsafe.park (boolean,long)<span style> </span>in sun.misc package.</font></font></div>
<div style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">Here is the call stack that shows classes where this being involved from. It appears to be called from spring framework’s RabbitTemplate class.</font></font></div>
<div style="MARGIN:0in 0in 10pt" class="MsoNormal"><font face="Calibri">
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">A problem with increasing response times.</font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">We use rabbitmq 3.1.5. This is installed on a red hat linux server (6.4), the same server where our application is also running. The database (postgresql) is on a separate server. </font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">I ran a test where concurrent users post to a rest service (say R). This service basically expects <span style> </span>two UUIDs (UUID_A and UUID_B), that identify two database entities <span style> </span>A and B. Once the service is called with these two values, it publishes to the default exchange. There are two queues bound to this exchange. QueueA and QueueB. Two services,<span style> </span>Service A and Service B, each listen on QueueA and QueueB respectively.<span style> </span>There are no other consumers to these queues. Service A picks up the message and validates<span style> </span>UUID_A exists in the database. Service B validates UUID_B exists. If they are both valid, an entry is made to the db, mapping these two values. </font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">I find as the test progresses, response <span style> </span>time of this overall post increases.<span style> </span>A lot of the time is being spent in<span style> </span>Unsafe.park (boolean,long)<span style> </span>in sun.misc package. I am wondering why this is so…</font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">Here is the call stack that shows classes where this being involved from. It appears to be called from spring framework’s RabbitTemplate class.</font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">Unsafe.park</font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">-LockSupportparkNanos(Object,Long)</font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"></font> </p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><span style></span></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">As the test progresses where the load increases from 50 users to 200 users over a period of 20 mins, this response time increases from 50 ms to almost 2 seconds. 99% of the response time is spent in Unsafe.park.</font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">Why is this so ? It looks like there is a wait for some resource lock. I am not sure why this wait increases with time/ load. <span style> </span></font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">We are using <span style> </span>rabbitMQ default configuration. Everyone is new to rabbitMQ, so we haven’t changed any of the default parameters.</font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"> </font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">Also is there a plug-in to monitor cpu usage on the broker ? </font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3">Thanks</font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"> </font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"></font></p></font></div>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><span style></span></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">As the test progresses where the load increases from 50 users to 200 users over a period of 20 mins, this response time increases from 50 ms to almost 2 seconds. 99% of the response time is spent in Unsafe.park.</font></font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">Why is this so ? It looks like there is a wait for some resource lock. I am not sure why this wait increases with time/ load. <span style> </span></font></font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">We are using <span style> </span>rabbitMQ default configuration. Everyone is new to rabbitMQ, so we haven’t changed any of the default parameters.</font></font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3" face="Calibri"> </font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">Also is there a plug-in to monitor cpu usage on the broker ? </font></font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">Thanks</font></font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"><font size="3" face="Calibri"> </font></p>
<p style="MARGIN:0in 0in 10pt" class="MsoNormal"></p>