about


What is TheBestOpenSource?


TheBestOpenSource is a guide to the best open source software and free resources & tools.


How Do I Get My Software Listed On TheBestOpenSource?

Software has to be kick ass to be listed on our site. If your software (or an application that you know) is better than one of the applications listed, we will add it to the list or bump one of the current ones if necessary. If it is something we've overlooked, if it is kick ass, we'll gladly add it.


How Do You Decide What Software To List?


We use open source software ourselves. We pick the best applications based on our own experience as well as the software's popularity, performance , support of the community and ease of installation & use.


You Forgot To List Application X


If you know of outstanding open source applications that we have missed, please feel free to contact us and let us know. We'll be glad to review the application and create a new category if necessary. Remember, the software needs to be outstanding. Half-assed software will not be listed.


What Open Source Applications Does This Site Use?


We use lots of open source software. The main architecture of www.thebestopensource.com is:

Varnish Web Proxy - is used as the front end cache for static content.
Lighttpd Web Server - used to serve dynamic content.
PHP 5 - the scripting language for our dynamic content.
APC Cache - php op code cache.
MySQL 5 - back end database.
Fedora 8 - operating system.

How Much Traffic Could This Site Serve?


Our server is has the following specs:

CPU: dual quad-core 2.66ghz
RAM: 8gb
DISKS: 500gb RAID 10
BANDWIDTH: 100 mbps burstable

With those specifications and mostly static content, we ran the following benchmark:

ab -n 10000 -c 200 http://www.thebestopensource.com/index.html
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking www.thebestopensource.com (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests


Server Software:        lighttpd
Server Hostname:        www.thebestopensource.com
Server Port:            80

Document Path:          /index.html
Document Length:        12330 bytes

Concurrency Level:      200
Time taken for tests:   0.785360 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      126737765 bytes
HTML transferred:       123854850 bytes
Requests per second:    12733.01 [#/sec] (mean)
Time per request:       15.707 [ms] (mean)
Time per request:       0.079 [ms] (mean, across all concurrent requests)
Transfer rate:          157592.70 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2   1.9      3       7
Processing:     3    7   4.5      7     225
Waiting:        0    3   4.8      3     220
Total:          6   10   4.6     10     225

Percentage of the requests served within a certain time (ms)
  50%     10
  66%     10
  75%     11
  80%     11
  90%     12
  95%     14
  98%     16
  99%     17
 100%    225 (longest request)

	
Ok, let's try that again with httperf to see what happens:


httperf --server www.thebestopensource.com --uri index.html --num-conn 10000 --num-call 200 
--timeout 5 httperf --timeout=5 --client=0/1 --server=www.thebestopensource.com --port=80 
--uri=index.html --send-buffer=4096 --recv-buffer=16384 --num-conns=10000 --num-calls=200

Maximum connect burst length: 1

Total: connections 10000 requests 2000000 replies 2000000 test-duration 160.890 s

Connection rate: 62.2 conn/s (16.1 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 10.7 avg 16.1 max 33.3 median 16.5 stddev 1.0
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 200.000

Request rate: 12430.9 req/s (0.1 ms/req)
Request size [B]: 87.0

Reply rate [replies/s]: min 12090.1 avg 12432.5 max 13724.2 stddev 436.3 (32 samples)
Reply time [ms]: response 0.1 transfer 0.0
Reply size [B]: header 292.0 content 12330.0 footer 0.0 (total 12622.0)
Reply status: 1xx=0 2xx=2000000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 45.88 system 114.97 (user 28.5% system 71.5% total 100.0%)
Net I/O: 154281.3 KB/s (1263.9*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0