ARM-Server - effizienter und billiger

In diesem Jahr hat Apple mit dem Apple M1-Chip und den darauf basierenden Geräten den Markt für Desktop-Prozessoren erschüttert. Ein ähnliches Ereignis fand im vergangenen Jahr in der Cloud-Computing-Welt statt. AWS hat einen neuen Servertyp veröffentlicht, der auf seinen eigenen ARM Graviton2-Prozessoren basiert. Laut Amazon haben die neuen Prozessoren ein um 40% höheres Leistungs-Preis-Verhältnis als ihre x86-Kollegen. Ein weiteres aktuelles Update sind Amazon RDS-Server (ein Cloud-Dienst, der Datenbankserver bereitstellt) auf Graviton2. Ich habe einige Benchmarks und einen Auslastungstest für eine echte Backend-Anwendung durchgeführt, um festzustellen, ob die ARM-Server so gut sind und welche Kompatibilitätsprobleme auftreten können.





Performance

Ich habe die Servertypen t4g.small (ARM) und t3.small (x86) unter AWS verglichen. Zum Zeitpunkt dieses Schreibens beträgt der Preis pro Stunde für einen x86-Server 0,0208 USD und für einen ARM-Server 0,0168 USD. Ein ARM-Server ist 20% günstiger.





Zuerst habe ich einen Auslastungstest mit wrk durchgeführt und eine neue recap.dev-Installation auf den Servern ausgeführt





Dies ist eine Docker-Compose-Vorlage mit 4 Prozessen. Ein Webserver, der Anforderungen akzeptiert und in RabbitMQ speichert, und ein separater Hintergrundprozess, der Anforderungen in Gruppen von 1000 in PostgreSQL speichert.





Ich habe wrk auf einem t3.2xlarge-Server in derselben Region mit dem folgenden Befehl ausgeführt:





wrk -t24 -c1000 -d300s -s ./post.lua <hostname>
      
      



Es sendet kontinuierlich 5 Minuten lang Anforderungen über 24 Streams und 1000 HTTP-Verbindungen.





Ergebnis für 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
      
      



Für 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
      
      



Der ARM-Server bediente 27% mehr Anfragen pro Sekunde, durchschnittlich 26% schneller.









Phoronix.





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.








All Articles