Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

jibi/eth

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

132 Commits
132 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eth: extreme throughput http daemon

A specialized web server with userspace TCP/IP stack. Also my undergraduate thesis work.

Big Caveat

This is a work in progress, an experiment at the moment.

No way it is even remotely production ready.

What?

Eth is a specialized web server whose aim is to be extremely fast on static file serving. It archives this using Netmap and a custom lightweight TCP/IP stack written from scratch specifically for the HTTP protocol.

Give me numbers

Currently I can only test it with a virtual machine.

Some numbers: average speed to download a 1GB file with a single connection.

  • tests are run on a QEMU virtual machine with an emulated Intel e1000 NIC (attached to the network with a TAP interface)
  • the real machine is a laptop:
    • Intel i5-4288U CPU (2.88 Ghz)
    • 8GB of memory
    • 512 GB of SSD
  • the OS is ArchLinux (both the host and the guest)
  • Nginx uses the default configuration
Nginx Eth
160 Mb/s 460 Mb/s

bench

##Installation

Steps:

clone the repo

$ git clone --recursive git@github.com:jibi/eth.git

build dependencies (Netmap).

Note: you need the kernel sources of your running kernel to be in the /usr/src/linux directory.

$ make deps

build Eth

$ make

load Netmap module

# insmod deps/netmap/LINUX/netmap.ko

set interface up

# ifconfig $if up

and start Eth server with

# ./eth --dev $ifname --mac $ifmac --ip $ifip --port $port

TODO

Actually a lot

About

extreme throughput http daemon

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.