Joakim Frostegård
c6a134683c
Toggle prometheus feature in scripts/run-aquatic-http.sh
2023-01-18 21:50:10 +01:00
Joakim Frostegård
3ac12b947f
ws: add prometheus support (active connections, requests, responses)
2023-01-17 20:27:43 +01:00
Joakim Frostegård
417ea68701
scripts/bench-udp-handlers.sh: use release-debug profile
2022-10-26 20:05:39 +02:00
Joakim Frostegård
ce9fdc3887
Fix env-native-cpu-without-avx-512 issue
2022-09-25 12:03:47 +02:00
Joakim Frostegård
8beb13db29
In scripts, explicitly choose what workspace member to build
...
Otherwise, building aquatic_udp fails on other OS:es than Linux
2022-09-18 18:05:21 +02:00
Joakim Frostegård
44b50204e2
Switch to thin LTO; add Cargo profile release-debug
2022-04-04 12:32:42 +02:00
Joakim Frostegård
11cba4eb12
Add scripts/run-aquatic-http-private.sh
2022-04-03 16:31:45 +02:00
Joakim Frostegård
32a6285215
Update scripts/gen-tls.sh
2022-03-31 12:41:06 +02:00
Joakim Frostegård
cb563ee37e
Adjust scripts/run-aquatic-ws.sh now that there is no mio version
2022-03-18 15:29:08 +01:00
Joakim Frostegård
222fac0e09
Improve aquatic_ws glommio implementation, fixing memory leak ( #37 )
...
* ws: upgrade tungstenite and async-tungstenite to 0.16
* ws: use latest glommio
* ws: glommio: add config key connection_cleaning_interval
* ws: glommio: limit socket worker local channel size
Quick fix for memory leak
* ws: glommio: use prioritized task queue for sending responses
This is a start on trying to fix the large amount of responses
being dropped due to local response channel being full
* scripts/watch-threads.sh: don't highlight changes
* ws: glommio: await when sending responses from shared to local
* ws: glommio: limit ws message queue; add lots of ::log::warn for debug
* ws: glommio: add timeout to send_out_message, maybe pinpointing issue
* ws: glommio: clean up, tweak channel sizes; update TODO
* ws: glommio: set send timeout to 10s, add backpressure, accept drops
* ws: glommio: yield if needed in ConnectionReader backoff loop
* ws load test: add config key connection_creation_interval_ms
* ws load test: don't print "run connection" when opening connection
* ws load test: rename config num_connection to num_connections_per_worker
* ws load test config: improve order of code in file
* ws: glommio: info-level log for socket send timeout
* ws glommio: clean idle connections, improve cleaning code
* ws: glommio: make ConnectionWriter::send_error_response fallible; fmt
* ws: glommio: store JoinHandle in conn reference, cancel task on clean
* add scripts/heaptrack.sh
* Update TODO
2021-12-11 18:50:05 +01:00
Joakim Frostegård
c1f2d036c0
add scripts/watch-threads.sh for showing runtime stats
...
Includes per-thread cpu affinity (PSR)
2021-11-19 00:14:46 +01:00
Joakim Frostegård
138ae710ef
udp: remove io_uring version, it is slower than mio version
2021-11-18 22:42:37 +01:00
Joakim Frostegård
4641dd29f2
udp: remove glommio implementation
2021-11-18 22:42:36 +01:00
Joakim Frostegård
ce1c0b24c3
udp: fix build failure; fix scripts/run-aquatic-udp.sh
2021-11-18 22:42:36 +01:00
Joakim Frostegård
03192d2afb
scripts: improve run-aquatic-udp.sh and run-aquatic-ws.sh
2021-11-07 13:30:42 +01:00
Joakim Frostegård
1c8da337a1
scripts/run-aquatic-ws: support running either mio or glommio impl
2021-11-07 11:51:23 +01:00
Joakim Frostegård
2bed6ccdc5
WIP: ws: split into features, other fixes
2021-11-05 13:25:19 +01:00
Joakim Frostegård
79bbf957c0
add scripts/gen-tls.sh for generating snakeoil tls cert & key
2021-10-26 19:39:05 +02:00
Joakim Frostegård
de2b7cb187
Add GitHub Docker action for testing UDP and HTTP file transfers
...
The Dockerfile works when run locally. The GitHub action
plumbing may or not work in this state.
2020-08-17 00:49:12 +02:00
Joakim Frostegård
beea0e7d97
add scripts/build-aquatic.sh
2020-08-13 00:15:43 +02:00
Joakim Frostegård
9efc1fc66a
add aquatic crate with master executable, refactor cli_helpers
2020-08-13 00:13:01 +02:00
Joakim Frostegård
cff9b44a7f
move RUSTFLAGS gen to own file instead of setting in each script
2020-08-12 00:28:03 +02:00
Joakim Frostegård
b3caa7ab7b
Update TODO
2020-08-12 00:20:00 +02:00
Joakim Frostegård
f2d697011b
Don't use target-cpu native etc in scripts/test.sh
2020-08-11 23:04:28 +02:00
Joakim Frostegård
56bc028a44
aquatic_ws: OutMessage and InMessage simd-json fixes
...
* use simd-json in OutMessage deserialization
* take ownership in InMessage deserialization to avoid bugs
* Update benchmark results, benchmark was broken
* Compile simd-json even if simd is not on, so that rust-analyzer
works
2020-08-11 23:02:19 +02:00
Joakim Frostegård
5d40954936
aquatic_ws: deserialize InMessage with simd-json for performance
...
From 18% to 13% CPU time during load test run.
Criterion benchmark of deserialization got about 90% improvement.
2020-08-11 06:32:51 +02:00
Joakim Frostegård
99724c7e5d
aquatic_ws: add bench for InMessage::from_ws_message, take ws msg by ref
2020-08-11 05:36:29 +02:00
Joakim Frostegård
118c2e446b
scripts: don't print RUSTFLAGS, causes issues when printing configs
2020-08-01 23:23:10 +02:00
Joakim Frostegård
a5108f813d
WIP: aquatic_ws: add half-crappy load test, fix infinite loop bug
2020-08-01 03:35:00 +02:00
Joakim Frostegård
0d8b6f6cc4
build scripts: disable avx512, since it decreases performance
2020-07-31 01:34:13 +02:00
Joakim Frostegård
32402a4dca
criterion announce-response-to-bytes script: ask about saving result
2020-07-21 17:24:17 +02:00
Joakim Frostegård
c1b2a30803
criterion request-from-bytes script: ask user about saving result
2020-07-21 15:59:32 +02:00
Joakim Frostegård
b3154c5bcf
aquatic http protocol: delete obsoleted request-from-path benchmark
...
Now there is a request-from-bytes benchmark that supersedes
request-from-path.
Final comparison of gains made since first benchmark:
request-from-path
time: [540.01 ns 541.51 ns 543.15 ns]
change: [-90.786% -90.741% -90.696%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-21 14:25:47 +02:00
Joakim Frostegård
ea4b560faa
aquatic_http_protocol: add benchmark for request from bytes
2020-07-20 20:27:42 +02:00
Joakim Frostegård
6471e4a8a9
Add scripts/run-load-test-http.sh
2020-07-20 15:21:25 +02:00
Joakim Frostegård
4caf174da5
aquatic_http: add criterion benchmark for announce response to bytes
...
Speedup of custom implementation compared to using bendy:
announce-response-to-bytes:
time: [413.77 ns 415.34 ns 417.08 ns]
change: [-93.074% -93.021% -92.968%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-19 16:56:13 +02:00
Joakim Frostegård
2fe42e7235
update criterion script
2020-07-19 13:26:17 +02:00
Joakim Frostegård
ca8d278a03
aquatic_http: parse_key_value_pairs_memchr: small code improvement
2020-07-19 13:06:39 +02:00
Joakim Frostegård
a8e355f22a
aquatic_http: add criterion benchmarks for request from path parsing
...
About 35% improvement by using both memchr methods
2020-07-19 01:58:41 +02:00
Joakim Frostegård
a487347a0d
aquatic_http: continue implementation work
2020-07-02 13:21:39 +02:00
Joakim Frostegård
7512b4b44f
setup-bench-on-debian.sh: roll nginx into other apt-get line
...
Not installing nginx means script is aborted because of
"set -e", and that setting serves a purpose
2020-06-30 00:04:01 +02:00
Joakim Frostegård
4c2c6634c3
setup-bench-on-debian.sh: install git
2020-06-30 00:03:21 +02:00
Joakim Frostegård
3addab07f0
move plot_pareto from aquatic_udp_bench crate into own crate
2020-05-25 19:38:53 +02:00
Joakim Frostegård
1b8d74e26d
rename aquatic to aquatic_udp, same for bench and load test crates
2020-05-11 16:55:46 +02:00
Joakim Frostegård
ab178b3189
add scripts/run-aquatic-ws.sh
2020-05-11 15:41:46 +02:00
Joakim Frostegård
cae534d82d
scripts/test.sh: add comment about quickcheck constants
2020-05-04 17:10:55 +02:00
Joakim Frostegård
8effcb8d91
setup-bench-on-debian.sh: add rustc build flag for aquatic
2020-05-04 17:10:39 +02:00
Joakim Frostegård
b77af78483
Add scripts for setting up benchmarks on linux
2020-04-19 10:31:33 +02:00
Joakim Frostegård
f6ed47fec7
add aquatic_load_test for benchmarking aquatic over the network
2020-04-19 10:21:12 +02:00
Joakim Frostegård
9a1143ffac
aquatic_bench: enable loading configuration from file
2020-04-11 14:31:21 +02:00