Skip to content

Separate process for every query in benchmarks #9381

Description

@myrrc

Our current model of measurements is cache drop and "sync" for every benchmark type. This is good but not enough. We need to drop caches after every request because otherwise we both benefit from warm caches and suffer from memory pressure from previous queries.

Specifically, we want each query (which is currently run 10 times) to be run in a separate process. Our second iteration for memory-heavy queries (think clickbench with 9.5GB madvice) gets TLB issues because it tries to deallocate the memory allocated by first iteration (we run them in same process).

This in turn happens because mimalloc/jemalloc keep deallocated memory for a short time after deallocation because giving it back to the user is faster then returning it to the OS and then allocating again. However, this impacts benchmark performance a lot.

cc @AdamGS

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions