VoIP Mailing List Archives
Mailing list archives for the VoIP community |
|
View previous topic :: View next topic |
Author |
Message |
amit at avhan.com Guest
|
Posted: Wed Jan 29, 2014 7:39 am Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin |
|
|
Will check and update.
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 5:45 AM, Tiago Geada wrote:
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 |
|
|
rwheeler at artifact-s... Guest
|
Posted: Wed Jan 29, 2014 8:48 am Post subject: [asterisk-users] IOPS required by Asterisk for Call Recordin |
|
|
I am surprised about the network. It should go before the disk if you have a lot of short transactions. There is a high percentage of overhead on streams of short messages.
Make sure that you check at each point where messages are passing.
Have you done any mathematical modeling of the disk and network traffic?
Try changing your RAM to see if raising it (or lowering it if that is easier) affects the problem.
What is your CPU utilization like at 80 calls?
How many open files do you have at 80 calls? is this near the limit?
Can you adjust the quality of the recordings to reduce the bits stored for each second of audio?
What happens when you do this?
Ron
On 29/01/2014 7: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.
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 | |
--
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 |
|
|
|
|
|
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
|