If you cannot decide whether you should go with FreeBSD or Ubuntu (or Linux), check out this article: FreeBSD or Linux in 6 Simple Questions
Recently I am working on building a web farm which is formed by three ancient time computers (The sum of their ages is older than me). Therefore, I need to pick an operating system to make them running efficient enough. Basically here are my criterias:
- It must be secure. (Sorry, Microsoft Windows, I tried installing Windows Server and the OS got infected by virus in 20 minutes after connecting to Web.)
- It must be stable and require no reboot. (I have a very good experience with FreeBSD. My longest record of uptime is 6 months so far.)
- It must be efficient and effective on performance.
So after trying different operating systems, I ran down to three choices: FreeBSD 8, Ubuntu 10 and OS X.
And I finally go with FreeBSD 8. Before I talked about why I kick the Ubuntu and OS X away, let me discuss what methodology I used.
First Test: Extreme Computation
I write a program to calculate the value of pi using Monte-Carlo simulations. For those who are not familiar with this simulation method, basically it try to repeat a calculation for n times and try to determine the value of pi based on the results of calculations. This calculation will use all available CPU resources.
Here is the result from a computer: Pentium II 400MHz + 160MB
- FreeBSD 8.1 ~ 5 seconds
- FreeBSD 4.11~ 10 seconds
- Ubuntu 10.04 ~ 8 seconds
- OS X 10.3.9 ~ 11 seconds
The result is very obvious, FreeBSD 8.1 is the best candidate in this test. However, the result of my program only gives a very small portion of the picture. So I decide to run another test:
Second Test: Apache Benchmark
No test is better than the real world test drive. Since my primary purpose is for web server, so I decide to test the performance on how Apache perform on different operating systems. My test is pretty simple, I basically ask the Apache Benchmark client to download a page from the test server. The page does three things:
- Display a picture
- Insert a record into MySQL database
- Retrieve the current count from MySQL database
This way I can test the overall performance on how the system handles the file I/O, database I/O and computations.
So the result is pretty interesting (1000 total requests and 100 concurrent requests)
- FreeBSD 8.1 ~ 200 requests/sec, no failure
- FreeBSD 4.11~ 150 requests/sec, approx. 20% failure.
- Ubuntu 10.04 ~ 180 requests/sec, no failure
- OS X 10.3.9 ~ 160 requests/sec, approx. 50% failure.
I am not surprised with the result because FreeBSD 8 really does a very good job in kernel optimization. Since kernel is the heart(or brain) of all computations, an OS with good kernel is expected to give good results always.
So, I finally pick FreeBSD 8 as the core OS of my web farm, and I am loving it.