Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm currently trying to decide on the best approach to handle hosting a few moderate traffic websites for production e-commerce and online applications. We'd like to move to a dedicated server and are looking at this as the most likely machine:

Quad Core Intel Core2Quad Q9550 Processor, 2.83 Ghz X 4, 4 GB Kingston Ram

This would run Windows Web Server 2008 R2 x64 and potentially also Sql Server Web 2008 and SmarterMail server.

Given that we already pay for a high-end VPS for development, testing, shared version control we'd like to avoid going with two servers for production. We'd like to avoid using shared sql server hosting and have thought of using the development server as the database server as an option too - but potentially a security risk due to use for development by internal and contract users.

The questions are: - Do you feel there would be performance degradation by running this on the same machine? - Are there significant issues to be concerned about if we do this? We understand that best practice would be to run separate db and app servers but the volume of traffic is currently not that high and adding another server just for database is currently too costly. - What are others doing out there?

Alternatively, would you recommend instead going with two separate VPS servers with 2GB RAM each on Hyper-v which would be about the same cost as the single dedicated server above?

Thanks!

share|improve this question

2 Answers 2

My preference would be two separate machines. Yes there are performance gains, minus network latency as Josh pointed out.
More importantly though if worst case scenario happens and your web server is ever compromised the hacker now has complete control of your database as well. If they are on separate machines you can better control access to your database server and two machines would need to be compromised instead of just one. Ideally you setup some really tight rules around access to the database server to make it more secure.

Ross

share|improve this answer

This is actually a good idea. Hosting the SQL Server locally means that your application will be making SQL calls to the local machine instead of going across the network. This will significantly boost your performance and cut your application latencies.

Just be careful to design a good backup process, and you will need to think more carefully about security on that box since the data is also stored there.

share|improve this answer
    
Reality check. The boost in latency will be neglegible compared to the internet speed for handling the requst. THe loss in performance will be in the range of 0.x% unless you pull in hundreds of megabytes of data - IIS will just wait, and do another page in the meantime (up to what - 50 pages per CPU core in parallel? - not sure where the standard limits are right now). Yes, there is an impact. No, you will not even be able to measure it. Rather get some good discs (SQL loves running on 4-8 discs) and get better performance there. –  TomTom May 12 '10 at 17:26
    
The amount of data is not the problem, it is the time the .NET app spends waiting for a request / response. Network performance, especially in virtualized environements, is highly unpredictable and latencies can be very high. I'm speaking from direct experience with both small apps / databases as well as high-volume apps / large databases. If you can eliminate the variable, why not do so? Furthermore, if the database is small enough, it would be ideal to run the entire DB in memory rather than requiring any disc access at all. If it's a large DB, caching queries in RAM is preferred. –  Joshua May 21 '10 at 15:57
    
The best example of how latency can affect broader performance is by looking at an SSD vs mechanical hard drive performance-over-time comparison: techreport.com/articles.x/18712/8 If you look at the generic file copy performance (techreport.com/articles.x/18712/5), mechanical drives are on par with SSD's, but because SSD's virtually eliminate latency, they will blow mechanicals away in multi-write/access scenarios. –  Joshua May 21 '10 at 16:04

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.