Question

Web server performance

Asked by: thechatking

Hi,

We are a web development company that provides hosting for our clients on a dedicated machine.  The hardware set up for this machine is:

P4 3.2ghz processor
1gb RAM
2 x 80gb SATA HD (RAID mirroring)

From this one box, we run the web server, SQL Server 2000 and a third-party mail server called MailEnable.  The OS is Windows Server 2003.  We are running approximately 20-30 dynamic websites from this server, most of which are very low traffic (<100 visitors per day).  We have a handful of sites that run from SQL Server and some of these databases are fairly complex e-commerce solutions.

We have stress-tested the server using the Web Stress Test 7 software and the results indicated a much lower level of performance than we expected.  We tested sites with differering set ups, such as ASP/Access, ASP/SQL Server, ASP.NET/Access and ASP.NET/SQL Server and the results were fairly similar across the board, with SQL Server being slightly better than Access and ASP.NET being slightly better than ASP.

The testing indicated that the server hits 100% CPU usage when visited by 15 concurrent users above and beyond normal evening traffic.  When not testing, the CPU is stable at 2-4%.  Gradually increasing above 15 users will hang the server.  When the CPU hits 100%, the Processes tab of Task Manager shows that sqlserver.exe consistently uses 80% of resources.  During this time, the Performance Monitor counter for Memory shows that we still have 50-200mb of free RAM.

Coding-wise, we use all performance guidelines, such as stored procedures, connection pooling, no cursors or temporary tables, all objects killed etc etc.

With all this in mind, we'd like to assess what we currently have and what we may need for the future.

Are these results consistent with expectations for this hardware and software configuration?
What can we do to improve the performance of this server?
What would be our best options for expansion?  If we add another server, would it be better to have standalone SQL Server or standalone mail server?

One of our clients sends out a newsletter and the influx of traffic (>300 concurrent users) hangs the server.  At what pricing level should a client expect their hosted website to handle 300+ concurrent users?  If you bought a machine similar to ours and plugged it into a decent network, would it be able to handle this amount of traffic?

Thanks in advance for your help.  We are struggling to find impartial advice on this matter as everyone wants to sell us a server!  We're monitoring this question, so feel free to ask us things and we'll get back to you quickly.

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2006-10-05 at 04:04:59ID22013869
Tags

cpu

,

do

,

from

,

server

,

web

Topic

Microsoft IIS Web Server

Participating Experts
2
Points
500
Comments
19

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. What is SATA RAID?
    I have a ASUS motherboard (A7N8X DELUXE) which comes with sata raid,can any one explain in layman's language what this is.
  2. SATA RAID
    I'm very new to the whole RAID thing, so if you could just bare with me on a few questions. :) I'm looking to give this whole RAID 0 thing a shot. I currently have a SATA 37 Gig 10,000 RPM WD Raptor HDD as well as a SATA 200 Gig 7200 RPM WD drive. Now, what i was thinking ...
  3. SATA Performance
    Hey Everybody. Im pretty comfortable with computers, but this one is bugging me a little and I felt that I should reach out and find some info about this situtation. I bought 2 Seagate SATA Barracuda 7200.7 NCQ Drives when I built this new computer, roughly a month ago.. ...
  4. SATA Raid 10
    I have Intel server board (SE7520AF2) from which I am running 2 SATA drives configured for Raid 1. I am considering adding 4 SATA drives configured for Raid 10. This will require the addition of an SATA Raid card. My questions are as follows: 1) Will the Raid 10 configu...
  5. combine SATA I and SATA II in RAID
    Can i combine SATA I and SATA II drives for a RAID 0 configuration. I own a Western Digitial SATA II (300) and an older Samsung SATA I (150). My new Intel motherboard supports harware RAID. Must the two drives be identical for RAID 0?

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: jdfultonPosted on 2006-10-05 at 06:30:20ID: 17668170

Well first off you should definitely have SQL Server and your mail server on different machines if you expect high traffic.  SQL Server is a memory hog although I am thinking you probably do have a coding issue or a configuration issue.  I have a web server running a mail server, sql server, and 10 dynamic sites.  I have had 100+ users access the database at a single time.  My server is only a dual p2 333 with 1gb of ram.  I also run multiple VPS servers that only have 256MB of ram and run SQL Express, 20 or so websites and mail, stats with no problems.   As for price, a typical web host can handle thousands of users per server for only a few dollars a month.  Our VPS servers cost 39.99 per month with 5GB space and the other info above.  A typical hosting account should only cost 10-20 per month.

 

