diff --git a/Makefile b/Makefile index c89f011..9628d50 100644 --- a/Makefile +++ b/Makefile @@ -24,6 +24,11 @@ NON_INIT_PY := $(filter-out %__init__.py,$(PY_FILES)) MPY_TARGETS = $(patsubst $(SRC_DIR)/%.py,$(BUILD_DIR)/%.mpy,$(NON_INIT_PY)) INIT_TARGETS = $(patsubst $(SRC_DIR)/%.py,$(BUILD_DIR)/%.py,$(filter %__init__.py,$(PY_FILES))) +# Performance testing properties +DEVICE_IP := # e.g. 192.168.1.100 +DEVICE_NAME := # e.g. ESP32-C3, will be used for report generation +PT_DIR := tests/system + .PHONY: all all: clean toolchain static-checkers unit-test build test-unix deploy deploy-config tls-cert deploy-cert deploy-example @@ -282,6 +287,28 @@ test-device: stage-test #clean-device upload done @mpremote $(DEVICE) reset +# ================================================ +# Performance testing +# ================================================ + +# ----------------------------- +# Run HTTP dimensioning tests +# ----------------------------- +.PHONY: perf-test-http-dimensioning +perf-test-http-dimensioning: + @mpremote $(DEVICE) soft-reset + mpremote $(DEVICE) cp $(PT_DIR)/http_dimensioning/app_base.py :app_base.py + mpremote $(DEVICE) cp $(PT_DIR)/http_dimensioning/app_multipart.py :app_multipart.py + mpremote $(DEVICE) cp $(PT_DIR)/http_dimensioning/boot.py :boot.py + @mpremote $(DEVICE) reset + $(PT_DIR)/http_dimensioning/test.py "$(DEVICE)" "$(DEVICE_IP)" "$(DEVICE_NAME)" + +# ----------------------------- +# Run all performance tests +# ----------------------------- +.PHONY: perf-test-device +perf-test-device: perf-test-http-dimensioning + # ================================================ # Utilities for TLS # ================================================ diff --git a/docs/dimensioning/esp32_c3/base.png b/docs/dimensioning/esp32_c3/base.png index c46e00f..15f70cb 100644 Binary files a/docs/dimensioning/esp32_c3/base.png and b/docs/dimensioning/esp32_c3/base.png differ diff --git a/docs/dimensioning/esp32_c3/files_api_001.png b/docs/dimensioning/esp32_c3/files_api_001.png index bc67914..7cbc96e 100644 Binary files a/docs/dimensioning/esp32_c3/files_api_001.png and b/docs/dimensioning/esp32_c3/files_api_001.png differ diff --git a/docs/dimensioning/esp32_c3/files_api_002.png b/docs/dimensioning/esp32_c3/files_api_002.png index 3671dd1..1817cc7 100644 Binary files a/docs/dimensioning/esp32_c3/files_api_002.png and b/docs/dimensioning/esp32_c3/files_api_002.png differ diff --git a/docs/dimensioning/esp32_c3/files_api_003.png b/docs/dimensioning/esp32_c3/files_api_003.png index 34ee0cd..9ed7667 100644 Binary files a/docs/dimensioning/esp32_c3/files_api_003.png and b/docs/dimensioning/esp32_c3/files_api_003.png differ diff --git a/docs/dimensioning/esp32_c3/high_mem_cap_001.png b/docs/dimensioning/esp32_c3/high_mem_cap_001.png index 972ded2..e2bc1a7 100644 Binary files a/docs/dimensioning/esp32_c3/high_mem_cap_001.png and b/docs/dimensioning/esp32_c3/high_mem_cap_001.png differ diff --git a/docs/dimensioning/esp32_c3/high_mem_cap_002.png b/docs/dimensioning/esp32_c3/high_mem_cap_002.png index 584e400..0b63310 100644 Binary files a/docs/dimensioning/esp32_c3/high_mem_cap_002.png and b/docs/dimensioning/esp32_c3/high_mem_cap_002.png differ diff --git a/docs/dimensioning/esp32_c3/high_mem_cap_003.png b/docs/dimensioning/esp32_c3/high_mem_cap_003.png index 44b391e..9c1c912 100644 Binary files a/docs/dimensioning/esp32_c3/high_mem_cap_003.png and b/docs/dimensioning/esp32_c3/high_mem_cap_003.png differ diff --git a/docs/dimensioning/esp32_c3/low_mem_cap_001.png b/docs/dimensioning/esp32_c3/low_mem_cap_001.png index 0e8571f..f231f7d 100644 Binary files a/docs/dimensioning/esp32_c3/low_mem_cap_001.png and b/docs/dimensioning/esp32_c3/low_mem_cap_001.png differ diff --git a/docs/dimensioning/esp32_c3/low_mem_cap_002.png b/docs/dimensioning/esp32_c3/low_mem_cap_002.png index 39c261d..0b3b1aa 100644 Binary files a/docs/dimensioning/esp32_c3/low_mem_cap_002.png and b/docs/dimensioning/esp32_c3/low_mem_cap_002.png differ diff --git a/docs/dimensioning/esp32_c3/low_mem_cap_003.png b/docs/dimensioning/esp32_c3/low_mem_cap_003.png index 16a0313..ca4f2ce 100644 Binary files a/docs/dimensioning/esp32_c3/low_mem_cap_003.png and b/docs/dimensioning/esp32_c3/low_mem_cap_003.png differ diff --git a/docs/dimensioning/esp32_c3/measurements.json b/docs/dimensioning/esp32_c3/measurements.json index fc49611..94204ba 100644 --- a/docs/dimensioning/esp32_c3/measurements.json +++ b/docs/dimensioning/esp32_c3/measurements.json @@ -1,85 +1,85 @@ [ { "id": "base", - "idle": 40320, + "idle": 37168, "usage": [ - 0, - 38592, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38944, - 40448, - 40352, - 40448, - 40352, - 40352, - 40176, - 39792, - 40736, - 40128, - 40352, - 40192, - 40176, - 40352, - 39888, - 40736, - 40448, - 40736, - 40176, - 40448, - 40352, - 40448, - 40176, - 40736, - 40448, - 40352, - 40352, - 40176, - 40736, - 40128, - 40448, - 40736, - 40448, - 40352, - 40736, - 40480, - 40720, - 40352, - 40224, - 40352, - 40128, - 40736, - 40752, - 40352, - 40736, - 40224, - 40224, - 40352, - 40128, - 40736, - 40736, + 37344, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 39024, + 39104, + 39024, + 39216, + 38976, + 39936, + 39552, + 39104, 40192, - 40352, - 40624, - 40176, - 40736, - 40736, - 40448, - 40224, - 40448, - 39184, - 0, - 0, - 0, + 39040, + 38480, + 39216, + 39360, + 38928, + 39040, + 38928, + 38928, + 39040, + 39280, + 39040, + 39248, + 38864, + 39216, + 38480, + 39040, + 38976, + 38864, + 39536, + 38864, + 39216, + 39552, + 39536, + 39136, + 39536, + 38864, + 39648, + 38576, + 39536, + 39360, + 38976, + 38864, + 38976, + 39216, + 38864, + 39136, + 39536, + 39648, + 39136, + 38864, + 39040, + 38576, + 39040, + 39648, + 38864, + 39040, + 39040, + 38864, + 39216, + 39040, + 37744, + 37744, + 37744, + 37744, + 37744, + 37712, 0, 0, 0, @@ -105,14 +105,14 @@ 0 ], "stats": { - "ok": 195, + "ok": 257, "errors": 0, - "avg_ms": 306.9329908153845, - "min_ms": 120.35957199987024, - "max_ms": 720.1993210001092, - "rps": 3.2, - "p95_ms": 660.0, - "p99_ms": 690.0 + "avg_ms": 231.07540460316676, + "min_ms": 136.24322200121242, + "max_ms": 681.3995800002886, + "rps": 3.9, + "p95_ms": 670.0, + "p99_ms": 680.0 }, "config": { "socket_max_con": 1, @@ -128,85 +128,85 @@ }, { "id": "low_mem_cap_001", - "idle": 40320, + "idle": 37168, "usage": [ - 0, - 38592, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38400, - 38768, - 40432, - 40736, - 40736, - 40736, - 40192, - 40448, - 40352, - 40176, - 40192, - 40736, - 40128, - 40736, - 40448, - 40352, - 40352, - 40224, - 40352, - 40736, - 39792, - 40736, - 40352, - 40736, - 40352, - 40448, - 40352, - 40352, - 40176, - 40736, - 40736, - 40192, - 40352, - 40448, - 39792, - 40448, - 40736, - 40448, - 40736, - 40352, - 40448, - 40176, - 40176, - 40352, - 40736, - 40224, - 40448, - 40736, - 40448, - 40224, - 41136, - 40736, - 40224, - 40448, - 40176, - 40352, - 40352, - 40352, - 40352, - 40448, - 40448, - 40592, - 0, - 0, - 0, + 37344, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 37152, + 39024, + 38864, + 39648, + 39040, + 39216, + 39536, + 38576, + 38976, + 38864, + 39216, + 38480, + 39040, + 38976, + 39248, + 39648, + 39040, + 39040, + 39040, + 39136, + 39536, + 39552, + 38928, + 39648, + 39040, + 39040, + 39216, + 38864, + 39552, + 38576, + 39040, + 39200, + 38864, + 39040, + 39040, + 38864, + 39648, + 38576, + 39040, + 39520, + 38976, + 39040, + 39216, + 38976, + 39536, + 39216, + 38976, + 38576, + 39648, + 39216, + 38928, + 38576, + 39040, + 38864, + 39216, + 39360, + 38480, + 38576, + 38928, + 39648, + 39040, + 37744, + 37744, + 37744, + 37744, + 37984, 0, 0, 0, @@ -232,12 +232,12 @@ 0 ], "stats": { - "ok": 206, + "ok": 245, "errors": 0, - "avg_ms": 289.7499063301043, - "min_ms": 111.7459689999123, - "max_ms": 688.2222139997793, - "rps": 3.5, + "avg_ms": 244.2126871999567, + "min_ms": 135.98035799805075, + "max_ms": 700.007886000094, + "rps": 4.1, "p95_ms": 670.0, "p99_ms": 680.0 }, @@ -255,84 +255,84 @@ }, { "id": "low_mem_cap_002", - "idle": 41536, + "idle": 38384, "usage": [ - 0, - 39808, - 39616, - 39616, - 39616, - 39616, - 39616, - 39616, - 39616, - 39616, - 39616, - 41376, - 43328, - 42720, - 43104, - 43712, - 43184, - 42400, - 44064, - 43392, - 44272, - 43184, - 43056, - 43280, - 43568, - 43152, - 43184, - 43664, - 43680, + 38560, + 38368, + 38368, + 38368, + 38368, + 38368, + 38368, + 38368, + 38368, + 38368, + 38368, + 38368, + 42064, + 41472, + 42016, + 42656, + 41760, + 42080, + 42368, + 41728, + 42128, + 41760, + 41824, + 42976, + 41760, + 42064, + 42080, + 41584, 42832, - 42800, - 43120, - 43104, - 43056, - 43104, - 43008, - 43344, - 43648, - 43280, - 42720, - 43408, - 43456, - 43120, - 43120, - 42960, - 43664, - 43568, - 43568, - 43104, - 42960, - 43216, - 44032, - 43456, - 43952, - 43104, - 43440, - 43008, - 43008, - 43664, - 42960, - 43952, - 43344, - 43568, - 43392, - 43312, + 41648, + 41760, + 42272, + 41936, + 43488, + 41472, + 41904, + 42256, + 41232, + 41472, + 42400, + 41648, + 42592, + 41696, + 41472, + 41584, + 41408, + 42544, + 41728, + 42112, + 40640, + 41600, + 42080, 43392, - 43056, - 42720, - 43968, - 43184, - 43120, - 0, - 0, - 0, - 0, - 0, + 41936, + 41792, + 41744, + 42544, + 41440, + 41760, + 41200, + 41408, + 42032, + 42432, + 41760, + 42880, + 42368, + 42736, + 42032, + 41472, + 43584, + 42752, + 40304, + 39008, + 39008, + 39008, + 39008, 0, 0, 0, @@ -359,14 +359,14 @@ 0 ], "stats": { - "ok": 369, + "ok": 453, "errors": 0, - "avg_ms": 324.6449824579858, - "min_ms": 107.9484759998195, - "max_ms": 753.1731879998915, - "rps": 6.6, - "p95_ms": 680.0, - "p99_ms": 720.0 + "avg_ms": 264.2182636644961, + "min_ms": 126.49853300172254, + "max_ms": 820.1008500000171, + "rps": 8.0, + "p95_ms": 740.0, + "p99_ms": 790.0 }, "config": { "socket_max_con": 2, @@ -382,84 +382,84 @@ }, { "id": "low_mem_cap_003", - "idle": 43968, + "idle": 40816, "usage": [ - 0, - 42240, - 42048, - 42048, - 42048, - 42048, - 42048, - 42048, - 42048, - 42048, - 42048, - 42048, - 42048, - 42752, - 49776, - 49072, - 48784, - 50288, - 49984, - 48896, - 49840, - 49760, - 49136, + 40992, + 40800, + 40800, + 40800, + 40800, + 40800, + 40800, + 40800, + 40800, + 40800, + 40800, + 40800, + 45520, + 47616, + 48816, 48512, - 49424, - 49168, - 48880, - 49504, - 47456, - 50032, - 49152, - 48784, - 49664, - 50240, - 49232, - 49360, - 50880, - 49600, - 50000, - 50288, - 49792, - 48784, - 49360, - 48800, - 50272, - 49056, - 49664, + 47840, + 48032, + 48032, + 48832, + 49024, + 47024, + 49216, + 47936, + 48608, + 48048, + 47312, + 48544, + 48576, + 48192, + 48208, + 47072, + 48912, + 47200, + 47744, + 48704, + 46528, + 47632, + 47712, + 47024, + 47856, + 47312, + 47712, + 47584, + 48272, + 47248, + 47920, + 47856, + 46640, + 48400, + 47264, + 47808, + 48032, + 49024, + 48000, + 47600, + 47200, 48016, - 49504, - 49232, - 49696, - 49184, - 50016, - 49792, - 49584, - 48768, - 49136, - 49184, - 49664, - 48448, - 48768, - 49152, - 49136, - 49136, - 50080, + 48304, + 47712, + 47024, + 47536, 48544, - 49888, - 49328, - 49104, - 48880, - 49840, - 48688, - 49776, - 0, - 0, - 0, + 47104, + 48240, + 47664, + 48016, + 50160, + 47984, + 47776, + 48048, + 42992, + 41472, + 41472, + 41472, + 41472, 0, 0, 0, @@ -486,14 +486,14 @@ 0 ], "stats": { - "ok": 413, + "ok": 475, "errors": 0, - "avg_ms": 579.1376370338962, - "min_ms": 174.81975099963165, - "max_ms": 1508.0461420002393, - "rps": 6.7, - "p95_ms": 1400.0, - "p99_ms": 1400.0 + "avg_ms": 500.0856252505802, + "min_ms": 204.83887800219236, + "max_ms": 1716.6671599989058, + "rps": 7.6, + "p95_ms": 1500.0, + "p99_ms": 1700.0 }, "config": { "socket_max_con": 4, @@ -509,84 +509,84 @@ }, { "id": "high_mem_cap_001", - "idle": 47488, + "idle": 44336, "usage": [ - 0, - 45760, - 45568, - 45568, - 45568, - 45568, - 45568, - 45568, - 45568, - 45568, - 45568, - 45568, - 45568, - 47616, - 47392, - 47904, - 47904, - 47392, - 47360, - 47792, - 47344, - 47344, - 47520, - 46960, - 47520, - 47344, - 47904, - 47392, - 47056, - 47392, - 47360, - 47520, - 47520, - 47344, - 47392, - 47520, - 47344, - 47792, - 47616, - 47616, - 47520, - 47520, - 46960, - 47344, - 47520, - 48528, - 47056, - 47520, - 47344, - 47520, - 47792, - 46960, - 47520, - 46960, - 47520, - 47344, - 47904, - 47616, - 47392, - 47392, - 47520, - 47392, - 47520, - 47056, - 47392, - 47344, - 47520, - 47616, - 47056, - 47600, - 47520, - 47616, - 47520, - 0, - 0, - 0, + 44512, + 44320, + 44320, + 44320, + 44320, + 44320, + 44320, + 44320, + 44320, + 44320, + 44320, + 44320, + 46144, + 46384, + 46208, + 46208, + 46208, + 46352, + 46032, + 46192, + 46384, + 46032, + 46192, + 46704, + 46208, + 46704, + 46032, + 46144, + 46208, + 46384, + 46032, + 46208, + 46384, + 46208, + 46208, + 46304, + 46032, + 46144, + 46208, + 46208, + 46208, + 46208, + 46144, + 46032, + 46272, + 46384, + 46208, + 46208, + 46512, + 45744, + 46208, + 45648, + 46704, + 46032, + 46208, + 45744, + 46416, + 45648, + 46704, + 46160, + 46416, + 46208, + 46208, + 46032, + 46192, + 46416, + 45648, + 46208, + 45744, + 46208, + 46208, + 44912, + 44912, + 44912, + 44912, + 44912, 0, 0, 0, @@ -613,14 +613,14 @@ 0 ], "stats": { - "ok": 283, + "ok": 263, "errors": 0, - "avg_ms": 210.6301068762976, - "min_ms": 119.44056999982422, - "max_ms": 755.250647000139, - "rps": 4.2, - "p95_ms": 480.0, - "p99_ms": 510.0 + "avg_ms": 227.87645709497102, + "min_ms": 138.1525969991344, + "max_ms": 524.6165690005, + "rps": 4.9, + "p95_ms": 490.0, + "p99_ms": 500.0 }, "config": { "socket_max_con": 1, @@ -636,84 +636,84 @@ }, { "id": "high_mem_cap_002", - "idle": 55872, + "idle": 52720, "usage": [ - 0, - 54144, - 53952, - 53952, - 53952, - 53952, - 53952, - 53952, - 53952, - 53952, - 53952, - 53952, - 53952, - 63104, - 57568, - 57616, - 57472, - 57712, - 57520, - 57616, - 57616, - 57136, - 57200, - 57136, - 57488, - 57360, - 56960, - 57344, - 57616, - 56832, - 57232, - 58000, - 57616, - 57232, - 57712, - 57488, - 56960, - 60336, - 57168, - 57056, - 57056, - 57616, - 57456, - 57360, - 57392, - 57440, - 57616, - 57520, - 57776, - 57616, - 56800, - 57488, - 57648, - 57520, - 57344, - 57728, - 57712, - 57488, - 58160, - 57600, - 57232, - 57904, - 57616, - 57440, - 57392, - 57728, - 57440, - 57184, - 57632, - 57088, - 57216, - 57984, - 0, - 0, - 0, - 0, + 52896, + 52704, + 52704, + 52704, + 52704, + 52704, + 52704, + 52704, + 52704, + 52704, + 52704, + 52704, + 54928, + 56224, + 55904, + 56592, + 56272, + 58400, + 56512, + 56064, + 56080, + 56192, + 56080, + 56416, + 56048, + 59136, + 56096, + 57296, + 56272, + 56048, + 56672, + 56224, + 56240, + 56592, + 56224, + 56528, + 56192, + 56272, + 56048, + 56224, + 56416, + 55920, + 56096, + 56448, + 55632, + 55456, + 56080, + 56192, + 56272, + 56080, + 56048, + 56096, + 56096, + 55920, + 56240, + 56240, + 56272, + 56096, + 55472, + 56064, + 56064, + 56640, + 56592, + 55856, + 56272, + 55488, + 59136, + 56032, + 56128, + 56224, + 55632, + 54768, + 53376, + 53376, + 53376, + 53376, 0, 0, 0, @@ -740,14 +740,14 @@ 0 ], "stats": { - "ok": 560, + "ok": 574, "errors": 0, - "avg_ms": 213.61373795537185, - "min_ms": 104.09169400008977, - "max_ms": 579.7837550007898, - "rps": 9.7, - "p95_ms": 420.0, - "p99_ms": 460.0 + "avg_ms": 208.72468220209362, + "min_ms": 118.10796699865023, + "max_ms": 653.4193590014183, + "rps": 9.8, + "p95_ms": 450.0, + "p99_ms": 480.0 }, "config": { "socket_max_con": 2, @@ -763,83 +763,83 @@ }, { "id": "high_mem_cap_003", - "idle": 72640, + "idle": 69488, "usage": [ - 0, - 70912, - 70720, - 70720, - 70720, - 70720, - 70720, - 70720, - 70720, - 70720, - 70720, - 70720, - 70720, - 76928, - 77888, - 77504, - 77344, - 78384, - 77088, - 76816, - 77184, - 76896, - 77184, - 77216, - 77104, - 77184, - 78032, - 77984, - 77552, + 69664, + 69472, + 69472, + 69472, + 69472, + 69472, + 69472, + 69472, + 69472, + 69472, + 69472, + 69472, + 75568, + 75552, + 75360, + 75776, + 76352, + 76592, + 76032, + 75168, + 75376, + 75328, + 74880, + 76224, + 76448, + 75936, + 75216, + 75696, + 75152, + 77264, + 75264, + 75088, + 75648, + 76224, 76064, - 76864, - 77392, - 77856, + 75600, + 75168, + 76256, + 76000, + 75536, + 75664, + 76368, + 75568, + 76144, + 76240, + 75280, + 74944, + 76400, + 75168, + 75680, + 75552, + 75504, + 75968, + 75872, + 76544, 76672, - 77520, - 77296, - 80528, - 77920, - 77712, - 76528, - 77440, - 76096, - 77008, - 77696, - 77424, - 77216, - 77152, - 77792, - 76464, - 77408, - 78144, - 77072, - 76816, - 77456, - 76448, - 77232, - 77568, - 77424, - 77680, - 77792, - 77776, - 77296, - 77584, - 78064, - 77696, - 77344, - 80592, - 77440, - 76448, - 79504, - 77616, - 77968, - 0, - 0, - 0, + 75856, + 75616, + 75200, + 74528, + 75824, + 76288, + 76480, + 78288, + 76352, + 76144, + 76912, + 75696, + 76080, + 76224, + 71600, + 70176, + 70176, + 70176, + 70176, 0, 0, 0, @@ -867,14 +867,14 @@ 0 ], "stats": { - "ok": 616, + "ok": 611, "errors": 0, - "avg_ms": 387.3104625941404, - "min_ms": 147.39018499949452, - "max_ms": 971.8016779997924, + "avg_ms": 390.7178903174797, + "min_ms": 157.8932709999208, + "max_ms": 1115.7745860000432, "rps": 10.4, - "p95_ms": 820.0, - "p99_ms": 880.0 + "p95_ms": 880.0, + "p99_ms": 950.0 }, "config": { "socket_max_con": 4, @@ -890,84 +890,84 @@ }, { "id": "multipart_001", - "idle": 45040, + "idle": 44400, "usage": [ - 0, - 43088, - 42896, - 42896, - 42896, - 42896, - 42896, - 42896, - 42896, - 42896, - 42896, - 42896, - 42896, - 44912, - 44608, - 46400, - 46400, - 46192, - 46144, - 46144, - 46160, - 46112, - 46192, - 45104, - 46256, - 44896, - 45504, - 46192, - 45936, - 46368, - 45120, - 46192, - 45520, - 46160, - 46368, - 46400, - 46112, - 44976, - 46192, - 46512, - 45120, - 45120, - 45200, - 45120, - 45936, - 46400, - 46304, - 45104, - 46144, - 45504, - 46160, - 46368, + 44576, + 44384, + 44384, + 44384, + 44384, + 44384, + 44384, + 44384, + 44384, + 44384, + 44384, + 44384, + 47648, + 46272, + 47648, + 47392, + 46384, + 47856, + 47616, + 47760, + 47664, + 47648, + 47856, + 47824, + 46704, + 47392, + 47760, + 47648, + 46320, + 47824, + 47648, + 46896, + 46384, + 46320, + 47968, + 46272, + 46384, + 46384, + 47600, + 46896, + 47568, + 47600, + 46384, + 45792, + 47600, + 47648, + 46272, + 47440, 45888, - 46192, - 46400, - 44896, - 45104, - 46256, - 46112, - 45520, - 46400, - 45104, - 46304, - 46400, - 46400, - 46144, - 44896, - 46400, - 46192, - 46400, - 46144, - 46112, - 46368, - 0, - 0, - 0, + 47856, + 47600, + 47856, + 46288, + 46384, + 46384, + 46384, + 46880, + 47760, + 46576, + 46320, + 46384, + 47648, + 46384, + 46880, + 47568, + 46384, + 47712, + 46384, + 47616, + 46384, + 47648, + 45056, + 45056, + 45056, + 45056, + 45056, 0, 0, 0, @@ -994,13 +994,13 @@ 0 ], "stats": { - "ok": 71, + "ok": 70, "errors": 0, - "avg_ms": 838.0303002816904, - "min_ms": 770.5004279996501, - "max_ms": 1054.9864020003952, - "rps": 1.2, - "p95_ms": 890.0, + "avg_ms": 849.1593389858151, + "min_ms": 758.7854039993545, + "max_ms": 1066.8355480011087, + "rps": 1.1, + "p95_ms": 930.0, "p99_ms": 1100.0 }, "config": { @@ -1017,84 +1017,84 @@ }, { "id": "multipart_002", - "idle": 46256, + "idle": 45616, "usage": [ - 0, - 44304, - 44112, - 44112, - 44112, - 44112, - 44112, - 44112, - 44112, - 44112, - 44112, - 44112, - 44112, - 44480, - 50336, - 50176, - 48304, - 50080, - 48000, - 50416, - 47616, - 50208, - 50032, - 50064, - 50048, - 49488, - 47232, - 48000, - 50048, - 47776, - 50256, - 49232, - 49888, - 48000, - 49840, - 47840, - 47888, - 49664, - 48048, - 49680, - 49680, - 50416, - 48896, - 50256, - 50480, - 50512, - 48496, - 49232, - 50112, - 48496, - 50224, - 49232, - 50368, - 50272, - 50304, - 50320, - 50064, - 50144, + 45792, + 45600, + 45600, + 45600, + 45600, + 45600, + 45600, + 45600, + 45600, + 45600, + 45600, + 45600, 50096, - 49200, - 50096, - 50256, - 48048, - 50112, - 48752, - 50160, - 49104, - 48960, + 51888, + 51312, + 51824, + 51536, + 51936, + 51680, + 51936, + 51312, + 49552, + 51728, + 50880, + 49936, + 50480, + 51072, + 50560, + 52000, + 51472, + 51856, + 51520, + 50352, + 50656, + 50864, + 49024, + 50400, + 51328, + 50608, + 50400, + 50752, + 51872, + 50080, + 50352, + 50368, + 51744, + 50368, + 49600, + 51520, + 50512, + 52048, + 51456, + 51680, + 51776, + 51408, + 50352, + 50400, + 51008, + 50208, + 51840, + 50352, + 50464, + 51648, + 51984, 50256, - 48912, - 48752, - 49328, - 47664, - 0, - 0, - 0, + 50256, + 50720, + 50464, + 51424, + 50352, + 50400, + 46352, + 46352, + 46352, + 46352, + 46352, 0, 0, 0, @@ -1121,14 +1121,14 @@ 0 ], "stats": { - "ok": 90, + "ok": 87, "errors": 0, - "avg_ms": 1318.015343555544, - "min_ms": 968.9139729998715, - "max_ms": 1833.6361209999268, - "rps": 1.6, - "p95_ms": 1600.0, - "p99_ms": 1800.0 + "avg_ms": 1359.7573727010863, + "min_ms": 1108.7965080005233, + "max_ms": 1912.7471470019373, + "rps": 1.4, + "p95_ms": 1800.0, + "p99_ms": 1900.0 }, "config": { "socket_max_con": 2, @@ -1144,83 +1144,83 @@ }, { "id": "multipart_003", - "idle": 48688, + "idle": 48048, "usage": [ - 0, - 46736, - 46544, - 46544, - 46544, - 46544, - 46544, - 46544, - 46544, - 46544, - 46544, - 46544, - 46544, - 48816, - 58304, - 57616, - 57360, - 57008, - 58000, - 57632, - 57888, - 56640, - 57600, - 57184, - 56976, - 56592, - 57712, - 55904, - 55312, - 56080, - 54640, - 55712, - 55856, - 55872, - 57312, - 56288, - 54992, - 55424, - 58096, - 55600, - 55392, - 56928, - 57120, - 58416, - 57792, - 58096, - 57504, - 57792, - 58512, - 57712, - 55808, - 57360, - 56032, - 56544, + 48224, + 48032, + 48032, + 48032, + 48032, + 48032, + 48032, + 48032, + 48032, + 48032, + 48032, + 48032, + 56320, + 58816, + 58464, + 57328, + 58384, + 58928, + 57408, + 56560, + 59696, + 59984, + 56832, + 56736, + 58800, + 58432, + 59424, + 59680, + 55760, + 58208, + 55680, + 57984, + 58848, + 58544, + 56144, + 58848, + 59184, + 57984, + 57152, + 57040, 57776, - 58160, - 56192, - 58288, + 56960, + 58448, + 57872, 57536, - 56400, - 56944, - 58144, - 58576, - 57344, - 56448, - 55808, - 56672, - 57712, - 57296, - 57584, - 55984, - 56336, - 0, - 0, - 0, + 58176, + 57488, + 55824, + 55760, + 57984, + 58768, + 59536, + 58720, + 59632, + 59584, + 58208, + 58128, + 58656, + 58032, + 59232, + 59488, + 59104, + 58128, + 58784, + 56896, + 57008, + 59504, + 58928, + 58048, + 57472, + 50080, + 48736, + 48736, + 48736, + 48736, 0, 0, 0, @@ -1248,14 +1248,14 @@ 0 ], "stats": { - "ok": 99, + "ok": 96, "errors": 0, - "avg_ms": 2380.730864676755, - "min_ms": 1605.0147549999565, - "max_ms": 3318.4125239999958, - "rps": 1.8, - "p95_ms": 3100.0, - "p99_ms": 3300.0 + "avg_ms": 2444.2539523436153, + "min_ms": 1681.746859998384, + "max_ms": 3505.416531999799, + "rps": 1.6, + "p95_ms": 3300.0, + "p99_ms": 3500.0 }, "config": { "socket_max_con": 4, @@ -1271,84 +1271,84 @@ }, { "id": "files_api_001", - "idle": 47872, + "idle": 44512, "usage": [ - 0, - 46144, - 45952, - 45952, - 45952, - 45952, - 45952, - 45952, - 45952, - 45952, - 45952, - 45952, - 45952, - 48016, - 48880, - 47728, - 48336, - 48832, - 47344, - 47936, - 48016, - 48304, - 47344, - 48016, - 47728, - 47440, - 47728, - 47760, - 48304, - 47728, - 48832, - 48880, - 48880, - 47440, - 47744, - 47792, - 47776, - 47744, - 48016, - 48832, - 47344, - 47344, - 48880, - 48016, - 48880, - 48672, - 48016, - 48880, - 48880, - 48336, - 48016, - 48032, - 48832, - 47728, - 47936, - 47760, - 47344, - 47760, - 47744, - 47728, - 47344, - 47344, - 48016, - 48848, - 48832, - 48304, - 48832, - 47344, - 47936, - 47936, - 48016, - 48336, - 48192, - 0, - 0, - 0, + 44688, + 44496, + 44496, + 44496, + 44496, + 44496, + 44496, + 44496, + 44496, + 44496, + 44496, + 44496, + 48096, + 48064, + 48096, + 48096, + 48096, + 48096, + 48096, + 47008, + 46176, + 48160, + 48096, + 48096, + 48064, + 48064, + 48096, + 48096, + 48096, + 48064, + 48096, + 47888, + 46528, + 46272, + 46288, + 46672, + 45776, + 46288, + 46672, + 46176, + 46480, + 46672, + 46160, + 46848, + 48096, + 47856, + 48096, + 48096, + 46528, + 47888, + 48096, + 48096, + 48048, + 46160, + 46528, + 48096, + 45776, + 48096, + 48064, + 48048, + 47008, + 46176, + 48064, + 48096, + 48064, + 48096, + 48064, + 48096, + 48048, + 48096, + 48096, + 45040, + 45040, + 45040, + 45040, + 45040, 0, 0, 0, @@ -1375,14 +1375,14 @@ 0 ], "stats": { - "ok": 332, + "ok": 111, "errors": 0, - "avg_ms": 180.42329718975924, - "min_ms": 122.59894900034851, - "max_ms": 819.9667389999377, - "rps": 5.7, - "p95_ms": 230.0, - "p99_ms": 300.0 + "avg_ms": 535.1503607479088, + "min_ms": 156.96031900006346, + "max_ms": 1216.8695489999664, + "rps": 1.6, + "p95_ms": 950.0, + "p99_ms": 970.0 }, "config": { "socket_max_con": 1, @@ -1398,83 +1398,83 @@ }, { "id": "files_api_002", - "idle": 49088, + "idle": 45728, "usage": [ - 0, - 47360, - 47168, - 47168, - 47168, - 47168, - 47168, - 47168, - 47168, - 47168, - 47168, - 47168, - 47168, - 48320, - 50352, - 50752, - 51152, - 51536, - 51776, - 51568, - 50688, - 51792, - 50592, - 50720, - 51312, - 51280, - 50608, - 51568, - 50400, - 50976, - 51664, - 51328, - 52800, - 50960, - 51408, - 52800, - 51600, - 51840, - 50608, - 51488, - 52112, - 50416, - 51360, - 52656, - 51792, - 51248, - 50608, - 52112, - 51248, - 50688, + 45904, + 45712, + 45712, + 45712, + 45712, + 45712, + 45712, + 45712, + 45712, + 45712, + 45712, + 45712, + 50992, + 50176, + 52320, + 50512, + 52288, + 51072, + 52592, + 50832, + 52320, + 52496, + 50992, 50576, - 51840, - 51504, - 51792, - 50384, - 52064, + 50160, + 52384, + 52320, + 52448, + 52272, + 51344, + 52272, + 48688, + 52288, + 50272, + 52320, + 49904, + 52496, + 51360, + 49968, + 52608, + 52496, + 48656, + 52640, + 50272, + 49184, + 52496, 52752, - 51776, - 51136, - 50992, - 50432, + 52752, + 51392, + 50720, + 52320, + 52272, 51408, - 50960, - 52256, + 50704, 50880, - 52768, - 50096, - 51200, - 52096, - 51776, - 50464, - 50128, - 0, - 0, - 0, + 52608, + 52496, + 52448, + 50880, + 51392, + 52592, + 50704, + 52320, + 50864, + 51408, + 52352, + 51408, + 52464, + 51360, + 52432, + 46256, + 46256, + 46256, + 46256, + 46256, 0, 0, 0, @@ -1502,14 +1502,14 @@ 0 ], "stats": { - "ok": 434, + "ok": 120, "errors": 0, - "avg_ms": 275.56767837097334, - "min_ms": 157.43496300001425, - "max_ms": 414.42680999989534, - "rps": 7.1, - "p95_ms": 370.0, - "p99_ms": 390.0 + "avg_ms": 998.8041618084026, + "min_ms": 211.83301000201027, + "max_ms": 1711.3269539986504, + "rps": 2.0, + "p95_ms": 1700.0, + "p99_ms": 1700.0 }, "config": { "socket_max_con": 2, @@ -1525,80 +1525,80 @@ }, { "id": "files_api_003", - "idle": 51520, + "idle": 48163, "usage": [ - 0, - 49792, - 49600, - 49600, - 49600, - 49600, - 49600, - 49600, - 49600, - 49600, - 49600, - 49600, - 49600, - 54016, - 58224, - 56704, - 55184, - 57376, - 57984, - 58656, - 59168, - 57344, - 57632, - 57056, - 57712, - 56784, - 56176, - 56832, - 58400, - 56000, - 56528, - 57632, - 57792, + 48336, + 48144, + 48144, + 48144, + 48144, + 48144, + 48144, + 48144, + 48144, + 48144, + 56288, + 61008, + 60944, + 59568, + 57936, + 60096, + 59216, + 58464, + 61280, + 59440, + 55056, + 58832, + 61216, + 61296, + 57040, + 61424, + 59504, + 59472, + 61056, + 60176, 57728, - 55968, + 60224, + 58400, + 60224, + 59440, 56752, - 58480, - 56736, - 57152, - 56800, - 56784, - 57248, - 57248, - 56640, - 56704, - 56544, - 56912, - 57760, - 58304, - 57536, - 57824, - 55824, - 58800, - 57328, - 56592, - 57904, - 56896, - 55952, - 57968, - 56192, - 57760, + 58096, + 60176, 57376, - 56992, - 57840, - 57024, - 58864, - 57360, - 58176, - 56528, - 56912, - 56192, - 51840, + 59568, + 58192, + 58944, + 59488, + 56720, + 59824, + 61616, + 56864, + 59008, + 61264, + 59376, + 55600, + 61264, + 59216, + 58752, + 58512, + 60224, + 58032, + 55200, + 59936, + 59200, + 58160, + 60176, + 61104, + 59520, + 58960, + 61680, + 58096, + 49872, + 48688, + 48688, + 48688, + 48656, 0, 0, 0, @@ -1629,14 +1629,14 @@ 0 ], "stats": { - "ok": 463, + "ok": 120, "errors": 0, - "avg_ms": 515.3311474989238, - "min_ms": 296.7984459996842, - "max_ms": 760.5838969998331, - "rps": 7.7, - "p95_ms": 680.0, - "p99_ms": 700.0 + "avg_ms": 1958.8669437582514, + "min_ms": 420.75945099713863, + "max_ms": 4235.881816999608, + "rps": 1.9, + "p95_ms": 3300.0, + "p99_ms": 3800.0 }, "config": { "socket_max_con": 4, @@ -1652,84 +1652,84 @@ }, { "id": "tls_001", - "idle": 43040, + "idle": 39296, "usage": [ - 0, - 40672, - 40480, - 40480, - 40480, - 40480, - 40480, - 40480, - 40480, - 40480, - 40480, - 40480, - 40480, - 42912, - 42944, - 43168, - 42896, - 42912, - 43168, - 43456, - 43456, - 42944, - 43456, - 43456, - 43072, - 43072, - 42896, - 43344, - 43344, - 42608, - 43344, - 43456, - 42896, - 43456, - 43168, - 43168, - 43440, - 43456, - 43456, - 43168, - 42896, - 42848, - 42896, - 43072, - 43456, - 42944, - 42848, - 42912, - 43168, - 43072, - 43344, - 42608, - 43456, - 43456, - 43456, - 42944, - 43072, - 43344, + 39472, + 39280, + 39280, + 39280, + 39280, + 39280, + 39280, + 39280, + 39280, + 39280, + 39280, + 39280, + 41664, + 42320, + 41712, + 41696, + 42208, + 41152, + 41712, + 42208, + 41600, + 41536, + 41888, 42608, - 42912, - 43072, - 43168, - 43072, - 43200, - 43328, - 42944, - 43456, - 42896, - 43168, - 43168, - 43072, - 43344, - 42848, - 42944, - 0, - 0, + 41648, + 41712, + 41888, + 42208, + 42320, + 42208, + 41248, + 41712, + 42320, + 41248, + 41888, + 42320, + 41152, + 41920, + 42320, + 42208, + 41248, + 41248, + 41536, + 41888, + 42192, + 42512, + 41808, + 41712, + 41600, + 41248, + 41600, + 42320, + 42320, + 41888, + 41712, + 41712, + 41648, + 41664, + 41248, + 41888, + 42208, + 41776, + 41712, + 41536, + 42208, + 41600, + 42032, + 41648, + 41808, + 41712, + 41536, + 40384, + 40384, + 40384, + 40384, + 40384, 0, 0, 0, @@ -1756,14 +1756,14 @@ 0 ], "stats": { - "ok": 187, + "ok": 232, "errors": 0, - "avg_ms": 319.9572561818331, - "min_ms": 127.92590099979861, - "max_ms": 933.7864350000018, - "rps": 3.3, - "p95_ms": 680.0, - "p99_ms": 820.0 + "avg_ms": 258.3390812240803, + "min_ms": 130.6628889979038, + "max_ms": 1880.179355997825, + "rps": 4.2, + "p95_ms": 700.0, + "p99_ms": 800.0 }, "config": { "socket_max_con": 1, @@ -1779,85 +1779,85 @@ }, { "id": "tls_002", - "idle": 44256, + "idle": 40512, "usage": [ - 0, - 41888, - 41696, - 41696, - 41696, - 41696, - 41696, - 41696, - 41696, - 41696, - 41696, - 41696, - 41696, - 44160, - 46208, - 46976, - 47264, - 46368, + 40688, + 40496, + 40496, + 40496, + 40496, + 40496, + 40496, + 40496, + 40496, + 40496, + 40496, + 40496, + 44928, + 45520, + 45520, + 45472, + 45344, + 45104, + 45024, + 44976, + 45632, + 45824, + 44672, + 46000, + 45536, + 45232, + 45056, + 44560, + 45024, 46752, - 46976, - 46688, - 46208, - 46880, - 47264, - 47264, - 46976, - 46416, - 47184, - 46976, - 47264, - 46976, - 46592, - 46368, - 46240, - 46592, - 46720, - 46368, - 46032, - 47280, - 46704, + 45920, + 45376, + 46160, + 45520, + 45024, + 45200, + 45520, + 45024, 46336, - 46976, - 46096, - 46704, - 46976, - 46896, - 46592, - 46368, - 46976, - 46592, - 46880, - 47280, - 46144, - 46496, - 46720, - 46592, - 46496, - 47264, - 46880, - 46880, - 46496, - 46896, - 47664, - 46032, - 46192, - 46464, - 46688, - 46976, - 46496, - 46528, - 46416, - 46496, + 45088, + 45024, + 45520, + 45200, + 45952, + 46000, + 45696, 45664, - 0, - 0, - 0, - 0, + 45056, + 45344, + 45632, + 45088, + 45488, + 44960, + 46000, + 45024, + 45520, + 45264, + 46128, + 45680, + 45344, + 45632, + 45344, + 45344, + 44912, + 45520, + 46432, + 45024, + 45648, + 45536, + 46320, + 45520, + 42240, + 42240, + 42240, + 42240, + 42240, + 43120, 0, 0, 0, @@ -1883,14 +1883,14 @@ 0 ], "stats": { - "ok": 347, + "ok": 417, "errors": 0, - "avg_ms": 343.80903827378205, - "min_ms": 119.16914399989764, - "max_ms": 1698.6069100003078, - "rps": 6.1, - "p95_ms": 740.0, - "p99_ms": 800.0 + "avg_ms": 286.18538544374536, + "min_ms": 121.5633190004155, + "max_ms": 2259.0773800002353, + "rps": 7.5, + "p95_ms": 810.0, + "p99_ms": 850.0 }, "config": { "socket_max_con": 2, diff --git a/docs/dimensioning/esp32_c3/multipart_001.png b/docs/dimensioning/esp32_c3/multipart_001.png index b1425a7..4cac72d 100644 Binary files a/docs/dimensioning/esp32_c3/multipart_001.png and b/docs/dimensioning/esp32_c3/multipart_001.png differ diff --git a/docs/dimensioning/esp32_c3/multipart_002.png b/docs/dimensioning/esp32_c3/multipart_002.png index ce4608c..22ec575 100644 Binary files a/docs/dimensioning/esp32_c3/multipart_002.png and b/docs/dimensioning/esp32_c3/multipart_002.png differ diff --git a/docs/dimensioning/esp32_c3/multipart_003.png b/docs/dimensioning/esp32_c3/multipart_003.png index 3ca2d32..3b91990 100644 Binary files a/docs/dimensioning/esp32_c3/multipart_003.png and b/docs/dimensioning/esp32_c3/multipart_003.png differ diff --git a/docs/dimensioning/esp32_c3/tls_001.png b/docs/dimensioning/esp32_c3/tls_001.png index cb599b9..2608e2c 100644 Binary files a/docs/dimensioning/esp32_c3/tls_001.png and b/docs/dimensioning/esp32_c3/tls_001.png differ diff --git a/docs/dimensioning/esp32_c3/tls_002.png b/docs/dimensioning/esp32_c3/tls_002.png index aa309b1..2d77a44 100644 Binary files a/docs/dimensioning/esp32_c3/tls_002.png and b/docs/dimensioning/esp32_c3/tls_002.png differ diff --git a/docs/dimensioning/esp32_s3/base.png b/docs/dimensioning/esp32_s3/base.png index d8263c7..b04e74f 100644 Binary files a/docs/dimensioning/esp32_s3/base.png and b/docs/dimensioning/esp32_s3/base.png differ diff --git a/docs/dimensioning/esp32_s3/files_api_001.png b/docs/dimensioning/esp32_s3/files_api_001.png index 4baab92..07c1f54 100644 Binary files a/docs/dimensioning/esp32_s3/files_api_001.png and b/docs/dimensioning/esp32_s3/files_api_001.png differ diff --git a/docs/dimensioning/esp32_s3/files_api_002.png b/docs/dimensioning/esp32_s3/files_api_002.png index 6d648a6..7cef814 100644 Binary files a/docs/dimensioning/esp32_s3/files_api_002.png and b/docs/dimensioning/esp32_s3/files_api_002.png differ diff --git a/docs/dimensioning/esp32_s3/files_api_003.png b/docs/dimensioning/esp32_s3/files_api_003.png index c0ef387..69fb8b7 100644 Binary files a/docs/dimensioning/esp32_s3/files_api_003.png and b/docs/dimensioning/esp32_s3/files_api_003.png differ diff --git a/docs/dimensioning/esp32_s3/high_mem_cap_001.png b/docs/dimensioning/esp32_s3/high_mem_cap_001.png index 998cadc..c0db19b 100644 Binary files a/docs/dimensioning/esp32_s3/high_mem_cap_001.png and b/docs/dimensioning/esp32_s3/high_mem_cap_001.png differ diff --git a/docs/dimensioning/esp32_s3/high_mem_cap_002.png b/docs/dimensioning/esp32_s3/high_mem_cap_002.png index 91d0e33..85d87cc 100644 Binary files a/docs/dimensioning/esp32_s3/high_mem_cap_002.png and b/docs/dimensioning/esp32_s3/high_mem_cap_002.png differ diff --git a/docs/dimensioning/esp32_s3/high_mem_cap_003.png b/docs/dimensioning/esp32_s3/high_mem_cap_003.png index 5c39e65..d6a0273 100644 Binary files a/docs/dimensioning/esp32_s3/high_mem_cap_003.png and b/docs/dimensioning/esp32_s3/high_mem_cap_003.png differ diff --git a/docs/dimensioning/esp32_s3/low_mem_cap_001.png b/docs/dimensioning/esp32_s3/low_mem_cap_001.png index 95351f5..e216d8c 100644 Binary files a/docs/dimensioning/esp32_s3/low_mem_cap_001.png and b/docs/dimensioning/esp32_s3/low_mem_cap_001.png differ diff --git a/docs/dimensioning/esp32_s3/low_mem_cap_002.png b/docs/dimensioning/esp32_s3/low_mem_cap_002.png index 9d7a780..020d116 100644 Binary files a/docs/dimensioning/esp32_s3/low_mem_cap_002.png and b/docs/dimensioning/esp32_s3/low_mem_cap_002.png differ diff --git a/docs/dimensioning/esp32_s3/low_mem_cap_003.png b/docs/dimensioning/esp32_s3/low_mem_cap_003.png index 1d6f8eb..e6d88d5 100644 Binary files a/docs/dimensioning/esp32_s3/low_mem_cap_003.png and b/docs/dimensioning/esp32_s3/low_mem_cap_003.png differ diff --git a/docs/dimensioning/esp32_s3/measurements.json b/docs/dimensioning/esp32_s3/measurements.json index ea2508e..10828c4 100644 --- a/docs/dimensioning/esp32_s3/measurements.json +++ b/docs/dimensioning/esp32_s3/measurements.json @@ -1,83 +1,83 @@ [ { "id": "base", - "idle": 47456, + "idle": 44351, "usage": [ - 0, - 45728, - 45536, - 45536, - 45536, - 45536, - 45536, - 45536, - 45536, - 45536, - 45536, - 45904, - 47584, - 47760, - 47312, - 47568, - 47312, - 47328, - 47488, - 47328, - 47584, - 47584, - 47360, - 47488, - 47616, - 47584, - 47312, - 47888, - 47488, - 47312, - 47328, - 47488, - 47760, - 47584, - 46928, - 47488, - 47312, - 47488, - 47584, - 47024, - 47392, - 47584, - 47584, - 47360, - 47584, - 47024, - 47488, - 47488, - 47312, - 47584, - 46928, - 47488, - 47488, - 47488, - 47328, - 47584, - 47360, - 47584, - 47488, - 47312, - 47888, - 47584, - 47488, - 46928, - 47488, - 47488, - 47584, - 47312, - 47776, - 47584, - 47488, - 0, - 0, - 0, - 0, + 44496, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44672, + 46144, + 46320, + 46320, + 46352, + 46768, + 46320, + 46144, + 46320, + 46352, + 45968, + 46144, + 46144, + 45968, + 45968, + 46144, + 45968, + 46096, + 45584, + 46128, + 46304, + 46320, + 46320, + 46144, + 46320, + 46768, + 46320, + 46320, + 46144, + 46320, + 46320, + 46768, + 46768, + 46096, + 46144, + 46320, + 46144, + 46144, + 45968, + 45584, + 46768, + 46768, + 46080, + 46768, + 45968, + 46080, + 46144, + 46144, + 46320, + 46128, + 45680, + 46144, + 46096, + 46768, + 46144, + 45680, + 46448, + 46144, + 46768, + 44848, + 44848, + 44848, + 44848, + 44848, 0, 0, 0, @@ -105,14 +105,14 @@ 0 ], "stats": { - "ok": 217, + "ok": 241, "errors": 0, - "avg_ms": 275.09792664042106, - "min_ms": 177.9682890010008, - "max_ms": 726.1661369993817, - "rps": 3.8, + "avg_ms": 248.5040133237119, + "min_ms": 173.23105100149405, + "max_ms": 487.5811439997051, + "rps": 3.7, "p95_ms": 480.0, - "p99_ms": 500.0 + "p99_ms": 490.0 }, "config": { "socket_max_con": 1, @@ -128,84 +128,84 @@ }, { "id": "low_mem_cap_001", - "idle": 40288, + "idle": 37183, "usage": [ - 0, - 38560, - 38368, - 38368, - 38368, - 38368, - 38368, - 38368, - 38368, - 38368, - 38368, - 40144, - 40608, - 40720, - 40720, - 40144, - 39856, - 40320, - 40608, - 40320, - 40144, - 40144, - 40416, - 40704, - 40096, - 40416, - 40192, - 40416, - 40400, - 40192, - 40416, - 40704, - 40416, - 39856, - 40320, - 40192, - 40416, - 40704, - 40720, - 40320, - 39760, - 40720, - 40608, - 40704, - 40144, - 39760, - 40192, - 40416, - 40144, - 40608, - 40720, - 40720, - 40704, - 40320, - 40416, - 40144, - 40416, - 40416, - 40320, - 39760, - 40320, - 40704, - 40096, - 40144, - 40416, - 40704, - 40192, - 40608, - 40400, - 40400, - 40416, - 0, - 0, - 0, - 0, - 0, + 37328, + 37136, + 37136, + 37136, + 37136, + 37136, + 37136, + 37136, + 37136, + 37136, + 37136, + 37504, + 38976, + 39152, + 39600, + 38912, + 39488, + 38976, + 38976, + 38976, + 38928, + 39616, + 38976, + 39184, + 38976, + 39152, + 39152, + 38864, + 39184, + 39184, + 38912, + 38512, + 38912, + 38800, + 39776, + 38800, + 39072, + 38800, + 39152, + 38864, + 38976, + 38928, + 39472, + 39600, + 39488, + 39296, + 38800, + 39152, + 38976, + 39600, + 39776, + 38864, + 38864, + 39488, + 38928, + 38976, + 38512, + 38912, + 39488, + 39600, + 38416, + 38912, + 39488, + 38976, + 38976, + 39184, + 39152, + 38976, + 38976, + 38976, + 37680, + 37680, + 37680, + 37680, + 37680, + 37920, 0, 0, 0, @@ -232,14 +232,14 @@ 0 ], "stats": { - "ok": 153, + "ok": 217, "errors": 0, - "avg_ms": 391.5697839805159, - "min_ms": 184.72109199865372, - "max_ms": 728.2016149983974, - "rps": 2.7, + "avg_ms": 273.41070121667127, + "min_ms": 178.20788999961223, + "max_ms": 677.8778000007151, + "rps": 3.5, "p95_ms": 660.0, - "p99_ms": 690.0 + "p99_ms": 670.0 }, "config": { "socket_max_con": 1, @@ -255,83 +255,83 @@ }, { "id": "low_mem_cap_002", - "idle": 41504, + "idle": 38369, "usage": [ - 0, - 39776, - 39584, - 39584, - 39584, - 39584, - 39584, - 39584, - 39584, - 39584, - 39584, - 39952, - 43984, - 43600, - 43248, - 43648, - 43376, - 43248, - 43584, - 43648, - 43248, - 43552, - 42976, - 43344, - 42912, - 43552, - 43408, - 43536, - 43248, - 42464, - 43376, - 42992, - 44432, - 43648, - 43840, - 43648, - 44000, - 43664, - 43152, - 43552, - 43088, - 43024, - 43936, - 43264, - 43632, - 44096, - 43584, - 43632, - 42800, - 42896, - 42976, - 43648, - 43072, - 43248, - 43088, - 43648, - 43824, - 43648, - 43664, - 43936, - 43936, - 43248, - 43024, - 42864, - 43648, - 43088, - 43376, - 43392, + 38544, + 38352, + 38352, + 38352, + 38352, + 38352, + 38352, + 38352, + 38352, + 38352, + 38352, + 41008, + 40528, + 42384, + 41344, + 42192, + 42400, + 41872, + 41664, + 42384, + 41520, + 42768, + 42384, + 41872, + 42192, + 42480, + 41872, + 41760, + 41696, + 42016, + 42832, + 41872, + 41760, + 41696, + 42032, + 42080, + 41696, + 40976, + 42288, + 42816, + 41872, + 42208, + 42944, + 42272, + 42416, + 41408, 43328, - 44032, - 42000, - 0, - 0, - 0, - 0, + 42304, + 41824, + 42416, + 42320, + 40960, + 41232, + 41872, + 42384, + 41648, + 42112, + 42496, + 41840, + 41872, + 41696, + 42016, + 42768, + 42496, + 41760, + 41696, + 42320, + 41648, + 41776, + 42368, + 38976, + 38976, + 38976, + 38976, + 38976, 0, 0, 0, @@ -359,13 +359,13 @@ 0 ], "stats": { - "ok": 299, + "ok": 392, "errors": 0, - "avg_ms": 399.2018889665781, - "min_ms": 157.27941099976306, - "max_ms": 973.5448530009307, - "rps": 5.1, - "p95_ms": 820.0, + "avg_ms": 304.6805395994425, + "min_ms": 147.02928900078405, + "max_ms": 924.4693440014089, + "rps": 6.6, + "p95_ms": 790.0, "p99_ms": 900.0 }, "config": { @@ -382,83 +382,83 @@ }, { "id": "low_mem_cap_003", - "idle": 43936, + "idle": 40801, "usage": [ - 0, - 42208, - 42016, - 42016, - 42016, - 42016, - 42016, - 42016, - 42016, - 42016, - 42016, - 42528, + 40976, + 40784, + 40784, + 40784, + 40784, + 40784, + 40784, + 40784, + 40784, + 40784, + 40784, + 46384, + 47088, + 48464, + 47088, + 46896, + 47552, + 48000, + 47552, + 48080, + 48864, + 48000, + 48048, + 48928, + 47360, 49120, - 49360, - 50080, - 48768, - 48656, - 48288, - 49200, - 49968, - 49072, - 49840, - 49968, - 49792, - 49856, + 46864, + 48512, + 47824, + 48208, + 49456, + 46928, + 47104, + 47072, + 46576, + 46672, + 47680, + 47696, + 47712, + 47360, + 48304, + 47824, + 46752, + 47904, + 46736, 48352, - 48544, - 48928, - 49568, + 47744, + 47696, + 46720, 48576, - 50080, - 49680, - 50352, - 49840, - 48672, - 49184, - 49504, - 49568, - 48448, - 49344, - 49760, - 49776, - 49920, - 49792, - 49392, - 48480, - 49536, - 48896, - 48832, - 49216, - 48880, - 49760, - 49840, - 50336, - 50080, - 48752, - 49424, - 49792, - 50048, - 48944, - 49872, - 48944, - 49120, - 48880, - 50480, - 49664, - 50656, - 49680, - 49664, - 49536, - 0, - 0, - 0, - 0, - 0, + 47760, + 47632, + 47504, + 47680, + 48272, + 48032, + 47888, + 48656, + 47904, + 47536, + 49360, + 48112, + 47264, + 47568, + 48736, + 46544, + 47296, + 47648, + 47360, + 42832, + 41408, + 41408, + 41408, + 41408, + 41616, 0, 0, 0, @@ -486,14 +486,14 @@ 0 ], "stats": { - "ok": 382, + "ok": 476, "errors": 0, - "avg_ms": 624.3807886517751, - "min_ms": 191.1531309997372, - "max_ms": 1713.8781639987428, - "rps": 6.4, + "avg_ms": 500.27495581302554, + "min_ms": 178.0906159983715, + "max_ms": 1688.7883090021205, + "rps": 8.2, "p95_ms": 1400.0, - "p99_ms": 1500.0 + "p99_ms": 1600.0 }, "config": { "socket_max_con": 4, @@ -509,83 +509,83 @@ }, { "id": "high_mem_cap_001", - "idle": 47456, + "idle": 44321, "usage": [ - 0, - 45728, - 45536, - 45536, - 45536, - 45536, - 45536, - 45536, - 45536, - 45536, - 45536, - 47024, - 47584, - 47488, - 47584, - 47312, - 47488, - 47024, - 47584, - 46928, - 47584, - 47584, - 47312, - 47584, - 47584, - 47360, - 47584, - 47584, - 47312, - 47312, - 47584, - 47328, - 47488, - 47600, - 47024, - 47488, - 47312, - 47584, - 47328, - 47776, - 47584, - 47024, - 47488, - 47360, - 47024, - 47776, - 47488, - 47360, - 46928, - 47488, - 47488, - 47776, - 47360, - 47488, - 47488, - 47024, - 47488, - 46928, - 47584, - 47328, - 47584, - 47312, - 47488, - 47488, - 47568, - 47024, - 47792, - 47328, - 47776, - 47312, + 44496, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 44304, + 46288, + 46080, + 46144, + 46128, + 46352, + 46144, + 46816, + 46144, + 46768, + 46144, + 45584, + 46656, + 45968, + 46144, + 46144, + 46352, + 45968, + 46144, + 45968, + 46144, + 46352, + 45968, + 46096, + 46128, + 46144, + 46144, + 46240, + 46768, 46320, - 0, - 0, - 0, - 0, + 45584, + 46144, + 46144, + 46144, + 46640, + 46144, + 46240, + 46144, + 46144, + 45968, + 46080, + 46144, + 46320, + 46320, + 45968, + 46144, + 46768, + 46320, + 46144, + 46768, + 46320, + 45968, + 46144, + 46144, + 46128, + 46352, + 45968, + 46240, + 46320, + 46320, + 44848, + 44848, + 44848, + 44848, + 44848, 0, 0, 0, @@ -613,13 +613,13 @@ 0 ], "stats": { - "ok": 221, + "ok": 224, "errors": 0, - "avg_ms": 269.7235890633377, - "min_ms": 189.81274199904874, - "max_ms": 798.6247689987067, - "rps": 3.7, - "p95_ms": 470.0, + "avg_ms": 267.478794959808, + "min_ms": 192.08663400058867, + "max_ms": 514.4635800024844, + "rps": 3.9, + "p95_ms": 480.0, "p99_ms": 490.0 }, "config": { @@ -636,82 +636,82 @@ }, { "id": "high_mem_cap_002", - "idle": 55840, + "idle": 52705, "usage": [ - 0, - 54112, - 53920, - 53920, - 53920, - 53920, - 53920, - 53920, - 53920, - 53920, - 53920, + 52880, + 52688, + 52688, + 52688, + 52688, + 52688, + 52688, + 52688, + 52688, + 52688, + 52688, + 54672, + 56096, + 56096, + 59024, + 56656, + 55968, + 55856, + 56048, + 56352, + 59104, + 55792, + 55856, + 56240, + 56160, + 59072, + 56304, + 56144, + 56208, + 56384, + 55856, + 56208, + 56032, + 55616, + 55744, + 56352, + 55008, + 55680, + 56384, + 56640, + 56128, + 56160, + 56400, + 55984, + 56144, + 59200, + 56208, + 56416, + 55104, + 55792, + 56192, 55408, - 56880, - 56976, - 57920, - 57584, - 57712, - 57984, - 56928, - 57424, - 57168, - 57488, - 57424, - 58272, - 57360, - 57232, - 57712, - 57984, - 57200, - 57680, - 57680, - 57344, - 57984, - 57584, - 57584, - 57424, - 57360, - 57360, - 57584, - 57456, - 57680, - 58000, - 57424, - 56928, - 57408, - 57584, - 59232, - 58464, - 57136, - 57328, - 57488, - 60336, - 57904, - 57312, - 57424, - 57584, - 57328, - 57328, - 57024, - 57232, - 57024, - 57408, - 57584, - 57424, - 57872, - 56768, - 57424, - 57360, - 57312, - 57984, - 0, - 0, - 0, - 0, + 56144, + 56160, + 56032, + 56224, + 55680, + 56208, + 56416, + 56704, + 56208, + 56032, + 56208, + 56320, + 55904, + 56384, + 55568, + 56272, + 56032, + 54736, + 53312, + 53312, + 53312, + 53312, 0, 0, 0, @@ -740,14 +740,14 @@ 0 ], "stats": { - "ok": 405, + "ok": 472, "errors": 0, - "avg_ms": 294.6867814246942, - "min_ms": 153.9950160004082, - "max_ms": 661.1706010007765, - "rps": 6.9, - "p95_ms": 560.0, - "p99_ms": 610.0 + "avg_ms": 253.56180508482393, + "min_ms": 143.33964099932928, + "max_ms": 729.2082480016688, + "rps": 8.2, + "p95_ms": 540.0, + "p99_ms": 620.0 }, "config": { "socket_max_con": 2, @@ -763,81 +763,81 @@ }, { "id": "high_mem_cap_003", - "idle": 72608, + "idle": 69473, "usage": [ - 0, - 70880, - 70688, - 70688, - 70688, - 70688, - 70688, - 70688, - 70688, - 70688, - 70688, - 72528, - 76432, - 77120, - 77296, - 77472, - 78240, - 79936, - 77504, - 77056, - 77440, - 77744, + 69648, + 69456, + 69456, + 69456, + 69456, + 69456, + 69456, + 69456, + 69456, + 69456, + 69456, + 74224, + 76560, + 76096, + 76320, + 76176, + 76288, + 76528, + 76080, + 75712, + 77040, + 75776, + 76032, + 76208, + 75648, + 76128, + 79424, + 76800, + 75872, + 75504, + 76016, + 76720, + 75952, 76960, - 77360, - 80368, + 75328, + 76336, + 78608, + 75824, + 76032, + 76048, 76208, - 77488, - 77712, - 76928, - 78016, - 76672, - 77840, - 77312, - 77264, - 78288, - 76752, - 77152, - 77312, - 77984, - 78336, - 77392, - 77872, - 76992, - 77888, + 76640, + 76224, + 75840, + 75424, + 75008, + 76032, + 76832, + 75984, + 74624, + 76320, + 77024, + 76272, + 79168, + 76528, + 76000, + 76736, + 76144, + 75136, + 75808, + 76272, 76896, - 77648, - 78096, - 77248, - 77424, - 77232, - 78048, - 77056, - 77584, - 76976, - 77184, - 77584, - 77328, - 77328, - 78096, - 77296, - 77424, - 76848, - 77840, - 77584, - 77408, - 77232, - 77184, - 77888, - 77696, - 0, - 0, - 0, - 0, + 75264, + 75712, + 77280, + 76512, + 75536, + 75632, + 70080, + 70080, + 70080, + 70080, + 70080, 0, 0, 0, @@ -867,14 +867,14 @@ 0 ], "stats": { - "ok": 497, + "ok": 563, "errors": 0, - "avg_ms": 480.02186370017284, - "min_ms": 180.53324699940276, - "max_ms": 1276.8714900012128, - "rps": 8.5, - "p95_ms": 1000.0, - "p99_ms": 1200.0 + "avg_ms": 424.7626154209365, + "min_ms": 169.75321200152393, + "max_ms": 1259.8881329977303, + "rps": 9.3, + "p95_ms": 950.0, + "p99_ms": 1100.0 }, "config": { "socket_max_con": 4, @@ -890,83 +890,83 @@ }, { "id": "multipart_001", - "idle": 44960, + "idle": 44481, "usage": [ - 0, - 43056, - 42864, - 42864, - 42864, - 42864, - 42864, - 42864, - 42864, - 42864, - 42864, - 45808, - 45040, - 46112, - 44880, - 46240, - 46320, - 45312, - 46320, - 45904, - 45024, - 46448, - 45856, - 46448, - 45040, - 46112, - 46064, - 46112, - 44496, - 46320, - 45040, - 45040, - 46032, - 46112, - 46320, - 46112, - 45968, - 45024, - 46240, - 45424, - 45024, - 46192, - 45888, - 46144, - 45424, - 45040, - 45040, - 45088, - 46112, - 46288, - 44880, - 46320, - 46112, - 44816, - 44880, - 45040, - 46080, - 45440, - 44816, - 44816, - 45040, - 46448, - 45424, - 44592, - 44816, - 45424, - 46112, - 46112, + 44656, + 44464, + 44464, + 44464, + 44464, + 44464, + 44464, + 44464, + 44464, + 44464, + 44464, + 47568, + 46224, + 47632, 46288, - 46032, - 46064, - 0, - 0, - 0, - 0, + 47344, + 47552, + 47808, + 46336, + 47776, + 46496, + 46336, + 46224, + 46224, + 47600, + 46336, + 46400, + 46224, + 47728, + 47552, + 46272, + 46336, + 47600, + 47584, + 47552, + 47808, + 46832, + 46336, + 47552, + 46336, + 47552, + 46688, + 46336, + 47808, + 46240, + 46336, + 47600, + 47600, + 46336, + 47680, + 47808, + 47520, + 47728, + 47808, + 45840, + 47808, + 47520, + 46992, + 46336, + 46336, + 46336, + 47344, + 47600, + 46336, + 46336, + 46272, + 47424, + 46336, + 47520, + 46272, + 46832, + 45008, + 45008, + 45008, + 45008, 0, 0, 0, @@ -994,14 +994,14 @@ 0 ], "stats": { - "ok": 77, + "ok": 75, "errors": 0, - "avg_ms": 774.4412679612061, - "min_ms": 702.702506998321, - "max_ms": 930.4371309990529, - "rps": 1.2, - "p95_ms": 880.0, - "p99_ms": 930.0 + "avg_ms": 799.4388450400826, + "min_ms": 698.1828659991152, + "max_ms": 1014.05951599736, + "rps": 1.3, + "p95_ms": 930.0, + "p99_ms": 1000.0 }, "config": { "socket_max_con": 1, @@ -1017,83 +1017,83 @@ }, { "id": "multipart_002", - "idle": 46176, + "idle": 45697, "usage": [ - 0, - 44272, - 44080, - 44080, - 44080, - 44080, - 44080, - 44080, - 44080, - 44080, - 44080, - 47488, - 48080, - 49312, - 48880, - 49920, - 48256, - 50448, - 50080, - 50144, - 49216, - 50080, - 49328, - 50240, - 48912, + 45872, + 45680, + 45680, + 45680, + 45680, + 45680, + 45680, + 45680, + 45680, + 45680, + 45680, + 51488, + 50640, + 51728, + 50432, + 51728, + 50544, + 50336, + 50384, + 50592, + 48944, + 50224, + 50512, + 51008, + 50384, 49040, - 49824, - 49520, - 47792, - 48992, - 47856, - 49264, - 50208, - 48880, - 49008, - 48912, - 49808, - 50272, - 49008, - 49056, - 50416, - 50400, + 49200, + 48976, + 50432, + 50224, + 50288, + 50768, + 51616, + 51488, + 50432, + 50528, + 50352, + 50624, + 52144, + 50736, + 51760, + 51824, + 49552, + 50160, + 50592, + 51328, + 50432, + 51504, + 49088, + 51712, + 50928, + 50032, + 50432, 50320, - 50080, - 49936, - 49808, - 50192, - 48368, + 51568, + 51952, + 51824, + 50560, + 51056, + 50656, + 49984, 50320, - 48352, - 47520, 50416, - 50192, - 49824, - 49168, - 49408, - 50192, - 49760, - 50080, - 49008, - 49280, - 49104, - 49008, - 50288, - 49376, - 49184, - 49248, - 49792, - 50656, - 48736, - 47344, - 0, - 0, - 0, - 0, + 50144, + 51488, + 52128, + 50688, + 51408, + 50352, + 51968, + 48016, + 46272, + 46272, + 46272, + 46272, 0, 0, 0, @@ -1121,14 +1121,14 @@ 0 ], "stats": { - "ok": 122, + "ok": 120, "errors": 0, - "avg_ms": 975.6486063114771, - "min_ms": 700.6420840007195, - "max_ms": 1376.7830739998317, + "avg_ms": 986.7571147750823, + "min_ms": 730.6671469996218, + "max_ms": 1389.4753220010898, "rps": 2.1, - "p95_ms": 1200.0, - "p99_ms": 1300.0 + "p95_ms": 1300.0, + "p99_ms": 1400.0 }, "config": { "socket_max_con": 2, @@ -1144,83 +1144,83 @@ }, { "id": "multipart_003", - "idle": 48608, + "idle": 48129, "usage": [ - 0, - 46704, - 46512, - 46512, - 46512, - 46512, - 46512, - 46512, - 46512, - 46512, - 46512, - 57760, - 57328, - 57344, - 54720, - 55680, - 55552, - 56016, - 57552, - 56912, - 56608, - 55648, - 55504, - 55776, - 57376, - 57984, - 55600, - 55648, - 56656, + 48304, + 48112, + 48112, + 48112, + 48112, + 48112, + 48112, + 48112, + 48112, + 48112, + 48112, + 57568, + 58128, + 58176, + 56832, + 59040, + 58496, + 59440, + 59216, + 59632, + 58208, + 58256, + 58512, + 60016, + 57888, + 58944, + 56480, + 57888, + 59120, + 59984, + 58560, + 56832, + 57728, + 60048, + 57088, + 58240, + 56704, + 58432, + 57744, + 57520, + 59184, + 59952, + 59248, + 58624, + 59184, + 58368, + 59856, + 59440, + 58368, 56576, - 57312, - 54656, - 54128, - 57584, - 58640, - 55856, - 57760, - 57168, - 57376, - 58048, - 57456, - 57968, - 55888, - 55792, - 54832, - 55552, - 57504, + 56944, 58032, - 56928, + 59536, 58192, - 56624, - 54848, - 56672, - 55184, - 55936, - 57040, - 57312, - 55712, - 58048, - 56048, - 56464, + 57792, + 55392, + 59728, + 56944, + 58832, + 55040, + 56832, + 58912, 58512, - 58464, - 58416, - 56256, - 55840, - 56912, - 57248, - 58176, - 58096, - 0, - 0, - 0, - 0, - 0, + 59552, + 57552, + 57488, + 58112, + 57024, + 59552, + 55376, + 50448, + 50448, + 50448, + 50448, + 48896, 0, 0, 0, @@ -1248,13 +1248,13 @@ 0 ], "stats": { - "ok": 137, + "ok": 133, "errors": 0, - "avg_ms": 1725.360749226353, - "min_ms": 1196.5070849983022, - "max_ms": 2505.5717830000503, - "rps": 2.3, - "p95_ms": 2200.0, + "avg_ms": 1784.349806571429, + "min_ms": 1228.7716770006227, + "max_ms": 2479.0038489991275, + "rps": 2.2, + "p95_ms": 2300.0, "p99_ms": 2400.0 }, "config": { @@ -1271,81 +1271,81 @@ }, { "id": "files_api_001", - "idle": 47840, + "idle": 44419, "usage": [ - 0, + 44592, + 44400, + 44400, + 44400, + 44400, + 44400, + 44400, + 44400, + 44400, + 44400, + 46528, + 47808, + 47808, + 47760, + 47808, + 47808, + 47808, + 47760, + 46816, + 47808, + 45792, + 47808, + 47808, + 47808, + 46432, + 47808, 46064, + 47776, + 47808, + 47808, + 47552, + 46192, + 47808, 46080, - 46080, - 46080, - 46080, - 46080, - 46080, - 46080, - 46080, - 48736, - 48688, - 47984, - 48592, - 48240, - 47696, - 47696, - 47728, - 47984, - 48752, - 48752, - 48688, - 48736, - 48736, - 48704, - 48000, - 48624, - 48688, - 48704, - 48656, - 48688, - 48688, - 48688, - 48688, - 48688, - 48688, - 48688, - 48896, - 48688, - 48736, - 48736, - 47696, - 47984, - 48752, - 48752, - 48688, - 48704, - 48688, - 48688, - 48688, - 48688, - 48288, - 48688, - 48736, - 47712, - 48688, - 48656, - 48624, - 48624, - 48624, - 48688, - 48688, - 48688, - 48688, - 48688, - 48688, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 47936, + 46432, + 47760, + 46816, + 47808, + 46224, + 47808, + 46576, + 46768, + 47808, + 46384, + 47792, + 46432, + 47856, + 47808, + 47808, + 47760, + 46816, + 47808, + 46192, + 47808, + 46352, + 47808, + 46064, + 47776, + 47808, + 47808, + 47760, + 46816, + 47600, + 47808, + 47808, + 46880, + 47808, + 46144, + 44944, + 44944, + 44944, + 44944, 0, 0, 0, @@ -1375,14 +1375,14 @@ 0 ], "stats": { - "ok": 81, + "ok": 60, "errors": 0, - "avg_ms": 728.8924180865712, - "min_ms": 254.9681460004649, - "max_ms": 1103.9164310022898, - "rps": 1.3, - "p95_ms": 1000.0, - "p99_ms": 1100.0 + "avg_ms": 983.9472480999272, + "min_ms": 238.40245000246796, + "max_ms": 1833.0180100019788, + "rps": 1.1, + "p95_ms": 1700.0, + "p99_ms": 1800.0 }, "config": { "socket_max_con": 1, @@ -1398,80 +1398,80 @@ }, { "id": "files_api_002", - "idle": 49056, + "idle": 45635, "usage": [ - 0, - 47280, - 47296, - 47296, - 47296, - 47296, - 47296, - 47296, - 47296, - 47296, - 50624, - 51856, - 51808, + 45808, + 45616, + 45616, + 45616, + 45616, + 45616, + 45616, + 45616, + 45616, + 45616, + 46352, + 50720, + 51968, + 52096, + 50816, + 52048, + 52048, 51024, - 52336, - 52304, - 52336, - 51936, - 51312, - 52336, - 52336, - 51008, + 51248, + 50672, + 52128, + 51152, + 49840, + 52128, + 51152, + 51088, + 50016, 51056, - 51008, - 51632, 52176, - 51792, - 51568, - 51824, - 51056, - 51008, - 50560, - 51552, - 51312, - 51904, - 50928, - 52336, - 51552, - 51632, - 50928, - 51872, - 51360, - 51360, - 51312, - 51184, - 51136, - 50992, - 51504, - 51904, - 50928, - 52560, - 52208, - 50992, - 52288, - 51360, - 51360, - 51568, + 50432, + 50976, + 50832, + 50624, + 52144, + 50032, + 50416, + 52144, 52016, - 52208, - 51296, - 51408, - 51408, + 50816, + 51872, + 51840, + 48928, + 50720, + 49408, + 51120, + 52176, 50640, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 49056, + 52048, + 52016, + 48576, + 51248, + 51840, + 51984, + 49712, + 51792, + 51984, + 49984, + 52096, + 50752, + 50432, + 52144, + 50416, + 51792, + 50592, + 51120, + 50304, + 46160, + 46160, + 46160, + 46160, + 46160, 0, 0, 0, @@ -1502,14 +1502,14 @@ 0 ], "stats": { - "ok": 103, + "ok": 75, "errors": 0, - "avg_ms": 1151.4038323789684, - "min_ms": 257.31607399939094, - "max_ms": 1987.013787998876, - "rps": 1.7, - "p95_ms": 1900.0, - "p99_ms": 1900.0 + "avg_ms": 1576.5625740401447, + "min_ms": 343.2711690002179, + "max_ms": 3220.646994999697, + "rps": 1.1, + "p95_ms": 3100.0, + "p99_ms": 3200.0 }, "config": { "socket_max_con": 2, @@ -1525,77 +1525,77 @@ }, { "id": "files_api_003", - "idle": 51488, + "idle": 48067, "usage": [ - 0, - 49712, - 49728, - 49728, - 49728, - 49728, - 49728, - 49728, - 49728, - 49728, - 56352, - 57728, - 56912, - 57904, - 56624, - 58016, - 57792, - 56736, - 58560, - 56560, - 59680, - 58688, - 56048, - 56400, - 56240, - 56464, - 55472, + 48240, + 48048, + 48048, + 48048, + 48048, + 48048, + 48048, + 48048, + 48048, + 48048, + 53344, + 57840, + 58736, + 59120, + 60496, + 58368, + 59216, + 58032, + 56768, + 59392, + 58096, + 58992, + 58832, + 58384, + 60240, + 60272, + 58848, + 58080, + 58544, + 58800, + 60400, + 59440, + 59008, + 58768, 57936, - 57328, - 58000, - 56112, - 57104, - 56256, - 58912, - 57152, + 58544, + 59328, + 59568, + 59808, + 57952, + 58528, + 59168, + 60816, + 58960, + 57088, + 58816, + 58368, + 60608, + 59216, + 57344, + 58496, + 57504, + 58880, + 59456, + 57120, + 56752, + 55744, 56704, - 56720, - 58176, - 58624, - 56864, - 56944, - 56224, - 58096, - 58064, - 56064, - 56848, - 58176, - 58608, - 56096, - 58704, - 56016, - 59040, - 58752, - 56048, - 56384, - 57568, - 57760, - 59152, - 58192, - 56448, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 60240, + 58816, + 60384, + 59760, + 60160, + 57920, + 50000, + 48624, + 48624, + 48624, + 48624, 0, 0, 0, @@ -1629,14 +1629,14 @@ 0 ], "stats": { - "ok": 109, + "ok": 64, "errors": 0, - "avg_ms": 2149.179494807242, - "min_ms": 670.4549899986887, - "max_ms": 3807.874025998899, - "rps": 1.9, - "p95_ms": 3600.0, - "p99_ms": 3800.0 + "avg_ms": 3581.0664022968695, + "min_ms": 728.147297999385, + "max_ms": 6373.7924699998985, + "rps": 1.1, + "p95_ms": 6200.0, + "p99_ms": 6400.0 }, "config": { "socket_max_con": 4, @@ -1652,84 +1652,84 @@ }, { "id": "tls_001", - "idle": 42624, + "idle": 39217, "usage": [ - 0, - 40624, - 40432, - 40432, - 40432, - 40432, - 40432, - 40432, - 40432, - 40432, - 40432, - 42528, - 42432, - 42480, - 42096, - 42528, - 42528, - 43056, - 42192, - 42672, - 43040, - 42752, - 42752, - 42752, - 42528, - 43040, - 43040, - 42752, - 42528, - 42656, - 42496, - 42752, - 42752, - 42656, - 42752, - 42480, - 42192, - 42752, - 42496, - 42528, - 43056, - 42656, - 43056, - 43056, - 42752, - 42752, - 42656, - 42192, - 43056, - 43056, - 42480, - 42496, - 42432, - 42752, - 42752, - 43056, - 42480, - 42656, - 43056, - 42752, - 42656, - 42496, - 42928, - 42656, - 42752, - 42096, - 42656, - 42752, - 42528, - 43056, - 42656, - 0, - 0, - 0, - 0, - 0, + 39392, + 39200, + 39200, + 39200, + 39200, + 39200, + 39200, + 39200, + 39200, + 39200, + 39200, + 41312, + 41984, + 41536, + 40896, + 41856, + 41520, + 41536, + 40800, + 41360, + 41360, + 41536, + 40800, + 41536, + 41184, + 41536, + 41360, + 41184, + 41360, + 41360, + 41536, + 40800, + 41360, + 41856, + 41536, + 40800, + 41536, + 40896, + 41536, + 41184, + 41360, + 41184, + 41568, + 40896, + 41360, + 41360, + 41856, + 41504, + 41536, + 40896, + 41360, + 41184, + 41360, + 41872, + 41360, + 41856, + 41856, + 41456, + 41536, + 40800, + 41536, + 40896, + 41536, + 41360, + 41856, + 41184, + 41536, + 41360, + 41360, + 41856, + 40032, + 41072, + 40032, + 40032, + 40032, + 41344, 0, 0, 0, @@ -1756,14 +1756,14 @@ 0 ], "stats": { - "ok": 144, + "ok": 186, "errors": 0, - "avg_ms": 413.5269441458149, - "min_ms": 201.92779400167638, - "max_ms": 1264.3235409996123, - "rps": 2.5, - "p95_ms": 670.0, - "p99_ms": 840.0 + "avg_ms": 322.11810074187923, + "min_ms": 192.91786899702856, + "max_ms": 1125.0912880022952, + "rps": 3.1, + "p95_ms": 690.0, + "p99_ms": 760.0 }, "config": { "socket_max_con": 1, @@ -1779,83 +1779,83 @@ }, { "id": "tls_002", - "idle": 43840, + "idle": 40433, "usage": [ - 0, - 41840, - 41648, - 41648, - 41648, - 41648, - 41648, - 41648, - 41648, - 41648, - 41648, - 43744, - 45472, - 45600, - 46544, - 46160, - 46640, - 45392, - 46560, - 46240, - 45280, - 45952, - 45856, - 45952, - 45856, - 46160, - 46032, - 46320, - 45360, - 45120, - 45456, - 45888, - 46544, - 46416, - 46144, - 45856, - 45360, - 45856, - 46256, - 46256, - 46144, - 46608, - 46256, - 46256, - 45984, - 45856, - 46560, - 46368, - 46544, - 45984, - 45888, - 46144, - 45728, - 46144, - 45856, - 45696, - 45952, - 45856, - 46192, - 45856, - 46256, - 45200, - 46256, - 45408, - 46544, - 46544, - 46256, - 45984, - 45856, - 46000, - 44288, - 0, - 0, - 0, - 0, + 40608, + 40416, + 40416, + 40416, + 40416, + 40416, + 40416, + 40416, + 40416, + 40416, + 40416, + 43200, + 44592, + 43888, + 44128, + 44736, + 44848, + 44384, + 44352, + 44736, + 44352, + 43232, + 45024, + 44352, + 44528, + 44736, + 44528, + 45344, + 44976, + 45152, + 44736, + 44416, + 45328, + 44800, + 44448, + 44768, + 44336, + 44560, + 45152, + 44544, + 45040, + 44416, + 45440, + 44976, + 45008, + 45424, + 44848, + 45040, + 44448, + 44256, + 45024, + 44160, + 44528, + 45296, + 44384, + 44672, + 45424, + 43888, + 44528, + 44224, + 44352, + 44688, + 45376, + 44560, + 44848, + 44736, + 45184, + 45040, + 45040, + 41568, + 41568, + 41568, + 41568, + 41568, + 42848, 0, 0, 0, @@ -1883,14 +1883,14 @@ 0 ], "stats": { - "ok": 269, + "ok": 335, "errors": 0, - "avg_ms": 444.8922698736666, - "min_ms": 176.24865000107093, - "max_ms": 1274.587370997324, - "rps": 4.7, - "p95_ms": 890.0, - "p99_ms": 1100.0 + "avg_ms": 354.8962133133514, + "min_ms": 157.35411000059685, + "max_ms": 1551.643017999595, + "rps": 5.3, + "p95_ms": 840.0, + "p99_ms": 990.0 }, "config": { "socket_max_con": 2, @@ -1906,82 +1906,82 @@ }, { "id": "tls_003", - "idle": 46272, + "idle": 42865, "usage": [ - 0, - 44272, - 44080, - 44080, - 44080, - 44080, - 44080, - 44080, - 44080, - 44080, - 44080, - 46176, - 51232, - 52400, - 53072, - 52848, - 52288, + 43040, + 42848, + 42848, + 42848, + 42848, + 42848, + 42848, + 42848, + 42848, + 42848, + 42848, + 48384, + 49136, + 51376, + 52640, + 50944, + 50944, + 50608, + 50704, + 50320, + 50240, 52192, - 52768, - 52752, - 51904, - 52384, - 53344, - 52336, - 52352, - 51824, - 52912, - 52528, - 52256, - 53216, - 52448, - 52384, - 52320, - 51680, - 52560, - 51680, - 53264, - 52912, - 52800, - 52720, - 52672, - 52208, - 52128, - 52608, - 52416, - 51232, - 53216, - 52912, - 51232, - 52608, - 51520, - 52304, - 52320, - 52672, - 52960, - 53520, - 51648, - 53632, - 53120, + 50512, + 50464, + 50096, + 51136, + 51120, + 50928, + 50624, + 50880, + 52064, + 51952, + 51936, + 50720, + 50688, 51440, - 52512, - 52272, - 51904, - 52432, - 52736, - 52384, - 52224, - 52304, - 52592, + 52112, + 51536, + 50896, + 51712, + 50528, + 51568, + 51408, + 50928, + 51392, + 52192, + 50176, + 50672, + 51456, + 52000, + 51376, + 50352, + 51760, + 50304, + 51200, + 50816, + 50160, + 50528, + 50336, + 51696, + 51584, + 49808, 51024, - 0, - 0, - 0, - 0, + 50944, + 52096, + 50448, + 51664, + 51712, + 45200, + 45200, + 45200, + 45200, + 45200, + 44800, 0, 0, 0, @@ -2010,14 +2010,14 @@ 0 ], "stats": { - "ok": 331, + "ok": 410, "errors": 0, - "avg_ms": 719.9920886313579, - "min_ms": 219.18677799840225, - "max_ms": 2874.1862599999877, - "rps": 5.9, + "avg_ms": 578.689018709737, + "min_ms": 193.96863000292797, + "max_ms": 2641.200353999011, + "rps": 7.1, "p95_ms": 1700.0, - "p99_ms": 2300.0 + "p99_ms": 2100.0 }, "config": { "socket_max_con": 4, diff --git a/docs/dimensioning/esp32_s3/multipart_001.png b/docs/dimensioning/esp32_s3/multipart_001.png index e3cf11c..929d8c7 100644 Binary files a/docs/dimensioning/esp32_s3/multipart_001.png and b/docs/dimensioning/esp32_s3/multipart_001.png differ diff --git a/docs/dimensioning/esp32_s3/multipart_002.png b/docs/dimensioning/esp32_s3/multipart_002.png index 2a9d575..3d519d2 100644 Binary files a/docs/dimensioning/esp32_s3/multipart_002.png and b/docs/dimensioning/esp32_s3/multipart_002.png differ diff --git a/docs/dimensioning/esp32_s3/multipart_003.png b/docs/dimensioning/esp32_s3/multipart_003.png index 7f3ecd0..1ede32e 100644 Binary files a/docs/dimensioning/esp32_s3/multipart_003.png and b/docs/dimensioning/esp32_s3/multipart_003.png differ diff --git a/docs/dimensioning/esp32_s3/tls_001.png b/docs/dimensioning/esp32_s3/tls_001.png index ccc32cb..6923840 100644 Binary files a/docs/dimensioning/esp32_s3/tls_001.png and b/docs/dimensioning/esp32_s3/tls_001.png differ diff --git a/docs/dimensioning/esp32_s3/tls_002.png b/docs/dimensioning/esp32_s3/tls_002.png index befa6d0..2141fbf 100644 Binary files a/docs/dimensioning/esp32_s3/tls_002.png and b/docs/dimensioning/esp32_s3/tls_002.png differ diff --git a/docs/dimensioning/esp32_s3/tls_003.png b/docs/dimensioning/esp32_s3/tls_003.png index 35fb1f7..e764690 100644 Binary files a/docs/dimensioning/esp32_s3/tls_003.png and b/docs/dimensioning/esp32_s3/tls_003.png differ diff --git a/docs/dimensioning/http_dimensioning.md b/docs/dimensioning/http_dimensioning.md index d086dbf..64c5ab5 100644 --- a/docs/dimensioning/http_dimensioning.md +++ b/docs/dimensioning/http_dimensioning.md @@ -28,21 +28,21 @@ with no active network traffic. | id | http_mem_cap | http_multipart | socket_max_con | tls | footprint_bytes | | --- | --- | --- | --- | --- | --- | -| base | 0.05 | False | 1 | False | 40320 | -| low_mem_cap_001 | 0.0127 | False | 1 | False | 40320 | -| low_mem_cap_002 | 0.0253 | False | 2 | False | 41536 | -| low_mem_cap_003 | 0.0505 | False | 4 | False | 43968 | -| high_mem_cap_001 | 0.0568 | False | 1 | False | 47488 | -| high_mem_cap_002 | 0.114 | False | 2 | False | 55872 | -| high_mem_cap_003 | 0.228 | False | 4 | False | 72640 | -| multipart_001 | 0.0127 | True | 1 | False | 45040 | -| multipart_002 | 0.0253 | True | 2 | False | 46256 | -| multipart_003 | 0.0505 | True | 4 | False | 48688 | -| files_api_001 | 0.0127 | False | 1 | False | 47872 | -| files_api_002 | 0.0253 | False | 2 | False | 49088 | -| files_api_003 | 0.0505 | False | 4 | False | 51520 | -| tls_001 | 0.0127 | False | 1 | True | 43040 | -| tls_002 | 0.0253 | False | 2 | True | 44256 | +| base | 0.05 | False | 1 | False | 37168 | +| low_mem_cap_001 | 0.0127 | False | 1 | False | 37168 | +| low_mem_cap_002 | 0.0253 | False | 2 | False | 38384 | +| low_mem_cap_003 | 0.0505 | False | 4 | False | 40816 | +| high_mem_cap_001 | 0.0568 | False | 1 | False | 44336 | +| high_mem_cap_002 | 0.114 | False | 2 | False | 52720 | +| high_mem_cap_003 | 0.228 | False | 4 | False | 69488 | +| multipart_001 | 0.0127 | True | 1 | False | 44400 | +| multipart_002 | 0.0253 | True | 2 | False | 45616 | +| multipart_003 | 0.0505 | True | 4 | False | 48048 | +| files_api_001 | 0.0127 | False | 1 | False | 44512 | +| files_api_002 | 0.0253 | False | 2 | False | 45728 | +| files_api_003 | 0.0505 | False | 4 | False | 48163 | +| tls_001 | 0.0127 | False | 1 | True | 39296 | +| tls_002 | 0.0253 | False | 2 | True | 40512 | ## Heap usage under network traffic ![image info](./esp32_c3/base.png) @@ -55,22 +55,22 @@ with no active network traffic. ## Idle heap usage | id | http_mem_cap | http_multipart | socket_max_con | tls | footprint_bytes | | --- | --- | --- | --- | --- | --- | -| base | 0.05 | False | 1 | False | 47456 | -| low_mem_cap_001 | 0.000247 | False | 1 | False | 40288 | -| low_mem_cap_002 | 0.000493 | False | 2 | False | 41504 | -| low_mem_cap_003 | 0.000985 | False | 4 | False | 43936 | -| high_mem_cap_001 | 0.00111 | False | 1 | False | 47456 | -| high_mem_cap_002 | 0.00222 | False | 2 | False | 55840 | -| high_mem_cap_003 | 0.00443 | False | 4 | False | 72608 | -| multipart_001 | 0.000247 | True | 1 | False | 44848 | -| multipart_002 | 0.000493 | True | 2 | False | 46064 | -| multipart_003 | 0.000985 | True | 4 | False | 48496 | -| files_api_001 | 0.000247 | False | 1 | False | 47840 | -| files_api_002 | 0.000493 | False | 2 | False | 49056 | -| files_api_003 | 0.000985 | False | 4 | False | 51488 | -| tls_001 | 0.000247 | False | 1 | True | 42624 | -| tls_002 | 0.000493 | False | 2 | True | 43840 | -| tls_003 | 0.000985 | False | 4 | True | 46272 | +| base | 0.05 | False | 1 | False | 44351 | +| low_mem_cap_001 | 0.000247 | False | 1 | False | 37183 | +| low_mem_cap_002 | 0.000493 | False | 2 | False | 38369 | +| low_mem_cap_003 | 0.000985 | False | 4 | False | 40801 | +| high_mem_cap_001 | 0.00111 | False | 1 | False | 44321 | +| high_mem_cap_002 | 0.00222 | False | 2 | False | 52705 | +| high_mem_cap_003 | 0.00443 | False | 4 | False | 69473 | +| multipart_001 | 0.000247 | True | 1 | False | 44481 | +| multipart_002 | 0.000493 | True | 2 | False | 45697 | +| multipart_003 | 0.000985 | True | 4 | False | 48129 | +| files_api_001 | 0.000247 | False | 1 | False | 44419 | +| files_api_002 | 0.000493 | False | 2 | False | 45635 | +| files_api_003 | 0.000985 | False | 4 | False | 48067 | +| tls_001 | 0.000247 | False | 1 | True | 39217 | +| tls_002 | 0.000493 | False | 2 | True | 40433 | +| tls_003 | 0.000985 | False | 4 | True | 42865 | ## Heap usage under network traffic ![image info](./esp32_s3/base.png) \ No newline at end of file diff --git a/tests/system/http_dimensioning/app_base.py b/tests/system/http_dimensioning/app_base.py new file mode 100644 index 0000000..b8feb4c --- /dev/null +++ b/tests/system/http_dimensioning/app_base.py @@ -0,0 +1,11 @@ +from pyrobusta.protocol.http import HttpEngine + + +def chunk_handler(_, chunk): + if not chunk: # Received terminating chunk/part + return "text/plain", "OK" + pass # process chunk data as needed + + +def load(): + HttpEngine.register("/test/stream", chunk_handler, "POST") diff --git a/tests/system/http_dimensioning/app_multipart.py b/tests/system/http_dimensioning/app_multipart.py new file mode 100644 index 0000000..65859cb --- /dev/null +++ b/tests/system/http_dimensioning/app_multipart.py @@ -0,0 +1,34 @@ +from pyrobusta.protocol.http import HttpEngine + + +def multipart_response(num_responses, part_size): + i = 0 + + def response_generator(): + nonlocal i + i += 1 + if i > num_responses: + return None + return "text/plain", b"X" * part_size + + return response_generator + + +def multipart_producer(http_ctx, _): + part_count = int(http_ctx.headers.get("x-part-count", 1)) + part_size = int(http_ctx.headers.get("x-part-size", 1024)) + return "multipart/form-data", multipart_response(part_count, part_size) + + +def multipart_handler(http_ctx, _): + if ( + http_ctx.headers.get("content-type", "").startswith("multipart/form-data") + and http_ctx.mp_is_last + ): + return "text/plain", "OK" + pass # process part data as needed + + +def load(): + HttpEngine.register("/test/multipart", multipart_producer, "GET") + HttpEngine.register("/test/multipart", multipart_handler, "POST") diff --git a/tests/system/http_dimensioning/boot.py b/tests/system/http_dimensioning/boot.py index 749efcf..e5458e9 100644 --- a/tests/system/http_dimensioning/boot.py +++ b/tests/system/http_dimensioning/boot.py @@ -13,66 +13,37 @@ MEM_TIME_SERIES = [0] * TS_DURATION -@HttpEngine.route("/mem/current", "GET") -def current_usage(*_): - collect() - return "text/plain", str(mem_alloc()) - - -@HttpEngine.route("/mem/time-series", "GET") +@HttpEngine.route("/heap/time-series", "GET") def time_series(*_): return "application/json", MEM_TIME_SERIES -@HttpEngine.route("/test/stream", "POST") -def chunked_handler(http_ctx, chunk_or_part): - if ( - http_ctx.headers.get("content-type", "").startswith("multipart/form-data") - and http_ctx.mp_is_last - ): - return "text/plain", "OK" - elif not chunk_or_part: # Received terminating chunk/part - return "text/plain", "OK" - pass # process chunk/part data as needed - - async def mem_usage(): i = 0 collect() while True: - i = (i + 1) % TS_DURATION collect() MEM_TIME_SERIES[i] = mem_alloc() await asyncio.sleep(1) + i = (i + 1) % TS_DURATION async def main(): server = http_server.HttpServer() connected = wifi.initialize() if connected and not machine.reset_cause() == machine.SOFT_RESET: - if get_config(CONF_HTTP_MULTIPART): - - def multipart_response(num_responses, part_size): - i = 0 + import app_base - def response_generator(): - nonlocal i - i += 1 - if i > num_responses: - return None - return "text/plain", b"X" * part_size + app_base.load() - return response_generator - - def multipart_handler(http_ctx, _): - part_count = int(http_ctx.headers.get("x-part-count", 1)) - part_size = int(http_ctx.headers.get("x-part-size", 1024)) - return "multipart/form-data", multipart_response(part_count, part_size) + if get_config(CONF_HTTP_MULTIPART): + import app_multipart - HttpEngine.register("/test/multipart", multipart_handler, "GET") + app_multipart.load() asyncio.create_task(server.start_socket_server()) asyncio.create_task(mem_usage()) + while True: await asyncio.sleep(1) diff --git a/tests/system/http_dimensioning/http_user.py b/tests/system/http_dimensioning/http_user.py index 0790069..7dd4776 100644 --- a/tests/system/http_dimensioning/http_user.py +++ b/tests/system/http_dimensioning/http_user.py @@ -14,7 +14,7 @@ class DefaultUser(HttpUser): def on_start(self): self.client.verify = TLS_VERIFY - @task(2) + @task(4) def get_index(self): response = self.client.get( "/index.html", @@ -26,18 +26,6 @@ def get_index(self): response.elapsed.total_seconds(), ) - @task(2) - def get_docs(self): - response = self.client.get( - "/examples.html", - name="/examples.html", - ) - print( - self.client.base_url + "/examples.html", - response.status_code, - response.elapsed.total_seconds(), - ) - @task(1) def post_chunked(self): """ @@ -98,7 +86,7 @@ def get_multipart(self): @task(1) def post_multipart(self): """ - Use the /test/stream route to test multipart request handling, + Use the /test/multipart route to test multipart request handling, sending multipart requests with multiple parts of specified size. """ part_count = 10 @@ -115,14 +103,15 @@ def post_multipart(self): multipart_data += b"--boundary--\r\n" response = self.client.post( - "/test/stream", + "/test/multipart", data=multipart_data, headers={"Content-Type": "multipart/form-data; boundary=boundary"}, - name="/test/stream", + name="/test/multipart", ) print( self.client.base_url - + "/test/stream (multipart; parts=%d, size=%d)" % (part_count, part_size), + + "/test/multipart (multipart; parts=%d, size=%d)" + % (part_count, part_size), response.status_code, response.elapsed.total_seconds(), ) diff --git a/tests/system/http_dimensioning/test.py b/tests/system/http_dimensioning/test.py old mode 100644 new mode 100755 index ae2acb0..0ce1bd2 --- a/tests/system/http_dimensioning/test.py +++ b/tests/system/http_dimensioning/test.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 """ This test performs load tests while dimensioning the HTTP server with different configurations, measuring the resulting heap usage @@ -227,21 +228,6 @@ def validate_device_ip(device_ip): sys.exit(1) -def measure_footprint(config, device_ip): - proto = "https" if config["tls"] == True else "http" - port = 4443 if config["tls"] == True else 8080 - try: - usage = requests.get( - f"{proto}://{device_ip}:{port}/mem/current", - verify=False, - headers={"Connection": "close"}, - ).text - print(f"Measured: {usage}") - except: - return None - return int(usage) - - # ------------ # Test methods # ------------ @@ -296,8 +282,9 @@ def load_test(config, device_ip): } try: + sleep(5) usage = requests.get( - f"{host}/mem/time-series", + f"{host}/heap/time-series", verify=False, timeout=5, headers={"Connection": "close"}, @@ -306,9 +293,17 @@ def load_test(config, device_ip): print(f"Measured: {usage}") except Exception as e: print(f"WARNING - exception: {e}") - return [], stats + return 0, [], stats + + idle_threshold = usage[0] * 0.01 + idle_last_idx = 0 + for i in range(len(usage)): + idle_last_idx = i + if i > 0 and usage[i] - usage[i - 1] > idle_threshold: + break + idle = round(sum(usage[:idle_last_idx]) / (idle_last_idx)) - return usage, stats + return idle, usage, stats def test_config_delta(device_name, device_ip, base_config, config_delta={}): @@ -327,8 +322,7 @@ def test_config_delta(device_name, device_ip, base_config, config_delta={}): pass apply_mpremote_config(target_config, device_name) - idle = measure_footprint(target_config, device_ip) - usage, stats = load_test(target_config, device_ip) + idle, usage, stats = load_test(target_config, device_ip) return idle, usage, stats @@ -337,6 +331,11 @@ def test_config_delta(device_name, device_ip, base_config, config_delta={}): device_ip = sys.argv[2] device_name = sys.argv[3] + if not device_id or not device_ip or not device_name: + raise ValueError( + "Invalid arguments.\nUsage: test.py device_id device_ip device_name" + ) + validate_device_ip(device_ip) apply_mpremote_config(base_config, device_id) @@ -360,7 +359,7 @@ def test_config_delta(device_name, device_ip, base_config, config_delta={}): load_idle, load_usage, load_stats = test_config_delta( device_id, device_ip, base_config, delta ) - if load_idle and load_usage and load_stats: + if load_usage and load_stats: delta_cnt += 1 m = { "id": f"{case}_{delta_cnt:03d}", diff --git a/tests/system/http_dimensioning/utils.py b/tests/system/http_dimensioning/utils.py index 1747e19..1ebaa42 100644 --- a/tests/system/http_dimensioning/utils.py +++ b/tests/system/http_dimensioning/utils.py @@ -64,6 +64,7 @@ def generate_plot(measurement, device_name): plt.xlabel("Time [s]") plt.ylabel("Heap usage [bytes]") plt.xticks(xticks) + plt.ylim(0, max(measurement["usage"][0:last_idx]) * 1.2) for i, label in enumerate(ax.xaxis.get_ticklabels()): if i % 5 == 0: label.set_visible(True)