Sponsor: VoiceMeUp - Corporate & Wholesale VoIP Services

VoIP Mailing List Archives
Mailing list archives for the VoIP community
 SearchSearch 

[asterisk-users] IOPS required by Asterisk for Call Recording

Goto page 1, 2  Next
 
Post new topic   Reply to topic    VoIP Mailing List Archives Forum Index -> Asterisk Users
View previous topic :: View next topic  
Author Message
amit at avhan.com
Guest





PostPosted: Fri Jan 24, 2014 10:15 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

Hi

What are the disk IOPS required for Asterisk call recording?
I am trying to find out number of disks required in RAID array to record 500 calls.
Is there any formula to calculate IOPS required by Asterisk call recording? This will help me to find IOPS for different scale.

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.

Please assist me on this requirement.

212 Clean Clean false false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4 <![endif]--> <![endif]--> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";} <![endif]--> <![endif]--> <![endif]-->
Thanks & Regards,
Amit Patkar
Back to top
ispbuilder at gmail.com
Guest





PostPosted: Fri Jan 24, 2014 10:46 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

On 14-01-24 11:16 AM, Amit wrote:

Quote:

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.

Quote:
--
Looking for (employment|contract) work in the
Internet industry, preferably working remotely.
Building / Supporting the net since 2400 baud was
the hot thing. Ask for a resume! ispbuilder@gmail.com (ispbuilder@gmail.com)
Back to top
asterisk_list at earth...
Guest





PostPosted: Fri Jan 24, 2014 11:33 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

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

If you are running on Linux, don't forget that Linux's default behaviour is to
cache all disk writes until the machine is rebooted or the RAM is needed for
something else, and service read operations from the cache. In fact, it's
entirely possible for a temporary file to be written, read and deleted without
ever going anywhere near a molecule of oxide.

Solaris has the opposite default caching strategy -- it assumes the worst
about filesystem integrity, and write operations block until decaching and
verifying have finished.


--
AJS

Answers come *after* questions.

--
_____________________________________________________________________
-- 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
Back to top
amit at avhan.com
Guest





PostPosted: Sat Jan 25, 2014 12:57 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

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


--
_____________________________________________________________________
-- 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
Back to top
amit at avhan.com
Guest





PostPosted: Mon Jan 27, 2014 10:49 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

Quote:
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 <ispbuilder@gmail.com> (ispbuilder@gmail.com)
To: Asterisk Users Mailing List - Non-Commercial Discussion
<asterisk-users@lists.digium.com> (asterisk-users@lists.digium.com)
Subject: Re: [asterisk-users] IOPS required by Asterisk for Call
Recording
Message-ID: <52E28ADF.8020409@gmail.com> (52E28ADF.8020409@gmail.com)
Content-Type: text/plain; charset="iso-8859-1"

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

--
Looking for (employment|contract) work in the
Internet industry, preferably working remotely.
Building / Supporting the net since 2400 baud was
the hot thing. Ask for a resume! ispbuilder@gmail.com (ispbuilder@gmail.com)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20140124/590804b7/attachment-0001.html>

------------------------------

Message: 2
Date: Fri, 24 Jan 2014 16:34:17 +0000
From: A J Stiles <asterisk_list@earthshod.co.uk> (asterisk_list@earthshod.co.uk)
To: "Asterisk Users Mailing List - Non-Commercial Discussion"
<asterisk-users@lists.digium.com> (asterisk-users@lists.digium.com)
Subject: Re: [asterisk-users] IOPS required by Asterisk for Call
Recording
Message-ID: <201401241634.17311.asterisk_list@earthshod.co.uk> (201401241634.17311.asterisk_list@earthshod.co.uk)
Content-Type: Text/Plain; charset="iso-8859-6"

On Friday 24 January 2014, Mike wrote:
Quote:
On 14-01-24 11:16 AM, Amit wrote:
Quote:
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.
If you are running on Linux, don't forget that Linux's default behaviour is to
cache all disk writes until the machine is rebooted or the RAM is needed for
something else, and service read operations from the cache. In fact, it's
entirely possible for a temporary file to be written, read and deleted without
ever going anywhere near a molecule of oxide.

Solaris has the opposite default caching strategy -- it assumes the worst
about filesystem integrity, and write operations block until decaching and
verifying have finished.


--
AJS

Answers come *after* questions.






212 Clean Clean false false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4 <![endif]--> <![endif]--> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";} <![endif]--> <![endif]--> <![endif]-->
Thanks & Regards,
Amit Patkar


On 1/24/2014 8:46 PM, Amit wrote:

Quote:
Hi

What are the disk IOPS required for Asterisk call recording?
I am trying to find out number of disks required in RAID array to record 500 calls.
Is there any formula to calculate IOPS required by Asterisk call recording? This will help me to find IOPS for different scale.

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.

Please assist me on this requirement.

212 Clean Clean false false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4 <![endif]--> <![endif]--> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";} <![endif]--> <![endif]--> <![endif]-->
Thanks & Regards,
Amit Patkar

Back to top
asterisk at lists.mino...
Guest





PostPosted: Mon Jan 27, 2014 11:27 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

