Bagaimana Performa AWS Graviton3?

API7.ai

June 7, 2022

Ecosystem

Latar Belakang

AWS merilis prosesor terbaru berbasis ARM dari keluarga AWS Graviton pada akhir Mei 2022 - AWS Graviton3. Menurut data resmi AWS, dibandingkan dengan prosesor Graviton2, berdasarkan teknologi memori DDR5 terdepan, prosesor Graviton3 dapat memberikan peningkatan performa hingga 25%, performa floating point hingga 2x lipat, dan kecepatan akses memori 50% lebih cepat; Graviton3 juga menggunakan 60% lebih sedikit energi pada instance EC2 dengan tipe yang sama.

Jadi, bagaimana dengan data aktualnya? Mari kita ambil contoh API Gateway yang padat IO jaringan untuk melihat bagaimana performa AWS Graviton3. Di sini kami menggunakan Apache APISIX untuk melakukan tes perbandingan performa pada lingkungan server AWS Graviton2 (C6g) dan AWS Graviton3 (C7g).

Apache APISIX adalah API gateway yang cloud-native, berkinerja tinggi, dan dapat diskalakan. Berbasis NGNIX+LuaJIT dan etcd, dibandingkan dengan API gateway tradisional, APISIX memiliki fitur routing dinamis dan pemuatan ulang plugin secara langsung, yang sangat cocok untuk manajemen API di bawah arsitektur cloud native.

Apache APISIX

Instalasi dan Penyebaran

Siapkan server dengan chip ARM64, di sini kami memilih Amazon EC2 C7g (Hanya model ini yang saat ini memiliki AWS Graviton3), dan sistem operasi yang dipilih adalah Ubuntu 20.04.

Amazon EC2

Jangan lupa untuk menginstal Docker:

sudo apt-get update && sudo apt-get install docker.io

Apache APISIX telah merilis versi terbaru dari image ARM64, yang dapat disebarkan dengan satu perintah menggunakan Docker. Proses detailnya dapat dilihat di bawah ini.

  1. Mulai etcd
sudo docker run -d \ --name etcd -p 2379:2379 -e ETCD_UNSUPPORTED_ARCH=arm64 \ -e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 \ -e ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379 \ rancher/coreos-etcd:v3.4.16-arm64
  1. Mulai APISIX
sudo docker run --net=host -d apache/apisix:2.14.1-alpine
  1. Daftarkan Rute
curl "http://127.0.0.1:9080/apisix/admin/routes/1" \ -H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d ' { "uri": "/anything/*", "upstream": { "type": "roundrobin", "nodes": { "httpbin.org:80": 1 } } }'
  1. Tes
curl -i http://127.0.0.1:9080/anything/das
HTTP/1.1 200 OK .....

Perbandingan Performa AWS Graviton2 dan AWS Graviton3

Menurut operasi sebelumnya, berdasarkan skrip resmi, instalasi dan tes kompatibilitas APISIX pada prosesor AWS Graviton3 berhasil diselesaikan. Mari kita lihat performa Apache APISIX pada AWS Graviton2 (C6g) dan AWS Graviton3 (C7g).

Untuk kesederhanaan, hanya satu Worker yang diaktifkan dalam APISIX dalam tes ini, dan data tes performa berikut semuanya dijalankan pada CPU single-core.

Skenario 1: Satu upstream

Menggunakan satu upstream, tanpa plugin apa pun. Ini terutama menguji performa APISIX dalam mode proxy murni kembali ke asal.

# apisix: 1 worker + 1 upstream + no plugin # daftarkan rute curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/hello", "plugins": { }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:1980":1 } } }'

Skenario 2: Satu upstream + Dua plugin

Menggunakan satu upstream, dua plugin. Ini terutama menguji performa APISIX ketika dua plugin yang mengonsumsi performa inti, limit-count dan prometheus, diaktifkan.

# apisix: 1 worker + 1 upstream + 2 plugins (limit-count + prometheus) # daftarkan rute curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/hello", "plugins": { "limit-count": { "count": 2000000000000, "time_window": 60, "rejected_code": 503, "key": "remote_addr" }, "prometheus": {} }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:1980":1 } } }'

Perbandingan Data

Dalam dua skenario di atas, pengujian dan perbandingan terkait dilakukan dari dua tingkat pemrosesan permintaan dan waktu tunda. Hasilnya adalah sebagai berikut:

  1. Perbandingan QPS

QPS

  1. Perbandingan Latensi

Latency

tabel perbandingan

Dari data di atas juga dapat dilihat bahwa dalam skenario komputasi padat IO jaringan seperti API Gateway, AWS Graviton3 meningkatkan performa sebesar 76% dibandingkan dengan AWS Graviton2, sementara mengurangi latensi sebesar 38%. Data ini bahkan lebih baik daripada data resmi yang diberikan oleh AWS yang disebutkan di awal (peningkatan performa 25%).

Kesimpulan

Artikel ini terutama menggunakan Apache APISIX untuk membandingkan performa AWS Graviton3 dan AWS Graviton2. Dapat dilihat bahwa dalam skenario komputasi padat IO jaringan dari API gateway, AWS Graviton3 dapat dikatakan menunjukkan sifat monster performa. Tentu saja, disarankan juga untuk banyak berlatih, dan menantikan lebih banyak data tes untuk proyek-proyek komputasi intensif di masa depan.

Tags: