|Are these good specs for Web Server/DB?|
I just made a purchase (maybe I should have checked here first); but it was a Dell PowerEdge 1800. I customized it to my liking, but I'm not sure if it was overkill or underkill. Please you be the judge. First let me tell you what I'm trying to accomplish with this new server. It will be my home-based web server and database server (MySQL). I will install Windows 2003 Server onto it, MySQL 4.1, PHP5, ActivePerl 5.8, IIS 6.0, and that's about it. It will become part of a existing domain, I'm not sure if I am going to dcpromo it or not, but as of now that is a "no", I will leave it as just another server on the network without any administrative duties outside of web and database. Currently I only have a combined total of 500 users a day coming to my websites. I'm host my websites currently on a single PIII box w/ Windows 2003...a Dell Optiplex (desktop ...not server). It has not given me any trouble or headaches as of yet, it's actually been doing very well, but I don't have much traffic so that might be why. In the coming months i plan to advertise aggressively as well as host a few other people websites, so I knew I needed a better system, as well I will be hosting a new website of mine which will be a online blog host for visitors to sign up and have a blog through my network, therefore I needed something reliable. My goal is to have at least 15,000 to 50,000 visitors per day by this time next year. So I would like to know if these specs would suffice:
Dell PowerEdge 1800 Server
-Dual Intel Xenon 2.8GHz processors - 800MHz FSB
-1 GB DDR2 400MHz (2 x 512) Single Ranked
-160GB 7200 RPM SATA Hard Drive
-80GB 7200 RPM SATA 2nd Hard Drive
-2 Intel Pro 1000MT Dual Port Gigabit Network Adapter
-Non-Redundant Power Supply
That is basically the gist of it. I customized it on the Dell site but I couldn't find more info on the motherboard, watts of the power supply, or fans, but I put my trust in Dell that they would supply me with good equipment. (I hope I'm not sorry). Anyway, I would like to know do you think with knowing those specs, would this work well as a web server (expecting 10K-50K traffic) and MySQL databaase.
Also, is it a good idea to put IIS and MySQL on the serever as well as the same hard-drive or should I separate the two?
Please share your thoughts. In advance thanks for the help!
do you mean that many uniques, or that many pageviews?
just to give you a rough idea though, I rent a dedicated server (desktop) with pretty minimal specs: 2.4ghz pentium, 1 GB ram, 80 gig HD, 1.2TB/month bw. I serve something like 5,000,000 pageviews a month and it does just fine. server load floats between 1 and 3.
I was talking in terms of unique visitors. Your specs seem almost similar to mine. I now have confidence that I have way more than enough performance power for a web server to handle my request. Though, my server will also serve as a MySQL database (handling queries). On your dedicated do you have a database installed which queries frequently?
well your dual processors should give you a pretty big boost in performance, and the two SATA drives won't hurt either.
yeah, the mysql db is built into that server, it isn't a seperate one, and it's queried frequently.
50,000 uniques a day could be really really intense though. I suppose it depends on how intensive most pages are and how many pages each person loads.
50,000 may be a overstatement, but that is my goal. I will be hosting multiple sites, but at this time, the site which will be doing most of the querying is a blog hosting site. Basically, it will host users blogs. If you can imagine how many times each individual update their blogs a day, log in and out of the system a day, produce rss feeds, etc.
Not sure if this is a proper question, but do anyone know if MySQL has anything like a cache, so instead of the db accepting queries it can respond to queries from a cache file? Like holding the last 24 hours of db queries within a file that is not aligned with MySQL. Therefore, allow the db to be free to process other information.
|is it a good idea to put IIS and MySQL on the serever as well as the same hard-drive or should I separate the two? |
That's not a good idea if you have information that you want to keep more secure. If the database is on the web server then it's directly connected to the internet. If your solution requires a higher level of security then put the database on a separate machine on your network and have the web server access it via a dsn.
Thanks for the tip Easy_Coder.
I have these options for separating the two, please tell me what is the best, in respect to performance, security, and overall stability.
Let me tell you about my old server, it is a Intel PIII, with Windows 2003, 256MB of RAM, 100GB HD, not the best server but it does what it needs to do at this time.
1. Use my old server as the Web Server which connects to the MySQL (new server) server on a local IP
(that is how I have it setup now on my old servers...I have another server that specs is identical to the old server...but it is Windows 2000 server on the MySQL machine)
2. Use my new server as the Web Server and MySQL server, but MySQL installed on a separate hard-drive and using a completely different NIC (local IP) and the Web server installed on another hard-drive using a different NIC (external IP)
(number 2 is the option I was planning to go with, but I'm also setting up a RAID and know that a second HD might not be possible, but do you know if MySQL can be setup to only receive queries from a specified IP...even if there is another IP (NIC) availiable?)
If you think option 2 is not a good idea, please let me know...and why not? I appreciate the feedback. Thanks.
I've always gone with a distributed model for a couple of reasons. One, you get many processors working on your execution and Two, we're conducting cc transactions and our bank insists that our database not be directly connected to the internet because our erp houses cc #'s. We're in complete agreement on the latter.
I'm in a Microsoft shop so I can't speak directly to MySql. You should be able to pull off the separate hard drive and nic card (pretty clever) for your db installation but you might get better performance from a distributed model (2 machines). This way your duel procs can be exclusive to your database while the proc on the web server is responsible for web page execution. I'd bump the memory in the web server if you can.
You're going to like the performance of that. Are you running Gigabit on your LAN? You'll really like it when you’re backing up data from your Dell box. It gives you that whoaaa factor.
Easy_Coder, I like your suggestions and I think I will go with your suggestions.
I will use the old box as my web server and put my RAM in that machine, I'll take it to 1GB (not sure if I can, but I'll try it). Ideally, I would like to get another server for the Web Server, but that will not be for some months from now.
Then I will use the new server as the MySQL...I will go with a RAID 1 (mirror) on that box, since I don't have to worry about storage space (yet), and it will provide me with fault tolerance. I thinking 80GB will do just fine for now, I was hoping to use the 160GB but oh well!...I will upgrade when that time comes.
I don't have a Gigabit LAN but maybe I will look into that. I was hoping the Gigabit NIC was a nice addition. Once I see it perform I think I may even get another Gigabit NIC for the web server box to handle the traffic.
Thanks for your help, it starting to make sense and look clearer for me. Thanks.
If anyone has any more suggestions my ears are open. Thanks.
You may want to add a third hard disk and go for RAID 0+1: [dev.mysql.com...]
Your mirrored suggestion will provide better read performance, but the bottle neck tends to be in writing. If you don't want to opt for the third drive, partition the drive and keep the tables separate from the indexes and rollback segments. That way, there is less disk contention.
For server use, I'd stick with SATA since it has command queuing: [seagate.com...] - that's what SCSI was good for too.
Thanks for the heads up! I'm in no way an expert on this RAID stuff, but if I did get a 3rd drive, do you think it would make more since just to go with a RAID 5? This will also increase the write performance and reduce the bottleneck...am I right?
with a php accelerator or mod_perl a box like this typically can serve 25-40M dynamic pageviews / month so don't worry ;)
partition the drive and keep the tables separate from the indexes and rollback segments. That way, there is less disk contention.
That sounds intersting - but if the data and transaction logs are on the same physical drive, how can it write them both concurrently.
My SQL Box handles up to 50 concurrent writes, its Raid 0+1 for the data and logs and a Raid 1 Mirror for the OS and SQL Application. For a high availability e-commerce app I would go a step further and have separate RAID 0+1 arrays for the logs and data. Its all down to cost at the end of the day.
> how can it write them both concurrently.
You are right. My advice about partitioning was not sound. Since the same physical disk is being accessed, partitioning won't do any good.