On 25/1/14 5:26 am, Amit wrote:
Quote:
How do I derive the requirement? I need to size IO system to record
multiple calls concurrently.

I suspect this might be your problem:
Quote:
250GB SATA disk (No RAID)

Quote:
Is there any way to tune / optimize / configure for better write
performance?

Perhaps consider recording to a ramdisk first, then periodically write
out completed files to HDD at your leisure (e.g. during slack periods)?

Or, given the relatively low cost of 250GB SSDs these days, swap out the
spinning disc for an SSD.

Kind regards,

Chris
--
This email is made from 100% recycled electrons

--
_____________________________________________________________________
-- 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
Back to top
ispbuilder at gmail.com
Guest





PostPosted: Mon Jan 27, 2014 11:39 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

On 14-01-25 01:26 AM, Amit wrote:
Quote:
250GB SATA disk (No RAID)
If you care enough to record the calls, you should care enough to get
some fast and redundant storage. SSDs would be best, 15K SAS drives
second choice. Even a good RAID10 of SATA drives would help a lot.

A RAID card with battery backed cache would be helpful as well.

--
Looking for (employment|contract) work in the
Internet industry, preferably working remotely.
Building / Supporting the net since 2400 baud was
the hot thing. Ask for a resume! ispbuilder@gmail.com


--
_____________________________________________________________________
-- 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
Back to top
patrick at laimbock.com
Guest





PostPosted: Mon Jan 27, 2014 12:14 pm    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

On 25-01-14 06:26, Amit wrote:
Quote:
Thanks for response.
How do I derive the requirement? I need to size IO system to record multiple calls concurrently.

I'm not aware of 400+ calls being recorded succesfully on an Asterisk
box. If there is it probably has tons of RAM, enterprise grade SSDs or
15K RPM FC/SAS drives in a battery backed RAID setup or a fast SAN
saving the calls in native format (via a tmpfs) with the transcoding
probably done on another box.

Quote:
I ran test with following configuration
Quad Core Xeon with 4GB RAM

Add more RAM and much much more if you are going to use tmpfs.

Quote:
250GB SATA disk (No RAID)

Well you get the performance you pay for. CentOS comes with various
utilities that allow you to analyze that.

Quote:
Linux (CentOS 5.9)

Imo CentOS 6.5 (x86_64) has better performance.

Quote:
Asterisk 1.8.20

In 9 months Asterisk 1.8 will only get security fixes. I would use
Asterisk 11. It will get regular bug fixes for a much longer time.

Quote:
I failed to record more than 80 calls.

Hardly surprising.

Quote:
If I run test with simple IVR, I achieved 400+ calls with same server.

A simple IVR is not the same as call recording. The comparison makes as
much sense as saying that copying to /dev/null is faster than to a disk.

Quote:
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...

No, this is a user question and does not belong on the developer list.

Since you seem to work for a call center business perhaps investigate a
commercial solution like Orecx (I have no affiliation):

http://www.orecx.com/OrecX-for-Asterisk.php

HTH,
Patrick

--
_____________________________________________________________________
-- 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
Back to top
dtaylor at vocalabs.com
Guest





PostPosted: Mon Jan 27, 2014 1:08 pm    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

On 01/24/2014 11:26 PM, Amit wrote:
Quote:
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'd suggest testing your system while monitoring with top and iotop
(which should be a "yum install" away).

That should show you your bottlenecks.

It looks to me like Asterisk doesn't do compression until the call is
ended, so recording to a compressed format would actually increase IO
load (write, read and compress, write compressed data).

--
Daniel Taylor

--
_____________________________________________________________________
-- 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
Back to top
rwheeler at artifact-s...
Guest





PostPosted: Mon Jan 27, 2014 2:02 pm    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

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:

Quote:
Quote:
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 <ispbuilder@gmail.com> (ispbuilder@gmail.com)
To: Asterisk Users Mailing List - Non-Commercial Discussion
<asterisk-users@lists.digium.com> (asterisk-users@lists.digium.com)
Subject: Re: [asterisk-users] IOPS required by Asterisk for Call
Recording
Message-ID: <52E28ADF.8020409@gmail.com> (52E28ADF.8020409@gmail.com)
Content-Type: text/plain; charset="iso-8859-1"

On 14-01-24 11:16 AM, Amit wrote:
Quote:
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: rwheeler@artifact-software.com (rwheeler@artifact-software.com)
skype: ronaldmwheeler
phone: 866-970-2435, ext 102
Back to top
mjordan at digium.com
Guest





PostPosted: Mon Jan 27, 2014 4:54 pm    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

On Mon, Jan 27, 2014 at 1:02 PM, Ron Wheeler
<rwheeler@artifact-software.com> wrote:
Quote:
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?

Dovetailing on this question, I'll add one as well:

Are you recording using MixMonitor, or Monitor?

Depending on your answer to the "what happens at 80 calls", you may
get better results with MixMonitor over Monitor. MixMonitor offloads
the recording of the media to a separate thread; Monitor attempts to
record the audio on the thread servicing the channel(s).

Matt

--
Matthew Jordan
Digium, Inc. | Engineering Manager
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org

