Fix the warm up cache issue#5829
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a cache warm-up step to the FIO performance benchmark suite. By performing a sequential read of the test file before the actual latency test, the GCS Anywhere Cache is properly populated, preventing cache misses that previously caused the integration tests to fail due to high latency. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a warmup step using fio before running the main read latency tests in both the Kubernetes job template (fio-test-job.yaml.j2) and the Ansible playbook (test-slurm-rapid-storage.yml). Feedback suggests adding set -e to the multi-line container script in the Kubernetes job template to ensure that any failure during the warmup step causes the script to exit immediately rather than silently proceeding to the latency test.
The integration test failure was caused by a cold cache miss during the FIO performance benchmark:
The test validates GCS Anywhere Cache (Rapid Cache), which is an SSD-backed zonal read cache.
Anywhere Cache is demand-driven and uses the admit-on-first-miss policy, meaning data is only loaded into the high-speed cache after it has been read for the first time.
The test file (/data/fio) is newly written during the test. Writing the file does not populate the read cache.
The benchmark ran a random-read test (--rw=randread) with small 4K blocks across the 1G file immediately after creation.
Because the cache was completely cold, nearly 100% of these random reads missed the cache and had to fetch data directly from GCS. This resulted in typical GCS direct-access latencies (~10ms per I/O), leading to only 129 IOPS (threshold: >= 300) and 516 KB/s bandwidth (threshold: >= 1000 KB/s).
Submission Checklist
NOTE: Community submissions can take up to 2 weeks to be reviewed.
Please take the following actions before submitting this pull request.