Forum Moderators: open
What suggestions could you give for figuring out how to make the server run faster (assuming that we are optimizing the website code itself as much as possible)? Do you think we should consider moving either SQL Server or the email server to a different server?
We run SQL Server and an email server on the same machine. What suggestions could you give for figuring out how to make the server run faster (assuming that we are optimizing the website code itself as much as possible)? Do you think we should consider moving either SQL Server or the email server to a different server?
Yes, remove Email and SQL from the Web Hosting machine. Those should be separate for just the reasons you bring up.
You could also look at Cache Control and HTTP Compression.
10,000 visitors a day breaks down to about 7 visitors every minute. Triple that based on the fact most people are likely there in some common 8 hour window. So 21 visitors every minute, and maybe each of them requests 3 pages for that minute. So your server could be serving up 1 page every second on what I would say would be towards the higher end to probable.
If your server is slowing down with this traffic, I'd take a better look at your code as I think you'll find there are some overly complex, or un-optimized queries.
Chip-
This is all very dependent on a number of hardware factors. If you're on a single processor/single core system you are better off splitting IIS and SQL to two different computers. If you have a multicore/multiprocessor system you should be able to have both coexist and perform well assuming your drives aren't a bottleneck. Websites should be on a different drive/array than the SQL databases.
Ideally you would have SQL databases, index files, log files and full-text indexes all on different drives/arrays. 4 drives/arrays for SQL and one for your website content and another one for the operating system and SQL Server Executables. (Six drives/arrays total.) This isn't possible on many systems which will force you to go the multiple server route.
However, with 10k uniques per day you should be able to configure a single server to handle this kind of load assuming all 10k don't access the server in the same hour.
There are some excellent MSDN Technet articles out there about using Performance Analyzer to figure out what hardware resource is blocking your server from performing quickly. I used to run a quad Pentium Pro 200 MHz Compaq server with three drive arrays and handle 30k uniques per day on IIS5 running ASP.
Throw in .NET, and you have troubles, I am now about to convert to a more powerful box because of the resources .NET and .NET websites take, although they don't even begin to approach the same traffic asp websites do.
Perl is also consistently bad in this setup (just my experience)
Check your code, find and eliminate bottlenecks.
Use Perfmon to monitor your CPU, memory and physical disk utilization over time. When watching the disk, you care about Average Disk Queue primarily.
Once you see what stats are spiking, figure out what is causing it. In the case of processing, you need to determine if it is IIS/ASP, SQL, or some other process.
If disk queues are consistently high, you need to figure out where the read or write contention is.
The best advice is to move SQL and email off of the web server - I think someone else already noted that.