<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:large">Hello,<br></div><div class="gmail_quote"><div dir="ltr"><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">We have implemented call center using a freeswitch as switch for handling calls. It is basically the logic where you have an agents within the queue waiting for an contacts to come in, or contact within the queue waiting if there is no any agents available.</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">For this kind of implementation we used pure lua and hash tables (and not mod_fifo) in order to have a better flexibility and possibility to manage different contact/agent states.</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">Everything was working fine on our old servers, now we are migrating to the cloud and we are using aws for that purpose, of course trying to cut some costs.</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">---------------</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">After initial setup of our solution we found out that there is a memory leak causing for freeswitch to consume 3 - 10 MB per minute during production hours.  (we did not notice anything on old servers because we had like 24 cores and 94GB of ram on those).</div><div style="font-family:arial,helvetica,sans-serif;font-size:large">This is not too much of course but the bottom point is that increase is linear and its constantly raising consuming more and more of RAM.</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">In order to isolate an issue and to conclude that we don&#39;t have an issue within our solution I installed 1.6.7 version of freeswitch and setup really simple call center with mod_fifo without anything else (totally independent from call center we are working on)</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">For the reference:</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><b>Aws:</b> m4.large</div><div style="font-family:arial,helvetica,sans-serif;font-size:large">         vCPU: 2</div><div style="font-family:arial,helvetica,sans-serif;font-size:large">         RAM: 8GB</div><div style="font-family:arial,helvetica,sans-serif;font-size:large">         Throughput (Mbps): 450         </div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br><b>Freeswitch version:</b> 1.6.7<br><b>OS:</b> Debian GNU/Linux 8 (jessie)</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><b>Number of agents:</b> 30</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><b>Number of calls per agent:</b> 1</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><b>Total numbers of channels at time:</b> 60</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><b>Agents simulated with:</b> pjsip(<a href="http://www.pjsip.org/" target="_blank">http://www.pjsip.org/</a>)</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><b>Contact simulated with:</b> sipp(<a href="http://sipp.sourceforge.net/" target="_blank">http://sipp.sourceforge.net/</a>) </div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><b>Configuration:</b> I used configuration which came with installation of freeswitch. The only things i changed is:</div><div style="font-family:arial,helvetica,sans-serif;font-size:large">     - default password</div><div style="font-family:arial,helvetica,sans-serif;font-size:large">     - internal rtp timeout</div><div style="font-family:arial,helvetica,sans-serif;font-size:large">     - rtpip and sip ip</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">Test scenario:<br>1. Start the freeswitch.<br>2. Autoload lua script is going to ring all of the internal (agents) and push them to the extension where we had mod_fifo <br>3. After some time, same autoload script is going to start calling contacts each 800 miliseconds and push them to the extension where we have mod_fifo.</div><div style="font-family:arial,helvetica,sans-serif;font-size:large">4. mod_fifo will do the rest, bridge agent with the contact and handling the queue properly.</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">As a result we will have 30 agents constantly &quot;talking&quot;, and when ever call is dropped we will have agent connected with another. Parameters for the test match that scenario, and we dont have more then 60 - 65 channels open at the time (never).</div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large">Dialplan for handling mod_fifo</div><div><font face="arial, helvetica, sans-serif" size="4"><a href="http://pastie.org/10812261" target="_blank">http://pastie.org/10812261</a></font><br></div><div><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div><font face="arial, helvetica, sans-serif" size="4">Autoload lua script</font></div><div><font face="arial, helvetica, sans-serif" size="4"><a href="http://pastie.org/10812263" target="_blank">http://pastie.org/10812263</a><br></font></div><div><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div><font face="arial, helvetica, sans-serif" size="4">Result</font></div><div><font face="arial, helvetica, sans-serif" size="4"><a href="http://prnt.sc/awm4ao" target="_blank">http://prnt.sc/awm4ao</a></font><br></div><div><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div><font face="arial, helvetica, sans-serif" size="4">The results are for 24hrs period, and indeed 24hrs is a lot. We will never have production running more then 12hrs (and daily restart will occur). But this basically means that we are not able to host more then 40-45 agents on servers with 8GB of ram.</font></div><div><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div><font face="arial, helvetica, sans-serif" size="4">My question is:</font></div><div><font face="arial, helvetica, sans-serif" size="4">Is this something which can be considered as memory leak, or this is simply how freeswitch works, behaves and requirements it have?</font></div><div><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div><font face="arial, helvetica, sans-serif" size="4">Thank you,</font></div><div><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div><font face="arial, helvetica, sans-serif" size="4">Mersed</font></div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div></div>
</div><br></div>