fujita/greeter-bpf

implementing gRPC GreeterServer in eBPF just for fun.

C

80

3 commits

updated Oct 15, 2020

See the code

README

greeter-bpf is an experiment on implementing server software in eBPF. It works as gRPC GreeterServer only for the benchmark. It's tested with libbpf. (b6dd2f2b).

Performance

Hardware and Software

Same as the Rust greeter.

Benchmark

ghz --insecure --proto /var/opt/helloworld.proto --call helloworld.Greeter.SayHello -d '{"name":"Joe"}' --connections=3000 -c 3000 -n 6000000 -t 0 172.31.21.68:50051

  • One client machine runs 3,000 gRPC clients (i.e. 3,000 HTTP/2 clients).
  • One client issues 6,000,000 requests in total.
  • Tested with one, two, and four client matchies.

Results

Throughput (requests per second)

300060001200024000
bpf246025485305906581453259
grpc-go227356331013301632287175
async231914450984441548415015

Throughput (requests per second)

Contributors

fujita

3 commits

fujita/greeter-bpf

implementing gRPC GreeterServer in eBPF just for fun.

C

80

3 commits

updated Oct 15, 2020

See the code

README

greeter-bpf is an experiment on implementing server software in eBPF. It works as gRPC GreeterServer only for the benchmark. It's tested with libbpf. (b6dd2f2b).

Performance

Hardware and Software

Same as the Rust greeter.

Benchmark

ghz --insecure --proto /var/opt/helloworld.proto --call helloworld.Greeter.SayHello -d '{"name":"Joe"}' --connections=3000 -c 3000 -n 6000000 -t 0 172.31.21.68:50051

  • One client machine runs 3,000 gRPC clients (i.e. 3,000 HTTP/2 clients).
  • One client issues 6,000,000 requests in total.
  • Tested with one, two, and four client matchies.

Results

Throughput (requests per second)

300060001200024000
bpf246025485305906581453259
grpc-go227356331013301632287175
async231914450984441548415015

Throughput (requests per second)

Contributors

fujita

3 commits

Languages

C

93.3%

Makefile

6.7%