Servidores ARM: más eficientes y económicos

Este año, Apple sacudió el mercado de los procesadores de escritorio con el chip Apple M1 y los dispositivos basados ​​en él. Un evento similar tuvo lugar en el mundo de la computación en nube el año pasado. AWS ha lanzado un nuevo tipo de servidor basado en sus propios procesadores ARM Graviton2. Según Amazon, los nuevos procesadores tienen una relación rendimiento / precio un 40% más alta que sus contrapartes x86. Otra actualización reciente son los servidores de Amazon RDS (un servicio en la nube que proporciona servidores de bases de datos) en Graviton2. Ejecuté algunos puntos de referencia y una prueba de carga en una aplicación backend real para ver si los servidores ARM son tan buenos y ver qué problemas de compatibilidad pueden surgir.





Actuación

Estaba comparando los tipos de servidor t4g.small (ARM) y t3.small (x86) en AWS. En el momento de escribir este artículo, el precio por hora de un servidor x86 es de $ 0.0208 y de un servidor ARM, de $ 0.0168. Un servidor ARM es un 20% más económico.





Primero, hice una prueba de carga usando wrk, ejecutando una nueva instalación de recap.dev en los servidores





Esta es una plantilla de composición acoplable con 4 procesos. Un servidor web que acepta solicitudes y las almacena en RabbitMQ y un proceso en segundo plano separado que almacena solicitudes en grupos de 1000 en PostgreSQL.





Ejecuté wrk en un servidor t3.2xlarge ubicado en la misma región usando el siguiente comando:





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



Envía solicitudes continuamente durante 5 minutos utilizando 24 transmisiones y 1000 conexiones HTTP.





Resultado para el servidor 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
      
      



Para el servidor 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
      
      



El servidor ARM atendió un 27% más de solicitudes por segundo en promedio un 26% más rápido.









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