You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: npi/.gemini/skills/run-gcsfuse-npi/SKILL.md
+27-3Lines changed: 27 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -182,12 +182,34 @@ For each GCE VM target that requires preparation (e.g. if freshly created or res
182
182
183
183
Once the orchestrator outputs `SUCCESS`:
184
184
185
-
1. Execute the results query script:
185
+
1. **Extract Custom Run Results**:
186
+
To extract the performance results of a custom benchmark run, execute a `bq` query command.
187
+
188
+
> [!IMPORTANT]
189
+
> **JSON Key Spacing**: In the FIO JSON output, the version is stored under the key `"fio version"` (with a space). Always query it using the quoted format: `JSON_VALUE(fio_json_output, '$."fio version"')` to avoid returning `NULL`.
190
+
191
+
Run the following query substituting your Cloud Project, Dataset ID, and Table Name (e.g. `fio_read_grpc` or `fio_write_grpc`):
JSON_VALUE(fio_json_output, '\$.\"fio version\"') AS fio_version,
198
+
AVG(SAFE_CAST(JSON_VALUE(job.read.bw) AS FLOAT64)) / 1024.0 AS avg_read_bw_mib,
199
+
AVG(SAFE_CAST(JSON_VALUE(job.write.bw) AS FLOAT64)) / 1024.0 AS avg_write_bw_mib
200
+
FROM
201
+
\`<PROJECT_ID>.<DATASET_ID>.<TABLE_ID>\`,
202
+
UNNEST(JSON_EXTRACT_ARRAY(fio_json_output.jobs)) AS job
203
+
GROUP BY 1, 2, 3
204
+
ORDER BY run_timestamp DESC"
205
+
```
206
+
2. **Compare Against Baselines (Optional)**:
207
+
If running comparison baseline tests, you can execute the results comparison script:
186
208
```bash
187
209
python3 query_results.py
188
210
```
189
-
2. Compile the throughput comparison report.
190
-
3. **High-Performance Machine Type Verification**:
211
+
3. Compile the throughput comparison report.
212
+
4. **High-Performance Machine Type Verification**:
191
213
* Check if the GCE VM or GKE node machine type used in the test (e.g., `c4-standard-96`, `ct6e-standard-4t`) is classified under the high-performance machine types in the GCSFuse `params.yaml` configuration file (located in the main GCSFuse repository).
192
214
* If the machine type is missing, raise a Pull Request (PR) in the GCSFuse repository to add it. This ensures GCSFuse dynamically applies optimal configuration defaults (such as Direct Path, large connection pools, and high read-ahead) for this machine family in production.
193
215
@@ -198,6 +220,8 @@ To ensure that the executing agent does not skip or miss any critical setup, run
198
220
- [ ] **Prerequisites Verification**:
199
221
- GCE boot disk size verified (>= 200GB).
200
222
- GCE RAID0 SSD mount verified at `/mnt/lssd`.
223
+
- Target VM and GCS bucket colocation verified (same zone for RAPID bucket, same region for regional bucket).
224
+
- Target GCS bucket verified to have Hierarchical Namespace (HNS) enabled.
201
225
- GKE TPU cluster node requirements verified (at least 1 CPU node + 1 TPU node active).
202
226
- Remote python output buffering set to unbuffered (`python3 -u` verified).
raiseValueError(f"Colocation Error: RAPID bucket '{bucket_name}' is in zone(s) {data_locs}, but target is in zone '{run_location}'. They must be in the same zone.")
raiseValueError(f"Colocation Error: RAPID bucket '{bucket_name}' is in zone(s) {data_locs}, but target is in region '{run_location}'. The bucket zone must be within the target region.")
raiseValueError(f"Bucket '{bucket_name}' is configured as a regional bucket, but GCS location type is '{location_type}' (expected 'region').")
605
+
606
+
iflocation!=run_region:
607
+
raiseValueError(f"Colocation Error: Regional bucket '{bucket_name}' is in region '{location}', but target is in region '{run_region}'. They must be in the same region.")
0 commit comments