Open waghanza opened 2 days ago
Hi, I think it's simply because wrk
is more optimized than oha
.
Put simply, Ideally, we can distribute all works to each thread statically for this kind a application.
But our runtime tokio
distributes works dynamically using work-stealing, which involves some overheads for locking things.
The overhead is apparent in extreme conditions that benchmark the fast server on localhost.
You can check this hypothesis by using strace
.
strace
(-f) on wrk
is very clean while oha
's strace
has many futex
related things.
But we can implement real-time tui easily by using tokio
framework. it is a good point.
See. https://emschwartz.me/async-rust-can-be-a-pleasure-to-work-with-without-send-sync-static/
Hi @hatoo,
I'm considering using
oha
for https://github.com/the-benchmarker/web-frameworks, but I have some questions.Actually, we are using
wrk
. Using https://github.com/the-benchmarker/web-frameworks/blob/master/rust/actix/src/main.rs, I have some results withwrk
and with
oha http://172.17.0.2:3000 -j --no-tui -z 10s -c 10
(which is the same options), I haveand with more realistic test option I've found on README
oha http://172.17.0.2:3000 -j --no-tui -z 10s -c 10 --latency-correction --disable-keepalive
I haveHow can you explain to variations beetween
wrk
andoha
?Regards,