Tahun ini, Apple mengejutkan pasar prosesor desktop dengan chip Apple M1 dan perangkat berbasis itu. Peristiwa serupa terjadi di dunia komputasi awan tahun lalu. AWS telah merilis jenis server baru berdasarkan prosesor ARM Graviton2-nya sendiri. Menurut Amazon, prosesor baru ini memiliki rasio kinerja terhadap harga 40% lebih tinggi daripada x86. Pembaruan terbaru lainnya adalah server Amazon RDS (layanan cloud yang menyediakan server database) di Graviton2. Saya menjalankan beberapa benchmark dan uji beban pada aplikasi backend nyata untuk melihat apakah server ARM sebagus itu dan untuk melihat masalah kompatibilitas apa yang mungkin timbul.
Performa
Saya membandingkan jenis server t4g.small (ARM) dan t3.small (x86) di AWS. Pada saat penulisan ini, harga per jam untuk server x86 adalah $ 0,0208, dan untuk server ARM - $ 0,0168. Server ARM lebih murah 20%.
Pertama, saya melakukan uji beban menggunakan wrk, menjalankan instalasi recap.dev baru di server
Ini adalah template tulis-buruh pelabuhan dengan 4 proses. Server web yang menerima permintaan dan menyimpannya di RabbitMQ dan proses latar belakang terpisah yang menyimpan permintaan dalam kelompok 1000 di PostgreSQL.
Saya menjalankan wrk di server t3.2xlarge yang terletak di wilayah yang sama menggunakan perintah berikut:
wrk -t24 -c1000 -d300s -s ./post.lua <hostname>
Ini mengirimkan permintaan terus menerus selama 5 menit menggunakan 24 aliran dan 1000 koneksi HTTP.
Hasil untuk server t4g.small (ARM):
24 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 473.53ms 53.06ms 1.96s 81.33%
Req/Sec 115.83 96.65 494.00 71.32%
620751 requests in 5.00m, 85.84MB read
Socket errors: connect 0, read 0, write 0, timeout 225
Requests/sec: 2068.48
Transfer/sec: 292.90KB
Untuk server t3.small (x86):
24 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 600.28ms 70.23ms 2.00s 72.53%
Req/Sec 92.77 82.25 404.00 70.26%
488218 requests in 5.00m, 67.51MB read
Socket errors: connect 0, read 0, write 0, timeout 348
Requests/sec: 1626.87
Transfer/sec: 230.37KB
Server ARM melayani 27% lebih banyak permintaan per detik rata-rata 26% lebih cepat.
pts/compress-7zip-1.7.1 t4g.small (ARM) 6833 MIPS, t3.small (x86) - 5029 MIPS. ARM 35%.
ARM pts/c-ray 2 . 958 x86 458 ARM .
pts/ramspeed, .
|
t4g.small (ARM) |
t3.small (x86) |
Add/Integer |
50000 /c |
13008 /c |
Copy/Integer |
58650 /c |
11772 /c |
Scale/Integer |
31753 /c |
11989 /c |
Triad/Integer |
36869 /c |
12818 /c |
Average/Integer |
44280 /c |
12314 /c |
Add/Floating Point |
49775 /c |
12750 /c |
Copy/Floating Point |
58749 /c |
11694 /c |
Scale/Floating Point |
58721 /c |
11765 /c |
Triad/Floating Point |
49667 /c |
12809 /c |
Average/Floating Point |
54716 /c |
12260 /c |
, t4g.small Graviton2 3 5 .
, ARM . .
, .
ARM . , Docker .rpm .deb, (, Docker ). , docker-compose ARM , . , , ARM . , , , ARM , .
Amazon RDS Graviton2 ARM .
ARM Docker recap.dev arm/v7 arm64.