Thinking About Load Testing: It’s Not Just for the Enterprise
Expectations for larger audiences continue to grow for my small-to-medium-business (SMB) clients. This shift in scale makes accurately gauging capacity for on-demand cloud instances running streaming media server technologies such as Wowza Streaming Engine, Adobe Media Server, or NGINX no longer just nice to have, but necessary.
While the cloud platform can be from any of the big three (Amazon Web Services, Microsoft Azure, or Google Cloud), nearly 100 percent of my clients already have and/or actively use Amazon Web Services for their cloud needs. The majority of my clients are running Wowza Streaming Engine installed on Amazon Linux AMIs, and they’re running instances 24x7, although some only need to spin a cloud instance for specific live event time periods.
One of the most common questions I’m asked is, “How large of an instance and how many instances does my video server need for my audience?” The answer to this question involves a variety of factors:
1. Audience size: You should have some idea of the maximum count of viewers simultaneously watching video on demand (VOD) or live streams from your cloud infrastructure. The larger the anticipated audience peak size, the more thought and effort needs to go into your deployment.
2. Complexity of deployment process: The CPU, RAM, and network resources required for one or more cloud instances in your video deployment will vary based on the layers of technology surrounding your media delivery. Multiplexing is fairly light on CPU and RAM allocation, but hefty amounts of CPU or GPU will be required to convert a single high bitrate incoming live stream to multiple bitrates for adaptive delivery.
3. Continuity of business requirements: Every company has a different definition of “good enough” with respect to acceptable levels of service uptime. For example, if you’re a new startup with a beta product, you might be okay with a service failure or maintenance window that’s longer than a few minutes. However, if you need guaranteed, around-the-clock service for your customers, you’ll likely need to use some form of load balancing among multiple cloud instances. If one instance has an unexpected failure, another instance is there to pick up the slack. More instances mean a higher average monthly cost to maintain your video deployment.
Once you’ve considered these factors, you can start to engineer a cloud deployment plan that suits your business requirements.
To test your infrastructure, you can use an open source tool called Apache JMeter to create multiple simultaneous connections to your media server infrastructure. You typically want to run JMeter on a dedicated cloud instance that is on the same private subnet within the same region as your video server instance(s). Note that you can create your own global content delivery network (CDN) across several regions, and you can test within each of these regions independently.
One of the best tutorials I’ve found for load testing with JMeter was written by Itay Mendelawy of BlazeMeter. This particular tutorial focuses on Apple HLS load testing, which is likely—and deservedly— one of the primary formats used in your deployment for adaptive streaming to mobile apps or browsers as well as desktop browsers. While you’re conducting a load test, you’ll want to monitor the health of your video server instance(s), making sure that CPU loads never reach 100 percent or RAM allocations are maxed out. Wowza Streaming Engine has a GUI management interface that allows you to monitor CPU, RAM, and network use.
There are always other variables that can come up—like the DDoS firewall that a client forgot to factor in while hammering some of its own heavily protected servers on a recent test. Nevertheless, the troubleshooting will go faster and cost less if you have worked through the parameters for gauging your requirements and if you build in time to methodically test the streaming capacity you have in place to support your expected audience—and their expectations!
[This article appears in the October 2016 issue of Streaming Media magazine as "Load Testing: It’s Not Just for the Enterprise."]
The CEO of RealEyes shares his personal video engineering toolbox, which contains solutions for diagnosing, fixing, analyzing, and interpreting problems with streaming video.
The Dutch developer releases research which promotes claimed industry leading load-balancing and latency improvements for MistServer
Learn how one company's automated CDN and ISP testing enhances traffic delivery for streaming video and more.