fix(perf): gzip+base64 TCP results through SSM (beat 24KB stdout cap)#109
Conversation
… cap) Perf run 28552788420 produced real per-config result JSON, but retrieval via 'cat file' over SSM truncated it at ~24000 chars (AWS SSM StandardOutputContent cap) — every file was exactly 23984 bytes and ended mid-structure with '--output truncated--', so JSON parsing failed and all results were lost. Retrieve with 'gzip -c file | base64 -w0' between markers and decode locally. gzip shrinks the JSON ~15x (24KB sample -> ~1.6KB on the wire), far under the cap. Verified locally: marker-wrap -> extract -> base64 -d -> gunzip recovers the bytes exactly. Companion to the DpdkBackend::send_frame TX fix — both are needed for a green TCP perf run (that fix makes connections establish; this one delivers the resulting numbers intact). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Synthetic Performance Results (run)Commit: ✅ synthetic UDP socket bound to 10.0.0.1:9000 (MAC: 02:00:00:00:00:01) Synthetic UDP Performance ResultsMeasures framework overhead: sync IPv4 Baseline
IPv6
IPv6 vs IPv4 Comparison (sync path)
IPv4 avg sync/async ratio: 0.9x, worst: 1.0x | IPv6 vs IPv4 worst ratio: 1.33x (OK)
|
Synthetic Performance Results — Graviton (run)Commit: ✅ synthetic UDP socket bound to 10.0.0.1:9000 (MAC: 02:00:00:00:00:01) Synthetic UDP Performance ResultsMeasures framework overhead: sync IPv4 Baseline
IPv6
IPv6 vs IPv4 Comparison (sync path)
IPv4 avg sync/async ratio: 1.0x, worst: 1.1x | IPv6 vs IPv4 worst ratio: 1.17x (OK)
|
[CI] Stage: DeployInfrastructure ready.
|
[CI] Stage: DeployInfrastructure ready.
|
[CI] Stage: SummaryAll tests PASSED. ARP seeding: kernel /proc/net/arp (automatic)
|
1 similar comment
[CI] Stage: SummaryAll tests PASSED. ARP seeding: kernel /proc/net/arp (automatic)
|
✅ Integration Tests Passed — Graviton (run)Branch: Test Results
Application Logs (last 20 lines)receiver-echo-server.log sender-echo-server.log sender-test-client.log |
✅ Integration Tests Passed (Run 28555875256)Branch: Test Results
Application Logs (last 20 lines)receiver-echo-server.log sender-echo-server.log sender-test-client.log receiver-test-client-iperf.log sender-test-client-iperf.log Full Application Logs (last 200 lines each)receiver-echo-server.logsender-echo-server.logsender-test-client.logreceiver-test-client-iperf.logsender-test-client-iperf.log
|
Companion to #108. Perf run 28552788420 actually produced real per-config result JSON — but retrieving it with
catover SSM truncated it at ~24,000 chars (AWS SSMStandardOutputContentcap). Every downloaded file was exactly 23984 bytes and ended mid-structure with--output truncated--, so JSON parsing failed and the numbers were lost.Fix: retrieve with
gzip -c file | base64 -w0between markers, decode locally. gzip shrinks the JSON ~15× (24 KB → 1.6 KB on the wire), far under the cap. Verified locally end-to-end (marker-wrap → extract →base64 -d→gunziprecovers the bytes byte-exact); harness unit tests green.Both #108 and this are needed for a green TCP perf run: #108 makes the DUT actually establish connections; this delivers the resulting metrics intact. Merge both, then re-dispatch.
🤖 Generated with Claude Code