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.
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.