[REBOL] Re: ANN: snuffstream
From: andreas::bolka::gmx::net at: 10-Mar-2004 13:39
Monday, March 8, 2004, 9:26:57 PM, Maarten wrote:
> Async http 1.0 file server for progressive downloads of divx, mp3,
> MPEG-2: http://www.surfnetters.nl/maarten/snuffstream.zip
> As little as 259 kB it gives little load on your system when sending
> out multiple divx's and mp3's.
Wow! I must confess, I'm impressed! To summarize my first experiences:
Snuffstream performs reasonably good, in fact it performs so good,
that measuring it against Apache made sense.
Considering Snuffstream's size, it's memory and CPU usage while
running I'm inclined to say that is a very interesting product,
although I'm (obviously) not yet able to tell about long-time
performance or various issues that may arise in "real world"
From what I can tell at the moment, I consider Snuffstream a viable
HTTP server for static file serving purposes, especially when a
server (e.g. running on your "desktop" machine) is
required. It's a serious competitor to established products in this
sector, especially when we consider Snuffstream's "just drop it
Further, due to it's size and reasonable performance, embedding
Snuffstream in custom applications that require static HTTP file
serving seems to be an obvious fit.
Finally, Snuffstream seems to be _very_ suited for it's marketed
purpose, namely as VLC server.
Once I have more data on long-time stability, I'll report again :)
Finally, some test results that lead me to above conclusions:
1) Downloading a 481 MB file first with wget and then with Firefox.
- wget: download at 5.38 MB/s
- Firefox: download at roughly 4.0 MB/s
- Both: the process's CPU usage stays between 2% to 10%
- Both: process size keeps constantly at around 5 MB
- wget: download at 7.58 MB/s
- Firefox: download at roughly 3.9 MB/s
- Both: CPU usage at 0%
- Both: process size total (2 processes) at around 6.5 MB
2) Simulated load requesting a 9 byte .txt file. Snuffstream's
config.r has been modified to serve *.txt as text/plain.
2.1) 1 worker, 100 sequential requests:
- snu: 150 req/sec, 6.8 ms avg time per req
- apa: 400 req/sec, 2.6 ms avg time per req
2.2) 2 parallel workers, 100 sequential requests each:
- snu: 150 req/sec, 13.3 ms
- apa: 400 req/sec, 4.9 ms
2.3) 10 parallel workers, 10 sequential requests each:
- snu: 150 req/sec, 67.0 ms
- apa: 380 req/sec, 25.0 ms
2.4) 50 parallel workers, 2 sequential requests each:
- snu: 100 req/sec, 500.7 ms
- apa: 200 req/sec, 250.3 ms
3) Simulated load requesting a 3 KByte .gif file. Snuffstream and
Apache are both configured to serve this as application/octet-stream.
3.1) 1 worker, 100 sequential requests:
- snu: 150 req/sec
- apa: 400 req/sec
3.2) 10 parallel workers, 10 sequential requests each:
- snu: 144 req/sec
- apa: 380 req/sec
My test setup: A P4-M 1.6, 512 MB RAM, 7200 RPM IDE HDD, WinXP SP1.
Snuffstream version as avail from Maarten's site, Apache 2.0.48,
downloads using GNU Wget 1.8.2 and Mozilla Firefox 0.8. Load tests
using a slightly customized version of ApacheBench Version 2.0.40-dev
(Revision: 1.120, apache-2.0).
Disclaimer: These tests make no scientific claim. Test setup
information is provided for informal purposes.