-
-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Description
Hi
I am opening this issue to document some findings about the fs2-grpc performance in this benchmark. I started this journey investigating why the akka-grpc results were so bad (https://discuss.lightbend.com/t/akka-grpc-performance-in-benchmarks/8236/) but then got curious what would be the numbers for other implementations...
The fs2-grpc implementation of the benchmark was done in this PR and the results I got were
Benchmark info:
37a7f8b Mon, 17 May 2021 16:06:05 +0100 João Ferreira scala zio-grpc implementatio
Benchmarks run: scala_fs2_bench scala_akka_bench scala_zio_bench java_hotspot_grpc_pgc_bench
GRPC_BENCHMARK_DURATION=50s
GRPC_BENCHMARK_WARMUP=5s
GRPC_SERVER_CPUS=3
GRPC_SERVER_RAM=512m
GRPC_CLIENT_CONNECTIONS=50
GRPC_CLIENT_CONCURRENCY=1000
GRPC_CLIENT_QPS=0
GRPC_CLIENT_CPUS=9
GRPC_REQUEST_PAYLOAD=100B
-----
Benchmark finished. Detailed results are located in: results/211705T162018
--------------------------------------------------------------------------------------------------------------------------------
| name | req/s | avg. latency | 90 % in | 95 % in | 99 % in | avg. cpu | avg. memory |
--------------------------------------------------------------------------------------------------------------------------------
| java_hotspot_grpc_pgc | 59884 | 16.19 ms | 40.65 ms | 54.12 ms | 88.15 ms | 256.21% | 204.7 MiB |
| scala_akka | 7031 | 141.70 ms | 281.35 ms | 368.74 ms | 592.53 ms | 294.91% | 175.44 MiB |
| scala_fs2 | 7005 | 142.20 ms | 231.57 ms | 266.35 ms | 357.07 ms | 274.57% | 351.34 MiB |
| scala_zio | 6835 | 145.74 ms | 207.45 ms | 218.25 ms | 266.37 ms | 242.61% | 241.43 MiB |
--------------------------------------------------------------------------------------------------------------------------------
I did some profiling with JFR and wanted to share the results
The biggest problem is GC:
Memory:
And the culprits are scalapb.GeneratedMessageCompanion.parseFrom, fs2.grpc.server.Fs2ServerCall#sendMessage. There is also a lot of cats.effect.* stuff...
He-Pin and maziyarpanahi
Metadata
Metadata
Assignees
Labels
No labels


