Skip to main content

Benchmarks

Benchmark results for a single TAG instance serving cached object reads. A single TAG node saturates a 100 Gbps NIC at ~85+ Gbps for objects 1 MiB and larger, delivers ~75K ops/sec for small objects, and maintains low single-digit millisecond TTFB — all while using around 12% of available CPU.

Test environment

Benchmarks were run on Amazon EC2 using go-ycsb and warp.

RoleInstancevCPUsMemoryStorageNetwork
Benchmark clientc6in.16xlarge64128 GiB100 Gbps
TAG serveri3en.24xlarge96768 GiB60 TB SSD100 Gbps

TAG was run as a single instance via native/run.sh. During the benchmarks, TAG CPU usage stayed under 1200% and memory usage remained around 24 GB, leaving significant headroom on the server.

Results — warp

Benchmarks were run using warp. Each test ran GET operations for ~30 minutes.

Object SizeThreadsOPSThroughputp50 (ms)p99 (ms)TTFB p50 (ms)
1 KiB1638,72437.8 MiB/s0.36.5< 1
1 KiB3258,53557.2 MiB/s0.32.0< 1
1 KiB6475,71773.9 MiB/s0.43.2< 1
100 KiB1619,5431.9 GiB/s0.610.7< 1
100 KiB3228,5942.7 GiB/s0.75.11
100 KiB6433,3503.2 GiB/s1.35.81
1 MiB167,2247.1 GiB/s5.820.24
1 MiB3210,31310.1 GiB/s2.912.71
1 MiB6410,95510.7 GiB/s5.317.51
4 MiB161,9847.8 GiB/s13.259.76
4 MiB322,68610.5 GiB/s10.338.11
4 MiB642,77510.8 GiB/s18.6102.31

Results — go-ycsb

Benchmarks were run using go-ycsb.

Object SizeThreadsOPSp50 (us)p99 (us)
1 KiB1634,1173801,024
1 KiB3247,7434842,275
1 KiB6455,2317444,443
100 KiB167,9061,8424,015
100 KiB328,6973,3899,775
100 KiB649,7264,41125,999
1 MiB162,9814,8918,431
1 MiB324,8166,52311,223
1 MiB646,2559,65519,727

Key observations

  • 1 KiB objects: ~75K ops/sec at 64 threads with sub-millisecond p50.
  • 100 KiB objects: ~3.2 GiB/s at 64 threads (~26 Gbps).
  • 1 MiB objects: ~10.7 GiB/s (~86 Gbps) at 64 threads, saturating the 100 Gbps EC2 network link at 32+ threads.
  • 4 MiB objects: ~10.5 GiB/s (~84 Gbps) at 32 threads, saturating the 100 Gbps EC2 network link.
  • TTFB remains sub-millisecond for small objects (1 KiB, 100 KiB) and stays in the low single-digit milliseconds for objects up to 4 MiB.
  • Throughput scales with thread count for small objects and saturates the 100 Gbps NIC at ~85 Gbps for 1 MiB+ objects.

Limitations

For 1 MiB+ objects, throughput is NIC-bound at ~85 Gbps — the practical maximum on a 100 Gbps EC2 link. For smaller objects (1 KiB, 100 KiB), throughput is client-bound; multiple benchmark clients would be needed to determine TAG's actual ceiling. A single go-ycsb instance does not scale well past ~20 Gbps and struggles with object sizes above 1 MB.