by: thechatkingPosted on 2006-10-05 at 08:34:47ID: 17669624

Thanks for your response.

We have tested websites of various complexity and they all seem to report the same level of performance, which suggests the problem may not be related to a particular piece of software (i.e. SQL Server).  As you have confirmed, we expect higher levels of performance than this from a server with our spec.  Could there be a problem with our OS set up or anything like that?  What should we be looking for?

 

by: jdfultonPosted on 2006-10-05 at 09:03:50ID: 17669859

Can you post some of your connection strings for your web applications.   Please modify any security info with dummy info ie passwords etc..

Mainly I want to see how the websites are connecting to the SQL server.

JD

 

by: thechatkingPosted on 2006-10-05 at 09:42:07ID: 17670187

Our ASP.NET applications connect to SQL Server using:

Data Source=(local);Initial Catalog=DBNAME;User Id=myId;Password=p@ss;Persist Security Info=true;

Our classic ASP applications connect to SQL Server using:

Provider=SQLOLEDB;Data Source=(local);Initial Catalog=DBNAME;User Id=myId;Password=p@ss

 

by: jdfultonPosted on 2006-10-05 at 10:25:29ID: 17670522

Ok I would try changing your connection strings if possible to see if this makes a difference.  A good resouce for an example is below.  They have pretty much every one you would need.  It really sounds like a connection issue.

http://www.connectionstrings.com/

 

by: NightmanPosted on 2006-10-05 at 13:52:55ID: 17672207

I would definitely split the SQL Server off as a dedicated server. Best practice for a reason.

Under load, you will find that IIS and SQL contend for resources - IIS is kernel intensive. Not a good idea from a security perspective either.

Also, SQL will use whatever memory is available as well - IIS will be forced to overutilise the page file. The cascading effect of this is that the page file usage will contend with SQL Server for I/O resources as well (SQL is I/O intensive). This will also create memory pressure on the worker processes in IIS 6 - resulting in premature recycling of sessions (unpopular with your users) and 'early' garbage collection (which is resrouce intensive).

As for the mail server, I don't know it, but if you were using exchange, best practice (again, for good reasons) is to have this on a dedicated box.

AND optimise your connection strings (although this is unlikely to be the primary cause of any bottlenecks it makes sense to improve where you can).

Also note: if you are storing

 

by: jdfultonPosted on 2006-10-05 at 14:24:02ID: 17672427

Nightman is right.  It would be in your best interest to at least move SQL to a different server.  If you did this and setup separate application pools for each website, you should reduce problems with all sites being affected.

Most webmail software packages use some resources.  They tend not to utilize processor resources but do tend to use more physical memory.  I originally used IMAIL, then Merek, now I use SmarterMail since you get a ton more for the buck.  On average it uses around 30-50mb of memory for SMTP and POP services.

As for SQL if you are making money hosting these sites I would recommend possible having a DBA take a look at how it is setup and if there are any performance measures you can implement for your applications.   One thing people don't understand is SQL server isn't a plug and play application.  You can just setup a database and start running but larger application loads need further design and peformance measures setup.  Id say an average DBA would be anywhere from $100-150 per hour.

 

by: thechatkingPosted on 2006-10-06 at 01:34:57ID: 17674758

Thanks for your responses.  Sorry for the delay in getting back to you - we're in the UK so were asleep.  :)

Firstly, we had a look at the URL you gave for connection strings, but it doesn't indicate the pros and cons of each, nor the best method.  Could you please elaborate on what we should be doing to improve performance in this respect.

We have run some further tests and the bottlenecks certainly occur with the database connection, be it SQL Server or Access.  We tested a range of sites that do not have database access and 300 users barely showed on the CPU.  We also did further tests on some sites that use very light database access, and these also performed without too much bother.  Some of these sites produced much-improved performance from our previous tests, so maybe there were other factors influencing the results on those days.

