<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Can you get a reading of the total
      number of I/Os during your test? Peak IOPS?<br>
      That might tell you very quickly about the storage pattern that
      Asterisk uses.<br>
      <br>
      Can you configure a RAM drive to see if disk is really the
      bottleneck. May need to add some more RAM memory to your
      configuration. <br>
      <br>
      What is your network capacity? Usually one can write faster than
      the network can deliver - just to make sure that you are chasing
      the right bottleneck.<br>
      <br>
      What happens at 80 calls to tell you that you have run out of
      IOPS?<br>
      <br>
      Sorry for more questions than answers.<br>
      <br>
      Ron<br>
      <br>
       <br>
      <br>
      On 25/01/2014 12:26 AM, Amit wrote:<br>
    </div>
    <blockquote cite="mid:52E34AE9.6060404@avhan.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">
        <pre wrap="">Thanks for response.
How do I derive the requirement? I need to size IO system to record multiple calls concurrently.
I ran test with following configuration
Quad Core Xeon with 4GB RAM
250GB SATA disk (No RAID)
Linux (CentOS 5.9)
Asterisk 1.8.20

I failed to record more than 80 calls.

If I run test with simple IVR, I achieved 400+ calls with same server.
So write seem to be an issue. 
Is there any way to tune / optimize / configure for better write performance?

I am not sure if I need to post this query on developers list? Please guide...

Regards
Amit Patkar

Message: 1
Date: Fri, 24 Jan 2014 11:46:39 -0400
From: Mike <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:ispbuilder@gmail.com"><ispbuilder@gmail.com></a>
To: Asterisk Users Mailing List - Non-Commercial Discussion
        <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:asterisk-users@lists.digium.com"><asterisk-users@lists.digium.com></a>
Subject: Re: [asterisk-users] IOPS required by Asterisk for Call
        Recording
Message-ID: <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:52E28ADF.8020409@gmail.com"><52E28ADF.8020409@gmail.com></a>
Content-Type: text/plain; charset="iso-8859-1"

On 14-01-24 11:16 AM, Amit wrote:
</pre>
        <blockquote type="cite" style="color: #000000;">
          <pre wrap="">If I assume that Asterisk will write data on disk every second for
each call, I will need disk array to support minimum of 500 IOPS.
Where as if Asterisk push data every 2 seconds, I can deal with array
supporting 250 IOPS.
But if I assume that Asterisk will write data on disk for every RTP
packet received, as and when received, I will need disk IO system with
approx 25000 IOPS assuming 20 ms RTP packet.
</pre>
        </blockquote>
        <pre wrap="">You're assuming that asterisk will perform an fsync() after each write.
If asterisk writes without an fsync after each write, then the OS will
schedule writes intelligently based on RAM/disk IO available rather than
scheduling each one as a separate write.

Looking at the code for ast_writestream() there doesn't appear to be an
fsync() type call after each write, but someone more familiar with the
internals of Asterisk would be better able to verify that.
<font color="#000000"><span style="mso-ansi-language:EN-US" lang="EN-US"><o:p></o:p></span></font></pre>
      </div>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Ron Wheeler
President
Artifact Software Inc
email: <a class="moz-txt-link-abbreviated" href="mailto:rwheeler@artifact-software.com">rwheeler@artifact-software.com</a>
skype: ronaldmwheeler
phone: 866-970-2435, ext 102</pre>
  </body>
</html>