anthracite/CHANGELOG.md
Nicholas Orlowsky 3dddee43f7
version 0.2.0
2023-10-20 12:46:30 -04:00

5.2 KiB

0.2.0 Fifth Pre-Release

  • Added true HTTP/1.1 support with persistent connections
  • Added HTTP/1.0 vs HTTP/1.1 test to benchmarking suite
  • Slight improvements to benchmarking
  • Added version number information to binaries at build-time
  • Added error page generation build step
  • GitHub CI pipeline will now tag the version when publishing the container to the registry
  • General system stability improvements were made to enhance the user's experience

HTTP/1.1 Speed improvements

The following benchmark shows the speed improvements created by implementing persistent connections with HTTP/1.1. This test measures the time it takes to request a 222 byte file 10,000 times by one user

=====[ Anthracite Benchmarking Tool ]=====
Requests     : 10000
Test         : HTTP 1.0 vs HTTP 1.1


HTTP/1.0 Total Time: 3.1160 seconds
HTTP/1.1 Total Time: 0.3621 seconds

Benchmark Results

Each benchmark makes 1000 requests requesting a 50MB file using 100 users to the webserver running in a Docker container.

This is a change from previous benchmarks which used a large html file.

=====[ Anthracite Benchmarking Tool ]=====
Requests     : 1000
Users/Threads: 100
Test         : Load Test


====[ anthracite ]=====
Average Response Time: 19.5831 seconds
p995 Response Time   : 38.9563 seconds
p99  Response Time   : 37.1518 seconds
p90  Response Time   : 27.5117 seconds
p75  Response Time   : 21.4345 seconds
p50  Response Time   : 17.7999 seconds
Total Response Time  : 19583.1491 seconds
====[ nginx ]=====
Average Response Time: 19.5464 seconds
p995 Response Time   : 49.9527 seconds
p99  Response Time   : 47.5037 seconds
p90  Response Time   : 29.7642 seconds
p75  Response Time   : 21.4559 seconds
p50  Response Time   : 17.1338 seconds
Total Response Time  : 19546.4399 seconds
====[ apache ]=====
Average Response Time: 20.8133 seconds
p995 Response Time   : 42.5797 seconds
p99  Response Time   : 39.8580 seconds
p90  Response Time   : 30.1892 seconds
p75  Response Time   : 22.3492 seconds
p50  Response Time   : 19.0437 seconds
Total Response Time  : 20813.3035 seconds
==========
Total Test Time      : 612.3112 seconds

0.1.2 Fourth Pre-Release

  • Fixed bug with mapping / to index.html
  • Addex Origin-Server header

0.1.1 Third Pre-Release

  • Add mappings for common MIME types
  • Heavily improved resource utilization
  • Removed non-cached file backend
  • Updated dockerfile to remove build files after build

Known Issues

  • Benchmark program does not include resource utilization

Benchmark Results

Each benchmark makes 1000 requests requesting a 21.9Mb file using 100 users to the webserver running in a Docker container.

The results from this benchmark vary quite a bit. About half the time, Apache can beat anthracite.

=====[ Anthracite Benchmarking Tool ]=====
Requests     : 1000
Users/Threads: 100


====[ anthracite ]=====
Average Response Time: 5.5128 seconds
p995 Response Time   : 8.3105 seconds
p99  Response Time   : 8.1796 seconds
p90  Response Time   : 6.4393 seconds
p75  Response Time   : 5.8587 seconds
p50  Response Time   : 5.4393 seconds
Total Response Time  : 5512.8397 seconds
====[ nginx ]=====
Average Response Time: 6.0201 seconds
p995 Response Time   : 12.4648 seconds
p99  Response Time   : 11.9635 seconds
p90  Response Time   : 8.7204 seconds
p75  Response Time   : 6.7331 seconds
p50  Response Time   : 5.5341 seconds
Total Response Time  : 6020.1369 seconds
====[ apache ]=====
Average Response Time: 5.9795 seconds
p995 Response Time   : 12.8266 seconds
p99  Response Time   : 11.6336 seconds
p90  Response Time   : 7.1465 seconds
p75  Response Time   : 6.4420 seconds
p50  Response Time   : 5.8224 seconds
Total Response Time  : 5979.5446 seconds
==========
Total Test Time      : 179.7469 seconds

0.1.0 Second Pre-Release

  • Allowed multiple clients to be handled at once via multithreadding
  • Enabled file caching in file_backend
  • Added benchmarking utilities

Known Issues

  • High resource utilization
  • Content other than HTML will still be treated as text/html

Benchmark Results

Each benchmark makes 1000 requests requesting a 21.9Mb file using 100 users to the webserver running in a Docker container.

=====[ Anthracite Benchmarking Tool ]=====
Requests     : 1000
Users/Threads: 100


====[ anthracite ]=====
Average Response Time: 5.9561 seconds
p995 Response Time   : 65.9016 seconds
p99  Response Time   : 12.3729 seconds
p90  Response Time   : 7.8775 seconds
p75  Response Time   : 5.9906 seconds
p50  Response Time   : 5.0612 seconds
Total Response Time  : 5956.0972 seconds
====[ nginx ]=====
Average Response Time: 6.0074 seconds
p995 Response Time   : 12.5307 seconds
p99  Response Time   : 11.9421 seconds
p90  Response Time   : 8.4831 seconds
p75  Response Time   : 6.6225 seconds
p50  Response Time   : 5.5751 seconds
Total Response Time  : 6007.4155 seconds
====[ apache ]=====
Average Response Time: 5.9028 seconds
p995 Response Time   : 10.7204 seconds
p99  Response Time   : 10.0042 seconds
p90  Response Time   : 6.9419 seconds
p75  Response Time   : 6.3974 seconds
p50  Response Time   : 5.8380 seconds
Total Response Time  : 5902.8490 seconds
==========
Total Test Time      : 188.6373 seconds

0.0.0 First Pre-Release

  • Added file based backend
  • Support for text/html