Need opinions and thoughts on necessary processor power for web server

iansilv

Limp Gawd
Joined
Jun 10, 2004
Messages
335
Hi-
I have a web application that runs great on the current server I have, but there is the occasional page loading delay and there are delays when accessing certain functions, like drop down menus populated with database table data. Right now, I have the following server configuration:

Windows 2003 server
Athlon 64 3200+, 2.00gz, 2 gb ram
75 gb hard drive

This is a server I started renting about 2.5 years ago, and the configuration has not been changed since then. It is dedicated, and I need a dedicated server for my site.

I am thinking about getting this configuration through Softlayer:

Dual Core Xeon 3060 - 2.40GHz (Core2Duo) - 1 x 4MB cache
4gb ram
100 mbs connection
SQL express (unless the fact that it only uses 1gb of ram will be a huge performance hit)
250 gb sata 2 drive in raid 1 for redundancy
Windows 2k3 server

i would like anyone's thoughts on the performance difference of the server. My current host is telling me that a faster server won't make a difference. I want to know how much of a performance difference a faster server will make, or is it all up to the client's computer.

We are talking about up to 100-200 simultaneous connections, and each page is database intensive.

Please give me your thoughts- I don't want to get taken for a ride by a new hosting company...

thank you.
 
I'd do some benchmarks to decide what's the bottleneck. Is the current machine pegging the CPU while the database queries? Have you checked performance stats on the database server? Have you tried executing some of the queries that the dropdown does? Has anyone else looked at your queries to make sure they're doing things the right way?

Using only 1GB of memory out of 4 is likely to be problematic.
 
Have you looked at some kind of caching? What kind of database are you using on the current setup. Have you configured your database server to cache queries. Have you tested your queries to verify they're not abusing your server. Make sure you're indexing the correct items in your database (I've read horror stories of 1 hour queries, when fixed only took .4 seconds). Over all you need to setup some system monitors to test possible slow downs. There isn't anything someone can tell you for sure from your description.
 
It's difficult to predict load for general-use machines like web servers and database servers because their load charactistics can vary so greatly. You need to come up with some estimates for how many page hits you'll serve per second, how many queries that will cause, and how much the queries cost. You'll need to think about your requirements for maximum response time for users, too.

The easiest way to figure out these requirements was identified by unhappy, above; do some benchmarks. Once you do some testing, you'll get a feel for what queries cost, how many you can do per second, and what CPU load the web server and database server cause.

If your host is saying that a faster server won't make a difference, then you should ask them to justify their answer. (We can't do that for you--we have far less insight into your situation than host does!) They might mean that you're saturating the network connection. A faster server won't make the network connection faster. Or, they might mean that a server with faster CPU won't help, becuase the machine you've got is saturating its available disk I/O.

By "SQL Express", do you mean Microsoft SQL Server Express Edition? If so, using only a gig of memory may or may not be a performance problem. Most of SQL Server's memory demand comes from caching. You can use various system DMVs and performance counters to learn how much SQL Server is caching and how much it is missing cache. You can also figure out how big your tables and indexes are; if you can do work to reduce their sizes, then you might fit more data into cache.

Are you running the web server on the same machine as the database server? Which web server software are you using?

From what little description you provide, I'd guess the problem is that you're not caching anything at the application layer. If each of your web requests turns into a database hit, you're spending lots of time talking to the database and getting it to do work. If the database is doing a great job of caching, you'll be okay. As soon as it has to go to your slow disks, you're going to have very slow responses. If lots of users are doing lots of slow things, your site starts grinding to a halt.
 
how much traffic is the server getting? How efficient are your SQL queries? what kind of bandwidth is available to the server?

Unless you have an extremely high-traffic website your current machine is more than capable for hosting 95% of the websites out there, so my guess is you either have network issues or really inefficient database queries.

Just for comparison, my Intranet server at work host 2 websites, each running several dozen database driven apps and at any given time each site has approx. 40-50 simultaneous connections. It runs without any problems on a dual Xeon 2.8Ghz (single-core CPU's w/hyperthreading) with 2GB RAM, in fact, it barely breaks a sweat doing it.
 
Back
Top