We then focused our our attention on the heavier database applications, looking at particular pages and queries, and this seemed to highlight a potential cause of the problem.  We pinpointed a number of fairly intensive queries that put a strain on the server, one of which utilises a bespoke paging method.  This query uses inline SQL to by-pass the need for ADO paging to download the whole recordset.  During development, we tested this method using both inline SQL and Stored Procedures and inline SQL was comfortably the quickest.  Could it be that day-to-day use produces a different level of performance for this query?  Would there be any benefits to re-compiling with ASP.NET2?

We also found one of our ASP sites produced similarly poor performance.  Whilst this site does not have major queries, it does call the database on numerous occasions for each page.  Would this have a huge negative impact on performance, even though the Stored Procedures are small?

We're having an extra 1gb of server memory installed today, making a total of 2gb.  How much should we expect this to increase performance?  Our tests last night indicated that the server can handle a larger number of users than the first tests showed.  Pages that don't use the under-performing query worked comfortably with 50 users.  However, this is still smaller than desired.  Ideally, being on a budget, we'd like to avoid having to buy another server, so what level of performance should we expect to achieve with our current machine?

 

by: NightmanPosted on 2006-10-06 at 04:30:59ID: 17675429

Can't tell just from memory upgrade.

Is memory your biggest problem, or CPU? Increasing resources in one area often simply shifts the bottleneck elsewhere (i.e. more memory might result in more resources available, but queue more threads on SQL - SQL now has more resources so attempts to work harder, I/O is still slower SATA and probably all on the same physical disk as everything else, affecting I/O performance, etc).

If you really want to know, set up a lab environment and see how your system scales on larger machines.

 

by: jdfultonPosted on 2006-10-06 at 07:17:15ID: 17676529

TheChatKing

Do you have the same database connection strings in more than one place in your applications or do you only have it in one location and all pages that require a db connection use the same one?  Memory probably won't do too much for performance since you said the processor peaks out during high traffic times.  It really sounds like its the connections to the database causing the problem.

SQL Pooling is one way to eliminate this type of bottleneck.  It should be enabled by default.  But if you use the db connection string on more than one page and they are slightly different (ie: spaces ) then it won't use pooling.

It really sounds like you need someone there to actually look at the code and SQL server.  This really isn't something someone can talk you through to fix the problem.

Jim

 

by: NightmanPosted on 2006-10-18 at 11:03:57ID: 17759121

thechatking,
I hope that the recommendations that we posted was helpful- any feedback or more questions would be useful if you want to look at any more specific issues.

Cheers
Night

P.S. Just a note - inline SQL is a performance hog on the SQL box - in consumes SQL resources (and internally in SQL Server is a primary cause of statement recompiles) - recommend stored procedures (extensibility, reusability, maintainability, database logic abstraction, etc, etc, etc)

 

by: thechatkingPosted on 2006-10-19 at 00:26:20ID: 17763800

Hi,

We haven't forgotten about you!  Our hosting company took longer than expected to install our RAM upgrade and, now it's been been done, we need to find some time to run more tests.  We'll post these back on here when they're done.

Regarding the use of inline SQL, there's a reason we use it in this instance, but we are looking at ways to convert it to Stored Procedure, which is what we use for everything else.

Thanks again for your continuing help.

Cheers

Mark

 

by: NightmanPosted on 2006-11-14 at 14:25:26ID: 17942292

recommend split - jdfulton and Nightman

 

by: thechatkingPosted on 2006-11-14 at 14:33:34ID: 17942355

Sorry, things have been hectic and we forgot about this.  In all honesty, we haven't had time to run further tests since the memory upgrade.  A split seems fair to me - thank you both for your help.

 

by: NightmanPosted on 2006-11-14 at 14:42:23ID: 17942433

Just glad to help - hope your upgrade was successfull and painless.

 

by: thechatkingPosted on 2006-11-14 at 14:55:10ID: 17942528

Yes, it seemed to go well.  Just not enough hours in the day at the moment!  :)

 

by: NightmanPosted on 2006-12-26 at 05:36:45ID: 18197895

Hi thechatking

Have you had a chance to run tests yet? Also, please can you close this question by splitting the points, or provide some further feedback.

Regards
Night

 

by: thechatkingPosted on 2007-01-08 at 23:36:08ID: 18273781

Hi,

Haven't had time to run significant tests, but performance under stress has definitely improved since the memory upgrade.  Our clients have reported better response times when there are large quantities of visitors, so hopefully the server's life has been extended for now.  :)

I've split the points as requested.  Again, thanks for your help.

Cheers

Mark

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...