Skip to content
Naive throughput measurements for Python web apps and servers.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
narrow
.gitignore
AUTHORS
CHANGELOG
CONTRIBUTING
INSTALL
LICENSE
MANIFEST.in
README.rst
setup.cfg
setup.py

README.rst

narrow

https://github.com/idlesign/narrow

release lic

Work in progress. Stay tuned.

Description

Naive throughput measurements for Python web apps and servers

This tries to measure a throughput for various Python web apps and servers

Benchmark report sample: https://idlesign.github.io/narrow/

Stands:

  • nginx_ssl_static: Nginx static response using SSL
  • nginx_ssl_tcp_uwsgi: Nginx -> UWSGI -> TCP socket -> uwsgi -> app response. Using SSL
  • nginx_ssl_unix_uwsgi: Nginx -> UWSGI -> Unix socket -> uwsgi -> app response. Using SSL
  • nginx_static: Nginx static response
  • nginx_tcp_uwsgi: Nginx -> UWSGI -> TCP socket -> uwsgi -> app response
  • nginx_unix_uwsgi: Nginx -> UWSGI -> Unix socket -> uwsgi -> app response
  • uwsgi: uwsgi HTTP router -> app response
  • uwsgi_ssl: uwsgi HTTP router -> app response. Using SSL

Apps/frameworks:

  • bottle: Bottle framework application
  • cherrypy: CherryPy framework application
  • django: Django framework application
  • flask: Flask framework application
  • py: Pure wsgi application -- default

Benchers:

  • h2load: h2load from nghttp2
  • weighttp: weighttp (no SSL support)

Requirements

Basics:

Benchmarking tools (any):

Running

Run benchmarks, dump and plot the results:

$ narrow --help

$ narrow list_stands
$ narrow list_apps
$ narrow list_benchers

$ narrow runlocal --plot
$ narrow --verbose runlocal --log --stand uwsgi --app flask --bencher weighttp
$ narrow stats_plot
You can’t perform that action at this time.