Wowza Community

How to calculate bandwidth and server needs?

Can someone please tell me a simple way to calculate my bandwidth needs in using the wowza server to deliver recorded streams or live content? I have checked your performance tests and other threads, but I’m not sure I fully understand.

I am currently running about 60 hours of content in Real Player 256kbps streams (via http streaming, broken into many 10 minute clips). Using this old school approach, my monthly transfer is about 300 gigs. I have a dedicated metered server, with a 100 mbps connection.

I want to switch to wowza to offer a better user experience, and I am planning on encoding the entire videos (about 60 minutes each) into low and high band versions (100 kbps for low band, and 400-500 for high band).

QUESTIONS:

  1. Do these encoding standards sound realistic?

  2. How do I calculate my bandwidth needs? I have about 250 subscribers, and I don’t know how many would be CONCURRENT viewers, but I wouldn’t think it’s more than 10 or 20 at any given time. Is the math pretty much “x” number of concurrent users multiplied by the data rate, for example:

10 concurrent users x 500 kbps = 5 mbps ??

I am switching to a new dedicated server that has a 5 mbps UNMETERED connection and I thought that would be more than enough, but now I’m thinking it’s way too little.

  1. Am I better off with a METERED connection that has an unthrottled 100 mbps connection, rather than an unmetered 5 or 10 mbps connection.

  2. Finally, what impact do the caching and I/O or hard disk speeds play in the performance? What would you recommend as a server configuration and bandwidth allocation for someone with my specs: 60 to 100 hours of video, no more than 20 concurrent users at peak and usually a lot less?

  3. How can I test the server’s capability in advance, and should I run Wowza on it’s OWN server, or side by side with my domains and apache?

Thanks in advance,

Craig

Craig,

I am planning on encoding the entire videos (about 60 minutes each) into low and high band versions (100 kbps for low band, and 400-500 for high band).

  1. Do these encoding standards sound realistic?

How slow are the slowest clients you are attempting to serve, and how low a bitrate is acceptable? If you have clients connecting on 56kbs modem, 100kbs is too big. But I doubt that it’s realistic to serve 56kbs modems. I suggest you encode one or two with various bit rates and test first.

  1. How do I calculate my bandwidth …Is the math pretty much “x” number of concurrent users multiplied by the data rate, for example: 10 concurrent users x 500 kbps = 5 mbps ??

Yes, I think it is that simple. Too bad you are guessing about the usage, it would be better if you had hard numbers. Peaks are critical, average usage doesn’t matter that much except re cost.

I am switching to a new dedicated server that has a 5 mbps UNMETERED connection… Am I better off with a METERED connection that has an unthrottled 100 mbps connection, rather than an unmetered 5 or 10 mbps connection.

I think that the 100 mbps unthrottled metered is the better option for you. If you are right about your usage 5 mbps is not an option. 10 mbps maybe, but there is little room. (also, 5 mbps unmetered sounds like a gimmick. If you really need unmetered, 5 mbps will probly be a bottleneck.)

  1. Finally, what impact do the caching and I/O or hard disk speeds play in the performance? What would you recommend as a server configuration and bandwidth allocation for someone with my specs: 60 to 100 hours of video, no more than 20 concurrent users at peak and usually a lot less?

The hours of video doesn’t matter much, just the peaks, bit rate and concurrent users. Check out this performance test FAQ, which includes hardware specs you can use as a baseline.

http://www.wowza.com/faq.html#f2

  1. How can I test the server’s capability in advance, and should I run Wowza on it’s OWN server, or side by side with my domains and apache?

(Hey, that’s two questions.)

Wowza has a load testing tool available by sending a request to: test@wowza.com.

It can’t hurt to separate them in terms of performance. It’s not the same calculation as for example separating the db where the typical web app needs the db to complete a response and having it on another machine is overhead. Here the web server is just serving the html and swf, which connects to Wowza from the client. If you are going to use tunnelling (rtmpt) you need some separation, altho this can be done on one machine with a second IP.

Have you looked into EC2, Amazon’s Elastic Cloud service? There is Wowza EC2 product. It is not an easy transition, there is much to learn and new ways to do things, but it does offer a solution to this anxiety around usage, growth, bandwidth and cost.

Craig,

Sounds like you are using a web server in your current setup. You could crunch the web server’s log files, or a tag based system, maybe, like google analytics, to try to get an idea of what your peak activity is.

Personally I would go with the log files, just remember to filter out spider activity.

