Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cloudmercato/nginx-benchmark
Lua site allowing custom HTTP benchmark
https://github.com/cloudmercato/nginx-benchmark
Last synced: about 1 month ago
JSON representation
Lua site allowing custom HTTP benchmark
- Host: GitHub
- URL: https://github.com/cloudmercato/nginx-benchmark
- Owner: cloudmercato
- License: mit
- Created: 2021-07-07T13:59:47.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-05-15T21:47:02.000Z (over 2 years ago)
- Last Synced: 2023-03-06T10:07:49.702Z (almost 2 years ago)
- Language: HTML
- Size: 6.84 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
nginx-benchmark
===============Lua site allowing custom HTTP benchmark
Motivation
==========While many HTTP client benchmark tools exist, none of them really express the capacity of a HTTP server to hold a load.
Two options are mainly used:
1. Set various files and served as an approximation of what could be the traffic
2. Use a backend application to produce whatever it's possibleThe solution #1 suffers from the volume then File System behavor. It could beneficial or not but it's not linked to nginx itself.
The solution #2 comes with its batch of biais created by all the step from the application handler, network to programming language.
We make to the choice to create a simple nginx site allowing to test the server without backend. Here's the main guidelines:
- The operations should measure the capacity from a server to handle requests
- We use only the integrated Lua as programming language
- We do not depend on anything other than Lua and the OSInstall
=======::
apt install -y nginx libnginx-mod-http-lua
cp benchmark.conf /path/to/sites/benchmark
# rm /path/to/sites/default
cp benchmark.html /var/www/benchmark.htmlservice nginx restart
You can also install `nullfs `_ to remove the overhead from (future) upload tests.Start
=====Go to `http://` to consult endpoints via your browser.
Or test them with you usual HTTP benchmark tools like: ::
# ab -c 128 -n 10000 http://myserver/urandom?size=2048
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking myserver (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requestsServer Software: nginx/1.14.0
Server Hostname: myserver
Server Port: 80Document Path: /urandom?size=2048
Document Length: 22 bytesConcurrency Level: 128
Time taken for tests: 0.929 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 1790000 bytes
HTML transferred: 220000 bytes
Requests per second: 10761.34 [#/sec] (mean)
Time per request: 11.894 [ms] (mean)
Time per request: 0.093 [ms] (mean, across all concurrent requests)
Transfer rate: 1881.13 [Kbytes/sec] receivedConnection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.2 1 5
Processing: 5 11 0.8 11 19
Waiting: 4 11 0.9 11 19
Total: 7 12 0.7 12 20Percentage of the requests served within a certain time (ms)
50% 12
66% 12
75% 12
80% 12
90% 12
95% 13
98% 13
99% 14
100% 20 (longest request)
Tips
====The default Nginx configuration may not produce the best performance, so we advise you to the results nginx-benchmark produce and the reality of your application. In order to help you reaching the best level of performance here's some tips:
- In Nginx configuration:
- `worker_connections `_: number of simultaneous connections that can be opened by a worker process.
- `worker_processes `_: number of worker processes.
- `worker_rlimit_nofile `_: maximum number of open files (RLIMIT_NOFILE) for worker processes.
- In your Linux kernel:- net.core.somaxconn
Made with ❤️ by `Cloud Mercato `_