--
_____________________________________________________________________
-- 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
Back to top
tiago.geada at gmail.com
Guest





PostPosted: Mon Jan 27, 2014 7:14 pm    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

Hi,


MixMonitor takes a parameter of a system command to run when the recording finishes. Like Chris said, you can write to ramdisk, and run a script that will move the file into final position only when the call has done recording


Here we use:
                                Set(recordFile=${UNIQUEID}_${NUMBER}.gsm);
                                Set(recordPath=/var/log/asterisk/recordings/${CALLERID(dnid)}/${STRFTIME(${EPOCH},GMT+0,%F)});
                                MixMonitor(/ramdrive/${recordFile},,/usr/local/bin/mixmon "${recordFile}" "${recordPath}");
                                SIPAddHeader(X-REC-FILE: ${recordPath}/${recordFile});


and /usr/local/bin/mixmon will move the file to $recordPath and whatever else needs done on that file...






On 27 January 2014 21:55, Matthew Jordan <mjordan@digium.com (mjordan@digium.com)> wrote:
Quote:
On Mon, Jan 27, 2014 at 1:02 PM, Ron Wheeler
<rwheeler@artifact-software.com (rwheeler@artifact-software.com)> wrote:
Quote:
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?


Dovetailing on this question, I'll add one as well:

Are you recording using MixMonitor, or Monitor?

Depending on your answer to the "what happens at 80 calls", you may
get better results with MixMonitor over Monitor. MixMonitor offloads
the recording of the media to a separate thread; Monitor attempts to
record the audio on the thread servicing the channel(s).

Matt

--
Matthew Jordan
Digium, Inc. | Engineering Manager
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org

--
_____________________________________________________________________
-- 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


Back to top
amit at avhan.com
Guest





PostPosted: Wed Jan 29, 2014 7:34 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

Thanks Ron.
I will try to get these readings. About RAM disk, I will study on how to create RAM disk and conduct this test again.
There is no bottleneck on network.

After 80 calls, I see call drops, delay in responding, time out, re-transmission of SIP messages. If load is reduced, it settles again to normal.

212 Clean Clean false false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4 <![endif]--> <![endif]--> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";} <![endif]--> <![endif]--> <![endif]-->
Thanks & Regards,
Amit Patkar



On 1/28/2014 12:32 AM, Ron Wheeler wrote:

Quote:
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:

Quote:
Quote:
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 <ispbuilder@gmail.com> (ispbuilder@gmail.com)
To: Asterisk Users Mailing List - Non-Commercial Discussion
<asterisk-users@lists.digium.com> (asterisk-users@lists.digium.com)
Subject: Re: [asterisk-users] IOPS required by Asterisk for Call
Recording
Message-ID: <52E28ADF.8020409@gmail.com> (52E28ADF.8020409@gmail.com)
Content-Type: text/plain; charset="iso-8859-1"

On 14-01-24 11:16 AM, Amit wrote:
Quote:
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: rwheeler@artifact-software.com (rwheeler@artifact-software.com)
skype: ronaldmwheeler
phone: 866-970-2435, ext 102
Back to top
ispbuilder at gmail.com
Guest





PostPosted: Wed Jan 29, 2014 7:36 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

On 14-01-29 08:34 AM, Amit wrote:

Quote:
Thanks Ron.
I will try to get these readings. About RAM disk, I will study on how to create RAM disk and conduct this test again.
There is no bottleneck on network.


To create a ramdisk under Linux, assuming you have enough ram -


# mkdir /ramdisk
# mount -t tmpfs tmpfs /ramdisk


Quote:
--
Looking for (employment|contract) work in the
Internet industry, preferably working remotely.
Building / Supporting the net since 2400 baud was
the hot thing. Ask for a resume! ispbuilder@gmail.com (ispbuilder@gmail.com)
Back to top
amit at avhan.com
Guest





PostPosted: Wed Jan 29, 2014 7:36 am    Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin Reply with quote

I am using Monitor function. Let me try with MixMonitor and update.
After 80 calls, I see retransmission of SIP messages, unanswered calls..

212 Clean Clean false false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4 <![endif]--> <![endif]--> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";} <![endif]--> <![endif]--> <![endif]-->
Thanks & Regards,
Amit Patkar
On 1/28/2014 3:25 AM, Matthew Jordan wrote:



Quote:
Quote:
On Mon, Jan 27, 2014 at 1:02 PM, Ron Wheeler
<rwheeler@artifact-software.com> (rwheeler@artifact-software.com) wrote:
Quote:
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?

Dovetailing on this question, I'll add one as well:

Are you recording using MixMonitor, or Monitor?

Depending on your answer to the "what happens at 80 calls", you may
get better results with MixMonitor over Monitor. MixMonitor offloads
the recording of the media to a separate thread; Monitor attempts to
record the audio on the thread servicing the channel(s).

Matt

Back to top
Display posts from previous:   
Post new topic   Reply to topic    VoIP Mailing List Archives Forum Index -> Asterisk Users All times are GMT - 5 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group

VoiceMeUp - Corporate & Wholesale VoIP Services