ry / ebb fork watch download tarball
public this repo is viewable by everyone
Description: web server
Homepage: http://ebb.rubyforge.org
Clone URL: git://github.com/ry/ebb.git
more upload tests and site modifications
Ryan Dahl (author)
2 months ago
commit  92fb937e38b63010f15a7d237f99bb6c5b53519c
tree    07ac5abb838cf51b46b8e0dca1c9a645d4278da4
parent  75f68f9db72c1181a59f43a5dd9a04388918d068
...
1
2
3
 
4
5
6
7
8
 
 
 
9
10
11
...
36
37
38
39
40
 
41
42
43
44
45
 
 
46
47
48
...
52
53
54
 
 
 
 
 
55
56
57
...
63
64
65
66
 
67
68
69
70
 
 
71
72
73
...
1
2
 
3
4
5
6
 
 
7
8
9
10
11
12
...
37
38
39
 
 
40
41
42
43
44
 
45
46
47
48
49
...
53
54
55
56
57
58
59
60
61
62
63
...
69
70
71
 
72
73
 
 
 
74
75
76
77
78
0
@@ -1,11 +1,12 @@
0
 # A Web Server Called *Ebb*
0
 
0
-Ebb aims to be a very small and fast web server specifically for hosting
0
+Ebb aims to be a small and fast web server specifically for hosting
0
 web frameworks like Rails, Merb, and in the future Django.
0
 
0
 It is not meant to be a full featured web server like Lighttpd, Apache, or
0
-Nginx. Rather it should be used in multiplicity behind a load balancer and
0
-a front-end server. It is not meant to serve static files in production.
0
+Nginx. Rather it should be used in multiplicity behind a
0
+[load balancer](http://brainspl.at/articles/2007/11/09/a-fair-proxy-balancer-for-nginx-and-mongrel)
0
+and a front-end server. It is not meant to serve static files in production.
0
 
0
 ## Design
0
 
0
@@ -36,13 +37,13 @@ forthcoming.
0
 
0
 ## Download
0
 
0
-The Ruby binding is available as a Ruby Gem. It can be install simply by
0
-executing
0
+The Ruby binding is available as a Ruby Gem. It can be install by executing
0
 
0
   `gem install ebb`
0
 
0
 Ebb depends on having glib2 headers and libraries installed. (Easily available
0
-on any UNIX system.)
0
+on any UNIX system.) A manual downloads can be found at
0
+the [RubyForge project page](http://rubyforge.org/frs/?group_id=5640).
0
 
0
 ## Why?
0
 
0
@@ -52,6 +53,11 @@ for quick and beautiful code, but for production web servers that might handle
0
 thousands of requests a second, an attempt should be made to be as efficient
0
 as possible in processing connections.
0
 
0
+Following are some benchmarks. Please take these measurements with a grain
0
+of salt. Benchmarks like these are notorious for presenting an inaccurate
0
+or highly slanted view of how software performs.
0
+The code for these can be found in the `benchmark` directory.
0
+
0
 ![Response Size](http://s3.amazonaws.com/four.livejournal/20080227/response_size.png)
0
 
0
 This shows how the web servers perform with respect to throughput (using a
0
@@ -63,11 +69,10 @@ A simple concurrent clients benchmark serving a *hello world* page.
0
 
0
 ![Uploads](http://s3.amazonaws.com/four.livejournal/20080227/post_size.png)
0
 
0
-Ebb processes upload before handing it over to the web application. This
0
+Ebb processes uploads before handing it over to the web application. This
0
 allows Ebb to continue to process other clients while the upload is in
0
-progress. The large difference here is merely because Ebb's internal request
0
-buffer is set at 40 kilobytes before it writes to file. (Improvement can
0
-be made here.)
0
+progress. The cliff at 40k here is because Ebb's internal request
0
+buffer is set at 40 kilobytes before it writes to file.
0
 
0
 
0
 ## Contributions
...
95
96
97
98
99
 
 
 
 
100
101
102
...
95
96
97
 
 
98
99
100
101
102
103
104
0
@@ -95,8 +95,10 @@ class EbbTest < Test::Unit::TestCase
0
   end
0
   
0
   def test_large_post
0
- response = post("/test_post_length", 'C'*1024*50)
0
- assert_equal 200, response.code.to_i, response.body
0
+ [50,60,100].each do |i|
0
+ response = post("/test_post_length", 'C'*1024*i)
0
+ assert_equal 200, response.code.to_i, response.body
0
+ end
0
   end
0
   
0
   def test_env
...
14
15
16
17
 
18
19
20
...
27
28
29
30
 
31
32
33
...
14
15
16
 
17
18
19
20
...
27
28
29
 
30
31
32
33
0
@@ -14,7 +14,7 @@ body {
0
 }
0
 
0
 h1, h2, h3, h4 {
0
- color: #CBCFB6;
0
+ color: #7DA478;
0
   padding: 0;
0
   margin: 1em 0;
0
 }
0
@@ -27,7 +27,7 @@ a { color: #E4AC3D; }
0
 
0
 #content {
0
   margin: 1em auto ;
0
- max-width: 30em;
0
+ max-width: 40em;
0
 }
0
 
0
 ol, ul { padding-left: 0; }

Comments

    No one has commented yet.