BV Commerce Forum
»
BV Commerce Support
»
General Support
»
Anyone have a load balanced/high Availability site?
Rank: Member
Joined: 8/10/2004(UTC) Posts: 23
|
I was just wondering if anyone has ever ventured in the high availability/load balancing area with BVCommerce 5. We just went live not too long ago and I've been monitoring the CPU/Memory usage and things appear OK, but not great. I'm cautiously optimistic that our dedicated server will handle the loads just fine. During peek hours I've watched the load hover @ around 30+ % for a few minutes and this isn't our busiest time of year (but it will ramp up fast). On Average I'd say the CPU hovers around ~15% under moderate load.
We currently have a high end single CPU dedicated server. It's currently setup with BVC5.5 + SQL 2005 express on the same box. I've noticed that the CPU usage is pretty evenly split between IIS and SQL Server so worse comes to worse I can always get a new dedicated server for the database and that would alleviate 40 - 50% of the load.
But mainly I'm curious if anyone has ventured into load balanced/high availability (clustered) area with BV commerce 5. Ideally, I'd like to load balance the site between 2 front end servers and one database server... Is that remotely possible without major changes to BV Commerce?
Thanks!
|
|
|
|
Rank: Member
Joined: 11/5/2003(UTC) Posts: 1,786
|
BV Commerce 5 supports running multiple front end servers. You will need to run a "state server" to share state between machines unless your load balancer keep users coming to the same box. Order numbers are generated in a database procedure so they are safe to share across servers.
I'd be curious to find out more about your traffic and your site's requirements to make sure the software scales well. We have a number of fairly high traffic sites running on single dual-processor servers.
|
|
|
|
Rank: Member
Joined: 8/10/2004(UTC) Posts: 23
|
That's great news Marcus, thanks for getting back to me.
As far as the load is concerned it's not HUGE, but definitely above average.
A better than average month: 400,000+ visits (~300,000 uniques) 5,000,000+ page views 130+ million hits A little over a terabyte a month in traffic.
We're currently on track to do ~300K visits this month which is a little low. During our peek months (March/April/May) I really hope to be approaching 600K visits.
As for the server I've been keeping an eye on it and it appears to be hovering around 25 - 40% CPU during our busy hours... but you wouldn't know it from the site because everything is very responsive.
How would you suggest setting up IIS for a site like that? I tried to add more than one worker process but ran into problems (because of in-proc state) I was thinking about converting it to 2+ worker processes with ASP.net state service/server. As it stands now, I have a single worker process and site is plenty fast, but the single worker process ends up consuming over 3GB's of memory before it is eventually recycled @ 5am daily. I assume that most of that 3GB's is cache/state data and if that is never recycled it will grow even larger (which I don't necessarily have a huge problem with)
So, would the memory issue be exacerbated if I switched to a state server? Will the state data/cache eventually purge/recycle itself or will I run into memory issues/unresponsive site (like some have reported, via google... not here)?
The server I'm working with has an E5430 Harpertown, 8GB ram, RAID 10... It's pretty robust hardware wise. But I'm going to wait and see how Jan/Feb goes before deciding whether or not a high availability/load balanced setup is necessary.
|
|
|
|
Rank: Member
Joined: 11/5/2003(UTC) Posts: 2,136
Was thanked: 1 time(s) in 1 post(s)
|
"So, would the memory issue be exacerbated if I switched to a state server?"
.NET Rocks just had a show about ASP.NET 4.0 features and they talked about session state in both ASP.NET 2.0 and 4.0. At one point they talked about inproc versus state server and both Richard Campbell and the MS guest seemed to be recommending the state server for better memory management.
In-proc stores the entire object tree for every object in session. Even stuff you might not think of like links to event handlers, etc.
Out-of-proc only stores what is serialized, which is often less than the entire object tree. So out-of-proc may be smaller. If nothing else, once you switch to out-of-proc, you can move the state server to its own machine and free up memory on the web box for request processing. |
|
|
|
|
Rank: Member
Joined: 11/25/2003(UTC) Posts: 370
|
One thing they did not talk about on the .Net rocks show was using the SQL Server to store state. Again everything must be serialized but it works very well. One web site I had been working on used to use sticky sessions (had some classic asp stuff to deal with) with a F5 load balancer feeding five web servers. We had a 8 core SQL Server standalone so we moved all session to SQL for both the .Net and Classic ASP. Worked extremely well. So this could be another option to having a state server on a separate box. |
|
|
|
|
Rank: Member
Joined: 11/5/2003(UTC) Posts: 2,136
Was thanked: 1 time(s) in 1 post(s)
|
And the SQL state server gives you durability (the D in ACID). If the state server crashes and you restart it before the sessions expire, the customer may not even notice. If the Service state server crashes, all the sessions are lost (since they were in memory).
Unfortunately you pay for the durability with some performance hit which you can easily quantify with some load testing. |
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.