-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: Add perf test for http client #2442
Conversation
e25b6ba
to
4cf0e71
Compare
upd:
|
@tchaikov , CI fails compiling a file that's not touched by this PR:
|
lemme check. |
i can reproduce this with GCC-14 on fedora 40. seems it's related to ADL. |
4cf0e71
to
8145146
Compare
Thanks! Rebased the branch |
8145146
to
ae6e7c4
Compare
upd:
|
@@ -88,3 +88,7 @@ seastar_add_test (allocator | |||
|
|||
seastar_add_test (container |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It uses in-memory loopback sockets (seastar wrapper around seastar::queue).
But I already prepared mentally to write a comment about it
co_return; | ||
} | ||
|
||
_req += sstring(buf.get(), buf.size()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is quadratic, but I expect n=1, so n²=1 too
}); | ||
return when_all(std::move(sf), std::move(cf)).discard_result(); | ||
}); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
coroutine or thread?
Would be nicer to report insn/op and allocs/op.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thread looks nicer indeed
Report usec/op and allocs/op
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not insn/op (in addition)? It's more stable with todays frequency agile processors.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm... Where to look for an example that collects instructions for a perf test?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we don't plan to use PERF_TEST
because it's complicated to pass command line arguments to the individual tests. probably we can still use linux_perf_event::user_instructions_retired()
directly ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
perf-simple-query in scylla
ae6e7c4
to
41c0799
Compare
upd:
|
@avikivity , @nyh , reminder ping |
The test opens a server socket that reads socket up until double CRLF and then responds back with "HTTP/1.1 200 OK host: test" line in a loop. Then runs http client against it measuring time it takes to perform the given amount of requests. It uses in-memory loopback sockets (seastar wrapper around seastar::queue). Signed-off-by: Pavel Emelyanov <[email protected]>
41c0799
to
3dfc85c
Compare
upd:
|
The test opens a server socket that reads socket up until double CRLF and then responds back with "HTTP/1.1 200 OK host: test" line in a loop. Then runs http client against it measuring time it takes to perform the given amount of requests. It uses in-memory loopback sockets (seastar wrapper around seastar::queue).