Asterisk-now, virtualization in virtualbox & breakup


#1

Hi,
I’m a new asterisk user (though I’ve worked on telephony platforms in the past) and wanted to do some simple ivr/voicemail at home - connected to a SPA3102 gateway.

I already have a windows home server running 24x7 albeit with a lowly 2.? Ghz celeron & 2GB ram (HP EX490).

As a starting point I downloaded asterisk-now 2.7 & installed under the latest version of virtualbox. The install was smooth & within an hour or so I had everything up to date with v2.9 including freePBX, and a few simple extensions configured with a couple of sip clients. (no SPA3102 integration yet - later!)

However I’m getting audio breakup in prompts such as speaking clock & other menus. Glitches rather than large gaps.

The VM currently has USB, vnc disabled & is set to 256MB ram. The host is running at low CPU before virtualbox is started. Once asterisk is running the guest cpu is reporting idling at a ~3% cpu but oddly the virtualbox process is running around 50% cpu (and has reached 80). Networking is bridged to a local gigabit ethernet adapter (clients are either on the gig.E or via a 802.11n wireless connection)

I’ve tried setting the process to high/realtime, and enabling host I/O caching – but this made no difference. I’ve also added “divider=10” in the guest kernel config, though haven’t yet installed the vb tools. I’ve tried making the virtual disk solid state (in case there’s an I/O performance issue here). Having done all this the host virtualbox is now running at < 10% cpu (usually around 5% idle, 8% busy), and the guest remains running at a few % even when playing prompts

However the audio stutters remain

Any ideas on tweaks to configuration? I was wondering if there are scheduling issues with virtual box. Should I try vmware? or another virtualization tool? Do I need to give up and try finding a native windows port (unlikely for current asterisk versions, and much longer to get working), or give up totally and/or find a box to run it on (rasperry pi good enough I wonder? !)

I do also have a jogger, which could run native – and some old routers running ddwrt, but unlikely they have enough ram. Or a nokia n900 handset - but wouldn’t want to have network dependent on a mobile…


#2

VoIP and virtual machines don’t mix well. You need scheduling latencies of of less than 20ms. Whilst it can be done, you should be sharing with other work with known characteristics.

This would be the wrong forum for AsteriskNow, but the performance issues apply to the raw Asterisk, rather than the GUI.

Your symptoms probably relate to disk scheduling, rather than CPU scheduling.


#3

thanks for the reply. I figured as much – wasn’t sure what recommendations there might be on tweaks (to VB or asterisk).

Since posting I enabled the virtual box tools, which seems to have had a significant effect. It’s not quite perfect yet

Wonder how well asterisk might work on the rasberry pi – I may use the vm to experiment for now, but consider a dedicated box once those systems are available.