SVI 8d35b0aa00 SVI Доработка кода, шаблонов, вендоринг 10 months ago
..
Makefile 8d35b0aa00 SVI Доработка кода, шаблонов, вендоринг 10 months ago
README.md 8d35b0aa00 SVI Доработка кода, шаблонов, вендоринг 10 months ago
fileserver.go 8d35b0aa00 SVI Доработка кода, шаблонов, вендоринг 10 months ago
ssl-cert-snakeoil.key 8d35b0aa00 SVI Доработка кода, шаблонов, вендоринг 10 months ago
ssl-cert-snakeoil.pem 8d35b0aa00 SVI Доработка кода, шаблонов, вендоринг 10 months ago

README.md

Static file server example

  • Serves files from the given directory.
  • Supports transparent response compression.
  • Supports byte range responses.
  • Generates directory index pages.
  • Supports TLS (aka SSL or HTTPS).
  • Supports virtual hosts.
  • Exports various stats on /stats path.

How to build

make

How to run

./fileserver -h
./fileserver -addr=tcp.addr.to.listen:to -dir=/path/to/directory/to/serve

fileserver vs nginx performance comparison

Serving default nginx path (/usr/share/nginx/html on ubuntu).

  • nginx

    $ ./wrk -t 4 -c 16 -d 10 http://localhost:80
    Running 10s test @ http://localhost:80
    4 threads and 16 connections
    Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   397.76us    1.08ms  20.23ms   95.19%
    Req/Sec    21.20k     2.49k   31.34k    79.65%
    850220 requests in 10.10s, 695.65MB read
    Requests/sec:  84182.71
    Transfer/sec:     68.88MB
    
  • fileserver

    $ ./wrk -t 4 -c 16 -d 10 http://localhost:8080
    Running 10s test @ http://localhost:8080
    4 threads and 16 connections
    Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   447.99us    1.59ms  27.20ms   94.79%
    Req/Sec    37.13k     3.99k   47.86k    76.00%
    1478457 requests in 10.02s, 1.03GB read
    Requests/sec: 147597.06
    Transfer/sec:    105.15MB
    

8 pipelined requests

  • nginx

    $ ./wrk -s pipeline.lua -t 4 -c 16 -d 10 http://localhost:80 -- 8
    Running 10s test @ http://localhost:80
    4 threads and 16 connections
    Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.34ms    2.15ms  30.91ms   92.16%
    Req/Sec    33.54k     7.36k  108.12k    76.81%
    1339908 requests in 10.10s, 1.07GB read
    Requests/sec: 132705.81
    Transfer/sec:    108.58MB
    
  • fileserver

    $ ./wrk -s pipeline.lua -t 4 -c 16 -d 10 http://localhost:8080 -- 8
    Running 10s test @ http://localhost:8080
    4 threads and 16 connections
    Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     2.08ms    6.33ms  88.26ms   92.83%
    Req/Sec   116.54k    14.66k  167.98k    69.00%
    4642226 requests in 10.03s, 3.23GB read
    Requests/sec: 462769.41
    Transfer/sec:    329.67MB