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

A J Stiles asterisk_list at earthshod.co.uk
Fri Jan 24 10:34:17 CST 2014


On Friday 24 January 2014, Mike wrote:
> 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.

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.



More information about the asterisk-users mailing list