Sé que Linux está diseñado para procesos multiusuario/concurrentes, pero a nivel corporativo, muchos de ellos se usan para aplicaciones únicas (pero grandes) para respaldar un servicio interno, de los cuales solo atienden a muy pocos clientes.
En tal caso de uso, ¿cómo deberíamos ajustar el sistema o el kernel (específicamente Red Hat Linux, Fedora, CentOS) para optimizarlo para el escenario? Para minimizar la latencia, reduciendo el cambio de contexto, con muy pocas E/S del disco local.
La duración de la sesión puede ser persistente (ya que el número de clientes es solo unos pocos), el intercambio de tamaño de datos es pequeño, pero muy frecuente, como de 1k a 2k de mensajes por segundo, el tamaño de 40 a 100 bytes.
Respuesta1
El ajuste del rendimiento es tanto un arte negro como una ciencia. Se han escrito libros completos al respecto, incluidos bastantes como parte deldocumentación del proveedor
Comienzas con un buen monitoreo, agregas carga, obtienes una línea de base y solo entonces comienzas a ajustar y observar si tu ajuste tuvo o no el resultado deseado.
Enjuague y repita hasta obtener el resultado óptimo.
No menciona su versión principal de RHEL o CentOS, pero todas incluyen también ajuste automático, por ejemplo con el tuned
demonio. Los perfiles de rendimiento predefinidos se pueden seleccionar tuned-adm list
y luego activar con tune-adm profile <profile-name>
.
Para su caso de uso, el perfil RHEL 7latency-performance
Suena como el que podría beneficiarle:
latency-performance
Un perfil de servidor centrado en reducir la latencia. Este perfil se recomienda para cargas de trabajo sensibles a la latencia que se benefician del ajuste del estado C y de la mayor eficiencia TLB de páginas enormes transparentes. Este perfil favorece el rendimiento sobre el ahorro de energía configurandointel_pstate
ymax_perf_pct=100
. Permite páginas enormes transparentes, se utilizacpupower
para configurar el regulador de rendimiento cpufreq y solicita uncpu_dma_latency
valor de1
.
Para un ajuste más general de LinuxBrandan Greggha creado una serie de diagramas visuales de qué herramienta usar y en qué parte de su sistema que son hojas de trucos realmente agradables: