¿Debo elegir una CPU más alta/ancho de banda bajo o una CPU ligeramente más lenta/ancho de banda mayor?

¿Debo elegir una CPU más alta/ancho de banda bajo o una CPU ligeramente más lenta/ancho de banda mayor?

Tengo algunos servidores que realizan muchas operaciones de compresión de archivos. Esto también significa que todos los archivos deben descargarse de forma remota antes de comprimirlos y cargarlos de forma remota, o transmitirlos de forma remota a los clientes.
Tengo la opción de actualizar servidores antiguos o adquirir otros nuevos.

Las especificaciones del servidor antiguo se 3.1 GHzrefieren al ancho de banda promedio 100 Mbps. Se trata de las nuevas especificaciones del servidor 2.4 GHzy se garantiza que el ancho de banda será 1000 Mbps up to 2000 Mbps. El uso de memoria debe permanecer igual o reducirse en la nueva iteración.

En este punto, he descubierto mi uso de RAM y disco. Eso no es un problema. La pregunta se centra en cómo las velocidades de la CPU y el ancho de banda afectan las descargas transmitidas.

Esas son mis opciones.
¿Qué opción es mejor para mi caso de uso?

Respuesta1

Debe realizar un seguimiento del uso de CPU y ancho de banda en sus servidores actuales cuando realizan esas "operaciones de compresión".

Si usan 100% de CPU, opte por CPU más rápidas; Si utilizan el 100% del ancho de banda, opte por un ancho de banda mayor.


Además, tenga en cuenta que las CPU más nuevas pueden ser mucho más rápidas que las más antiguas, independientemente de los valores nominales de GHz; el número de núcleos de CPU también es relevante (suponiendo que esas "operaciones de compresión" sean multiproceso y/o se ejecuten en paralelo).

Respuesta2

Si va a encontrar alguna solución "óptima", debe averiguar cuántos datos pueden pasar a través de sus buses de datos, lo óptimo sería que los datos lleguen a alguna tarjeta de red, se lean desde la CPU y se compriman directamente en la memoria. en una tarjeta de red.

Supongamos que tienes

  • 2 (para que no se confundan al enviar y recibir) tarjetas Ethernet de 10 GB con 8 carriles cada una de PCI express 4 (15 GB/s para cada una), suponiendo que pueda obtener un MB que admita esto.
  • inviertes en algo de CPU+MB que realmente pueda soportar esto, RyZen 5950X+x570

Luego está el rendimiento de la memoria.

  • elarribaEl sistema ofrece alrededor de 54 GB/s de lectura/escritura o 48 GB/s de copia.
  • Las unidades Ethernet pueden copiar los datos recibidos a la RAM (mediante caché o no).
  • Lo más probable es que aún no hayas tenido el beneficio deenvío sin copiaperomás comoEl envío provocará entre 3 y 6 copias.
  • Es probable que sea lo mismo para recibir, pero la CPU tiene que leerlo al menos una vez para comprimirlo, si tiene suerte directamente en el caché, si no desde la memoria, y lo mismo cuando se comprime en el caché, la NIC podría copiarlo directamente. a su buffer de envío interno.

Entonces, en el mejor de los casos, con la mejor NIC y controladores a nivel de usuario, siempre presione el caché

  • copiar de NIC a caché sin reescritura en RAM
  • zip de caché a caché
  • copiar del caché a la NIC
  • suponiendo que 32 subprocesos puedan alimentarlo, podría obtener un rendimiento de 10 GB/s

Si no tiene acceso a este afortunado escenario, es más probable que tenga un ancho de banda de memoria limitado, ya que

  • se suponen 3 copias para mover datos a la aplicación
  • 2 copias para cargar en zip y guardar el resultado
  • 3 copias para enviar
  • y muchas reescrituras de caché para unirlo todo en la oscuridad

Suponiendo 7 lecturas y 7 escrituras, el límite debería ser de alrededor de 54 GB/s / 14 = 3,85 GB/s en el mejor de los casos. Con menos lecturas/escrituras, rápidamente alcanza la velocidad máxima de NIC.

Entonces, desde aquí puede reducir las especificaciones hasta que se cubran su presupuesto o sus necesidades.

No he podido localizar ningún dato para el compresión multiproceso en la memoria.

información relacionada