Jump to content

Recommended Posts

Posted

Hi,

I have a question regarding the number of users that a Kazoo installation can support?  How does it scale and are there load tests that illustrate results for particular numbers of users?

 

Thanks so much for your help on this.

 

 

Posted

Hey @Dolphin

Your question is a bit loaded :-)

Users alone have no real issue in Kazoo. I think you're asking about devices. How many are you looking to support? We have quite a few ourselves. Are you asking about a multi-zone deployment, a single server, something hosted by 2600, or something unique? These devices, are you thinking of devices that register, or devices that are forwards like a cell phone? Any idea of the number or ratio of each?

There are various test tools that 2600 uses to load test each build that's produced. I'm unclear if the data is published anywhere, i'd defer to @Darren Schreiber to better attack that question. Load tests are created in the 'Make Busy' framework (opensource and available on github). In my experience, there are a few ceilings per zone, but since it's easy enough to create a new zone, the scaling is almost infinite. If you're looking to scale your products out of, say, an Asterisk-based platform to something more enterprise-level, Kazoo has what you need, and they're a great organization to support your growth. They've been putting up with me for almost four years now!

Posted

Hi,

 

Thanks so much for your reply.  I'm interested in supporting 250,000 devices.

Please let me know whether you need additional information.

 

-Jon

  • Administrators
Posted

To add more, will your devices be doing HD audio? Video? Lots of transcoding between WebRTC (using OPUS) and PSTN (using PCMU)? Conferencing? If so, how many participants? Support for SIP over TCP/TLS/VPN/etc (basically non-UDP)? SRTP? Fax? Expected CPS and concurrent calls? Lots of presence/BLF/other features?

As mentioned, you can create more zones to isolate load based on geography (typically). You can throw bigger hardware at the problem. You can buy bigger and bigger pipes. You can host and get cross-connects in the same data-centers with your upstream providers. But there's no magic formula for inputting X devices and getting Y infrastructure costs. There are best practices that get you pretty far but eventually something will crack and you'll need good monitoring to detect those cracks.

So, yes, Kazoo can be (and is) deployed to support 250K+ devices. As you grow, different parts of the infrastructure will fall down and need improvement, and where those spots are tend to be unique values for each installation (esp since usage patterns tend to vary greatly).

We can be your partner in that journey to 250K and anticipate a lot of the growing pains :)

Posted

@mc_  - you beat me to it!

Based on conversations I've had about our own scalability, Kamailio servers support between 25-50K devices per box. This number varies based on BLF subscriptions and SIP timers such as keep-alive OPTION messages, REGISTERs, and general call volume. Kamailio is cluster-able, so with the use of SRV records, you can spread the devices out across many servers. I suggest doing N+1 to ensure that if a single server or zone goes down, the remaining infrastructure can take on the rest of the load. 

FreeSWITCH scaling is more reliant on usage data in calls per second, and whether certain features are turned on like video, encryption, etc.

I'm not sure I agree with James on the 'lots' of growing pains, but as mentioned, in every deployment there are different use-cases and potential ceilings that have never been hit before. The one thing I can say is that 2600 has addressed every issue we're ever had with scaling very professionally and prioritized based on any customer impact.

Posted (edited)

Also number of cores used I think.  Kazoo runs multiple beams (Erlang VMs) corresponding to the different applications and each beam can run on its own core.  So Kazoo loves lots of cores.  Even if half are hyperthreaded I think it still helps a lot.

Edited by amn (see edit history)
×
×
  • Create New...