Re: Capacity Planning / Hardware limits

Tech-Archive recommends: Fix windows errors by optimizing your registry



Thanks for the reply!

First of all, you need to tell us if we are discussing live playout
webcasting or streaming static video's on demand.
The large scale events will be live, then rolling to traditional on-demand
usage. The actual mix will probably be 95% live stream but during parts of
the year dip down to maybe 70% live stream, the rest being on-demand.


Getting 30,000 concurrent viewers on a livestream will be alot easier
compared to serving 30,000 concurrent ondemand video views.
As expected because disk I/O isn't an issue.

Getting 30,000 concurrent livestream viewers will be a matter of
determining maximum serverload and then add servers till you get where
you want to be.
If we were friends, I'd make a sarcastic remark here, like "duh" ; )

Determining the maximum load of a server will be the hard part, I was
not able to find much accurate benchmarks on recent hardware.
Modern hardware has made a big leaps since the P2 CPU's used in the
old benchmarks though.

1) Caching 'on demand' video files will be an interesting topic of
discussion. Basically disk I/O performance will be your first
bottleneck when serving on demand video files.
It is intended for the live stream events.

As far as I know Windows Media Services has no out-of-the-box caching
or distribution mechanism built-in. You should be aware of the fact
that WMS will utilize 512MB of RAM at most for caching. Adding alot of
RAM to your servers is a waste of resources from what I have seen. I
would really like to know why Microsoft chose to only use 512MB of
system memory. WMS does provide support for custom 'caching' plugins,
I would love to hear what people have produced in this area. The SDK
supposedly has source examples availble.
I was refering to setting server A as the source of the live stream,
assumingly fed from a Windows Media Encoder running at the event. Servers B,
C, D, etc. would then publish a "remote publishing pont" so that server A was
never overloaded, and servers B -> ? would handle individual client
connections. This way I would be able to scale up and keep server A's
performance stable. Access ing servers B -> ? would be via a hardware load
balancer. In Longhorn, there seems to be built in support for this (Proxy)


I would really like to know if 64bit WMS can cache more than 512MB in
memory!

http://www.microsoft.com/windows/windowsmedia/forpros/serve/features.aspx
infers that 64 bit increases performance by 40%, and Longhorn an additional
40%.



For performance and redundancy sake you will need to run multiple
servers. Are you going to use central storage (SAN) or direct attached
storage (DAS) to store your video files? You will either need a really
fast, large and stable (single point of failure) SAN or face the
problem of file replication to multiple Windows Media servers.
Depending on the pool of video's and how it is used, at any time 99%
of the requests could be for 1% of your data. Succesfully implementing
somesort of caching mechanism will greatly offload your spindles and
vastly increasy your capacity. You will want to run a minimum of 2
networks on your servers, one for server to server communication and
one to talk to your end-user.

SAN Storage will most likely be used for the video files.

I am really curious as how other people are handling caching.

2) Modern clocked multicore Xeon CPU's are fast and likely not a
bottleneck in your system. A modern server should be able to fully
saturate a Gigabit ethernet channel easily. We use dynamic link
aggregation on Intel multiport Gigabit Nics to create multi-gigabit
trunks to our core router (802.3AD).
Great information!

We are still not sure where the limit is here but we have been able to
succesfully saturate nearly 2 Gbit per server during live events.
Microsoft has an application called 'Windows Media Load simulator'
available but stress testing multi gigabit links isnt that easy.

3) One of the downfalls of 32bit numbers is the limit to 4,294,967,296
in size (2^32). Windows stores the amount of memory in bytes, and
since a 32bit number can only hold 4,294,967,296, there is a limit of
roughly 4 billion bytes (or 4 gigabytes). Basically 32bit Windows can
not address more than 4Gigabyte of memory. Windows will segment the
available 4GB into 2GB of userspace memory and 2GB kernelspace memory.
I have seen WMS will not use over 512MB for file caching so this is no
problem. However, for each client connection WMS will need to reserver
some memory. If you want to run alot of concurrent connections it will
be possible for WMS to run out of available 2GB user space memory.
Some tweaks are possible like using Physical Address Extension and
dividing the kernelspace memory differently but my advice would be to
always use 64bit Windows. Driver or 3rd party application
incompatibility may be a problem though but this is easily checked.
Also great information!


4) In a 30,000 concurrent viewer setup you will want at least one load
balancer. Traditional loadbalancers are bad for streaming media since
they will want to route return traffic through the loadbalancer. On
high volume traffic this is either impossible or will require very
expensive network equipment. Foundry networks is known for its DSR or
Direct Server Return / Response but Cisco or other vendors will have a
similar solution.
I was expecting to use either a Foundry ServerIron or F5 Big-IP. Thanks for
the heads up on the DSR/R method. I'll look into that as well.

Incoming requests are handled by the loadbalancer to a real server but
return traffic will flow directly back to the client requesting the
data.



It is hard to get some absolute numbers and limits in high volume
setups because alot of variables are involved.
You will want your platform scalable because tomorrow the 300Kbit
stream will be a 800Kbit stream served to 60,000 people.
More servers, bigger pipes!

.



Relevant Pages

  • IP cams to wms
    ... I m looking for an urgent solution for using ip product such as ip cams and ... ip servers, and using the wms to live stream it. ...
    (microsoft.public.windowsmedia.server)
  • Re: IBM x345 Server goes black during memory test of Samsung DIMMs
    ... The whole point of ECC, especially in servers, is to provide a fault ... *every* memory module and still have a functioning system. ... are required to reduce memory reliability issues with IBM OEM DIMM ... across the cross-section of the chassis (wind-tunnel type design). ...
    (comp.sys.ibm.pc.hardware.chips)
  • RE: DLLHOST.EXE and Secure Server Crash
    ... This is a very common problem with COM+ components and IIS. ... | Applications view switch to Status View) ... |>with 2-3 dedicated SSL servers. ... A symptom of the problem centers around memory ...
    (microsoft.public.inetserver.iis.security)
  • Re: Apache and Tux running together
    ... my job we've got a web based product provided by Apache running PHP ... This web application is hosted by multiple servers ... out on the number of httpd processes and falls behind to the ... so I'm thinking I'm memory bound. ...
    (comp.lang.php)
  • Re: Servers dropping like flies
    ... I reseated the memory and it's been fine for a week now. ... I'd start a new thread with any questions regarding the Perc controller and your array setup & tests, ... I've disabled Trend ... On the servers, I'm ...
    (microsoft.public.windows.server.sbs)