Skip to content

Disable memcpy by default and improve stress workload test - #577

Merged
xiaguan merged 2 commits into
kvcache-ai:mainfrom
xiaguan:main
Jul 2, 2025
Merged

Disable memcpy by default and improve stress workload test#577
xiaguan merged 2 commits into
kvcache-ai:mainfrom
xiaguan:main

Conversation

@xiaguan

@xiaguan xiaguan commented Jul 2, 2025

Copy link
Copy Markdown
Collaborator

Changes

1. Disable memcpy by default for better RDMA performance

  • Set MC_STORE_MEMCPY default to false in transfer_task.cpp
  • RDMA performance is more stable than memcpy operations

2. Improve stress workload test

  • Rewrite stress_workload_test.cpp as standalone benchmark
  • Add separate throughput calculations for PUT and GET operations
  • Include comprehensive performance metrics:
    • Latency percentiles (P50, P90, P95, P99)
    • Operation-specific throughput (ops/sec)
    • Data throughput (MB/s) for PUT and GET separately
  • Add configurable parameters for threads, operations, buffer sizes

- Set MC_STORE_MEMCPY default to false for more stable RDMA performance
- Rewrite stress_workload_test.cpp as standalone benchmark with separate PUT/GET throughput calculations
- Add comprehensive performance metrics including latency percentiles and operation-specific throughput
- Replace gtest dependency with gflags for better configuration flexibility
@xiaguan
xiaguan requested a review from Copilot July 2, 2025 02:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR disables memcpy by default to stabilize RDMA performance and transforms the stress workload test into a standalone, configurable benchmark with detailed metrics.

  • Disable MC_STORE_MEMCPY default to false in transfer logic.
  • Rewrite stress_workload_test.cpp as a benchmark with separate PUT/GET throughput, latency percentiles, and configurable parameters.
  • Update test CMake configuration to remove GTest and link GFlags.

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
tests/stress_workload_test.cpp Converted from gtest to standalone benchmark; added flags and metrics
tests/CMakeLists.txt Removed gtest deps and added gflags linkage
src/transfer_task.cpp Changed default MC_STORE_MEMCPY setting to disabled
Comments suppressed due to low confidence (1)

mooncake-store/tests/stress_workload_test.cpp:24

  • [nitpick] The flag name test_operation_nums is a bit ambiguous; consider renaming it to num_operations_per_thread or operations_per_thread for clearer intent.
DEFINE_int32(test_operation_nums, 100, "Number of operations per thread");

Comment thread mooncake-store/tests/stress_workload_test.cpp Outdated
Comment thread mooncake-store/tests/stress_workload_test.cpp Outdated
@xiaguan
xiaguan requested a review from ykwd July 2, 2025 02:42
@ykwd

ykwd commented Jul 2, 2025

Copy link
Copy Markdown
Collaborator

RDMA performance is more stable than memcpy operations

This is rather counter-intuitive. I wonder why RDMA has better performance than local memcpy?

@xiaguan

xiaguan commented Jul 2, 2025

Copy link
Copy Markdown
Collaborator Author

RDMA performance is more stable than memcpy operations

This is rather counter-intuitive. I wonder why RDMA has better performance than local memcpy?

#467 (comment)

@xiaguan
xiaguan merged commit b2808b6 into kvcache-ai:main Jul 2, 2025
201341 pushed a commit to 201341/Mooncake that referenced this pull request Jul 22, 2025
…est (kvcache-ai#577)

* Disable memcpy by default and improve stress workload test

- Set MC_STORE_MEMCPY default to false for more stable RDMA performance
- Rewrite stress_workload_test.cpp as standalone benchmark with separate PUT/GET throughput calculations
- Add comprehensive performance metrics including latency percentiles and operation-specific throughput
- Replace gtest dependency with gflags for better configuration flexibility

* fix comments
wanyue-wy pushed a commit to wanyue-wy/Mooncake that referenced this pull request Dec 14, 2025
…est (kvcache-ai#577)

* Disable memcpy by default and improve stress workload test

- Set MC_STORE_MEMCPY default to false for more stable RDMA performance
- Rewrite stress_workload_test.cpp as standalone benchmark with separate PUT/GET throughput calculations
- Add comprehensive performance metrics including latency percentiles and operation-specific throughput
- Replace gtest dependency with gflags for better configuration flexibility

* fix comments
JasonZhang517 pushed a commit to JasonZhang517/Mooncake that referenced this pull request Feb 9, 2026
…est (kvcache-ai#577)

* Disable memcpy by default and improve stress workload test

- Set MC_STORE_MEMCPY default to false for more stable RDMA performance
- Rewrite stress_workload_test.cpp as standalone benchmark with separate PUT/GET throughput calculations
- Add comprehensive performance metrics including latency percentiles and operation-specific throughput
- Replace gtest dependency with gflags for better configuration flexibility

* fix comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants