Can you get a reading of the total number of I/Os during your test? Peak IOPS? That might tell you very quickly about the storage pattern that Asterisk uses.

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.

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.

What happens at 80 calls to tell you that you have run out of IOPS?

Sorry for more questions than answers.

Ron



On 25/01/2014 12:26 AM, Amit wrote:
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<[email protected]>
To: Asterisk Users Mailing List - Non-Commercial Discussion
        <[email protected]>
Subject: Re: [asterisk-users] IOPS required by Asterisk for Call
        Recording
Message-ID:<[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

On 14-01-24 11:16 AM, Amit wrote:
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.
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.

--
Ron Wheeler
President
Artifact Software Inc
email:[email protected]
skype: ronaldmwheeler
phone: 866-970-2435, ext 102

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
               http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to