Apache SkyWalking — Benchmarks
Performance data for GraalVM Distro, BanyanDB vs Elasticsearch, and V2 engine improvements.
GraalVM Distro Benchmarks
Test Environment
| Parameter |
Value |
| Hardware |
Apple M3 Max |
| OS |
macOS, Docker Desktop |
| Resources |
10 CPUs, 62.7 GB RAM |
| Storage |
BanyanDB |
| Load |
Kind + Istio 1.25.2 + Bookinfo at ~20 RPS |
| Replicas |
2 OAP replicas |
| Samples |
30 at 10s intervals after 60s warmup |
| Metric |
JVM OAP |
GraalVM Native |
Improvement |
| Startup time |
~635 ms |
~5 ms |
127x faster |
| Idle memory (RSS) |
~1.2 GiB |
~41 MiB |
97% reduction |
Under Sustained Load (~20 RPS)
| Metric |
JVM OAP |
GraalVM Native |
Improvement |
| Memory under load |
~2.0 GiB |
~629 MiB |
70% reduction |
| Warm-up required |
Yes (JIT) |
No |
Instant peak throughput |
| Traffic processing |
Baseline |
Identical CPM |
No throughput penalty |
Operational Benefits
| Aspect |
Impact |
| Pod rescheduling |
5ms startup → telemetry gap eliminated |
| Edge/sidecar deployment |
41 MiB idle makes it practical |
| CVE surface |
No JDK runtime → fewer CVEs |
| Cost |
70% less RAM per pod at production load |
Source: SkyWalking GraalVM Distro Blog, March 2026.
BanyanDB vs Elasticsearch
Test Conditions
| Parameter |
Value |
| BanyanDB version |
v0.6.1 |
| Elasticsearch version |
8.13.2 |
| Workload |
SkyWalking APM telemetry |
Results
| Metric |
BanyanDB |
Elasticsearch |
Advantage |
| Memory usage |
Baseline |
~5x more |
BanyanDB 5x less RAM |
| Disk usage |
Baseline |
~30% more |
BanyanDB 30% less disk |
| Disk IOPS |
Baseline |
~5x more |
BanyanDB 5x less I/O |
| Disk throughput |
Baseline |
~4x more |
BanyanDB 4x less bandwidth |
| CPU usage |
Slightly higher |
Baseline |
Elasticsearch slightly better (compression overhead) |
Source: BanyanDB benchmark blog — official SkyWalking community testing.
MAL V2 (Metric Analysis Language)
| Operation |
V1 (Groovy) |
V2 (ANTLR4) |
Speedup |
| Execution |
Baseline |
~6.8x faster |
Immutable AST, no ThreadLocal |
LAL V2 (Log Analysis Language)
| Operation |
V1 (Groovy) |
V2 (ANTLR4) |
Speedup |
| Compile |
Baseline |
~39x faster |
ANTLR4 parse |
| Execute |
Baseline |
~2.8x faster |
Javassist bytecode |
Thread Reduction
| Pool |
V1 Threads |
V2 Threads |
Reduction |
| Total OAP threads |
150+ |
~72 |
~50% |
| L1 Aggregation |
26 |
10 |
62% |
| L2 Persistence |
3 |
4 (unified) |
— |
| TopN Persistence |
4 |
1 |
75% |
Buffer Slot Reduction
| Queue |
V1 Slots |
V2 Slots |
Reduction |
| L1 Aggregation |
~12.5M |
~6.6M |
47% |
| L2 Persistence |
~1.34M |
~660K |
51% |
Caveats
- GraalVM Distro is experimental — current scope: BanyanDB storage, standalone + K8s only
- BanyanDB benchmarks used v0.6.1; production version is now v0.10.1 with additional optimizations
- V2 engine speedups measured against Groovy-based V1; production workload impact will vary
Sources