LangChain Agent Infrastructure Benchmark: Nirvana ABS vs AWS EBS
April Wong
ABS finishes 14-17% faster than io2 at every scale, at 31x less cost.
TL;DR
- ABS finishes 14-17% faster than AWS io2 at every scale (1K, 10K, 100K tasks)
- +19% more throughput, 7.8x faster raw disk I/O
- 31x cheaper ($118/mo vs $3,710/mo for io2-64k)
- io2-64k performs identically to io2-32k (instance-capped at ~40K IOPS)
- ABS wins every metric except Qdrant tail latency (p99). Over 100K tasks, throughput wins.
- All cold reads, 3 runs per scenario, fully reproducible

In our previous post we broke down what LangChain is, how the ReAct loop works, and where each step hits the cloud. The takeaway: every time an agent "acts," the data and storage layer (Qdrant, Redis, Postgres) reads and writes to the disk on your VM. That's the one layer where cloud storage performance directly affects how fast agents finish work.
This post is the results. We ran identical LangChain agent workloads across five storage platforms to answer one question: does the disk underneath actually make a difference?
It does.
14-17% faster task completion than AWS io2. +19% more throughput. 7.8x faster raw disk. 19x cheaper.
The workload
5M vectors across 50 Qdrant collections. 100 to 1,000 concurrent LangChain agents. Each task hits 3 services: Qdrant for vector search, Redis for caching, Postgres for checkpoints. 6 storage ops per task. All cold reads. Page cache dropped before every run.
The setup
Same workload, same hardware, five storage tiers. The only variable is the block storage.
| Config | Instance | vCPU / RAM | Storage | Provisioned IOPS | Cost / mo |
|---|---|---|---|---|---|
| Nirvana ABS | n1-standard-4 | 4 / 16 GB DDR5 | ABS 256 GB | 20K baseline, 600K burst, included | $118 |
| gp3-3k | m6i.xlarge | 4 / 16 GB DDR4 | gp3 256 GB | 3,000 | $147 |
| gp3-16k | m6i.xlarge | 4 / 16 GB DDR4 | gp3 256 GB | 16,000 | $212 |
| io2-32k | m6i.xlarge | 4 / 16 GB DDR4 | io2 256 GB | 32,000 | $2,238 |
| io2-64k | m6i.xlarge | 4 / 16 GB DDR4 | io2 256 GB | 64,000 | $3,710 |
Held constant: instance class, 4 vCPU / 16 GB / 256 GB, same agent code and data on all five.
The only variable: the block storage. ABS includes 20,000 sustained IOPS in the base price. io2 is billed per provisioned IOPS.
Task completion at scale
ABS wins at every scale. The lead widens with load.

| Scale | Tasks | Nirvana ABS | io2-32k | io2-64k | gp3-16k | gp3-3k | ABS |
|---|---|---|---|---|---|---|---|
| 100x10 | 1,000 | 36s | 43s | 42s | 43s | 62s | 14-16% |
| 500x20 | 10,000 | 351s | 420s | 424s | 430s | 433s | 16-17% |
| 1000x100 | 100,000 | 58 min | 69 min | 69 min | 68 min | 71 min | 16% |
3 runs per scenario, all cold reads. Results reproduce across every run.
Task latency at 100K scale
| Platform | Task p50 | Task p95 | Task p99 |
|---|---|---|---|
| Nirvana ABS | 326 ms | 562 ms | 725 ms |
| io2-32k | 393 ms | 612 ms | 779 ms |
| io2-64k | 396 ms | 606 ms | 771 ms |
| gp3-16k | 390 ms | 605 ms | 760 ms |
| gp3-3k | 404 ms | 643 ms | 809 ms |
Per-service breakdown at 100K tasks
Each task chains 6 ops across 3 services. Here's where each platform wins and loses.
| Service | Per task | ABS p99 | io2-64k p99 | ABS vs io2 |
|---|---|---|---|---|
| Qdrant (vector search) | 2 ops | 301 ms | 140 ms | io2 leads |
| Redis (cache) | 2 ops | 68.0 ms | 70.4 ms | ABS 3% faster |
| Postgres (checkpoints) | 2 ops | 31.9 ms | 37.7 ms | ABS 15% faster |
| Task p99 (compound) | 6 ops | 725 ms | 771 ms | ABS 6% faster |
| Task completion | 100K tasks | 58 min | 69 min | ABS 16% faster |
io2 wins one metric: per-query Qdrant p99. ABS wins Redis p99, Postgres p99, task p99, and task completion.
Qdrant is 2 of 6 ops per task, not all of them. ABS wins Redis and Postgres. The 301ms Qdrant p99 is the worst 1% of queries. ABS Qdrant p50 is 66ms vs io2's 51ms, only 29% slower, not 117%. And ABS sustains 172 app IOPS vs io2's 145, 19% more tasks per second through the pipeline.
Over 100,000 tasks, throughput wins.
Cost
| Platform | Monthly cost |
|---|---|
| Nirvana ABS | $118 |
| gp3-3k | $147 |
| gp3-16k | $212 |
| io2-32k | $2,238 |
| io2-64k | $3,710 |
ABS finishes faster than every AWS tier at a fraction of the cost. io2-64k performs identically to io2-32k on this instance class. The m6i.xlarge instance caps IOPS at ~40K regardless of what you provision.
Verdict
If you're running concurrent agent workloads: ABS. Fastest task completion at every scale we tested, at 19x less than io2.

Open source. Run it yourself.
We built this benchmark because nobody else did. LangChain has 138K stars and zero infrastructure benchmarks. Now there's one, and it's open source.
Open source. Run it yourself.
Full report: nirvanalabs.io/benchmark-results
Repo: github.com/nirvana-labs-examples/langchain-benchmarks
Terraform configs, Ansible playbooks, benchmark runner, raw JSON results.
Add your own storage config and compare.