I have used a cheap, but not free, product called Weblog expert. No two of these products will give you the same report, and they are often wildly different, so you have to look at a lot of data and decide what it means sometimes.

200 500kbs streams on a 100mbs card looks exactly right. I’m guessing actual would be less some amount for overhead or other factors.

I had a thought about the stats, I realize a tag system (like google analytics) would be better than logs. Tag systems are able to distinguish human sessions. They are very accurate about that, whereas the log files are always guessing unique visitors, because they only see IPs and hit patterns. And it’s the least accurate with peaks, and especially if you have corporate clients because concurrent users could have the same IP, so it is impossible for the log analyzer to report accurately in that case.

On the other hand, log files will tell you exactly what files were requested and when. You would probly find this data useful too.

Craig,

I don’t know much about hosting plans. Makes sense that you are going to pay more for overages on the econo plan. Have you considered EC2? It’s more on the level about what you are paying and getting.

I’m not sure what the concern is about concurrent flv streams compared to what you are doing now. And i’m not sure what “http streaming” of real media from a web server is, but that sounds like progressive download of flv. If so, I would guess that Wowza would be more efficient for the same content, converted.

But I’m out of my depth here, actually. I don’t know.

Richard

Hi…

Thanks for the reply. You’re correct that it’s unfortunate I am guessing at the number of possible concurrent users, but how else can I do it on a new offering like this? I know my current number of members and I know the amount of bandwidth they use viewing realmedia versions of my videos, but I don’t know how many are concurrent. Any advice would be welcomed.

Thanks, you’ve been very helpful. So, just to clarify – ROUGH MATH again – if I got a METERED server with a 100 mbps port, would I be able to serve up about 200 CONCURRENT streams at 500 kbps each? It seems like my issue is more about the concurrent peak usage, rather than the total transfer, and in that case…a metered server with a fat pipe is really better. Am I understanding that correctly?

Yes, I agree with you about google analytics, but I dont have this data on my existing server with real media http streams. I know how many members and general viewing patterns, but not concurrent, so that’s why I’m guessing…to some degree.

By the way, my hosting company responded and said I am on a 5 mbps plan BURSTABLE to 100 mbps, and they said that should be more than enough to handle peak spikes, and if we see we’re doing consistently more than it can handle, we could amp up to a higher plan. Of course it costs more in overages (over the 5 mbps committment), as measured in 95th percentile.

I’m still unclear why a gigs-per-month plan isn’t better, as long as it gives me true access to the 100 mbps pipe consistently. Those kinds of plans exist, right?

Sorry to be so newbie on this…I’ve had ded servers for years for domains, and for real media clips (http streaming)…and I never push more than 300 gigs a month. But now, I’m concerned that the CONCURRENT streams of wowza may suck up too much of the pipe and either slow things down, or cost too much in overages.

ugh

I’ll have my tech guy look at ec2 again. I get lost in their INSTANCES and all that, and how to calculate costs.

My hosting company responded to me and said the following:

“There is no “set transfer” on a server. There is commitment levels, such as 5 mbps. In other words, the more you commit to, the cheaper per-unit it is. However, all servers have full use of 100 Mbps connection”

I asked them if the drives support 15K RPM and they said:

“Not the ones in your server. The only disks that support 15k are very expensive SCSI drives but that doesn’t really matter because apache caches in RAM. We have customers doing over 2 Gbps of traffic on servers just like yours, so I doub the server will be the limiting factor here.”

is about concurrent flv streams compared to what you are doing now. And i’m not sure what “http streaming” of real media from a web server is, but that sounds like progressive download of flvسئو. If so, I would guess that Wowza would be more efficientکفسابی

URRENT streams at 500 kbps each? It seems like my issue is more about the concurrent peak usage, rather than the total transfer, and in that case…a metered server with a fat pipe is really better. Am I understanding that correctly?کفسابی

streams at 500 kbps each? It seems like my issue is more about the concurrent peak usage, rather than the total transfer, and in that case…a metered server with a fat pipe is really better. Am I understanding that correctly? فیلم

Thanks, you’ve been very helpful. So, just to clarify – ROUGH MATH again – if I got a METERED server with a 100 mbps port, would I be able to serve up about 200 CONCURRENT streams at 500 kbps each? It seems like my issue is more about the concurrent peak usage, rather than the total transfer, and in that case…a metered server with a fat pipe is really better. Am I understanding that correctly?