Red Hat Training

A Red Hat training course is available for RHEL 8

20.2. Determinación de la topología del sistema

En la informática moderna, la idea de una CPU es engañosa, ya que la mayoría de los sistemas modernos tienen múltiples procesadores. La topología del sistema es la forma en que estos procesadores están conectados entre sí y con otros recursos del sistema. Esto puede afectar al rendimiento del sistema y de las aplicaciones, así como a las consideraciones de ajuste de un sistema.

20.2.1. Tipos de topología del sistema

A continuación se describen los dos principales tipos de topología utilizados en la informática moderna:

Topología de multiprocesador simétrico (SMP)
La topología SMP permite que todos los procesadores accedan a la memoria en el mismo tiempo. Sin embargo, debido a que el acceso a la memoria compartida e igualitaria obliga intrínsecamente a los accesos a la memoria en serie de todas las CPU, las limitaciones de escalado de los sistemas SMP se consideran ahora generalmente inaceptables. Por este motivo, prácticamente todos los sistemas de servidores modernos son máquinas NUMA.
Topología de acceso no uniforme a la memoria (NUMA)

La topología NUMA se ha desarrollado más recientemente que la topología SMP. En un sistema NUMA, varios procesadores se agrupan físicamente en un socket. Cada zócalo tiene una zona de memoria dedicada y procesadores que tienen acceso local a esa memoria, a los que se denomina colectivamente nodo. Los procesadores de un mismo nodo tienen un acceso de alta velocidad al banco de memoria de ese nodo, y un acceso más lento a los bancos de memoria que no están en su nodo.

Por lo tanto, hay una penalización de rendimiento cuando se accede a la memoria no local. Así, las aplicaciones sensibles al rendimiento en un sistema con topología NUMA deberían acceder a la memoria que se encuentra en el mismo nodo que el procesador que ejecuta la aplicación, y deberían evitar acceder a la memoria remota siempre que sea posible.

Las aplicaciones multihilo que son sensibles al rendimiento pueden beneficiarse de ser configuradas para ejecutarse en un nodo NUMA específico en lugar de un procesador específico. La conveniencia de esto depende de su sistema y de los requisitos de su aplicación. Si varios subprocesos de la aplicación acceden a los mismos datos almacenados en caché, puede ser conveniente configurar esos subprocesos para que se ejecuten en el mismo procesador. Sin embargo, si varios subprocesos que acceden a datos diferentes y los almacenan en caché se ejecutan en el mismo procesador, cada subproceso puede desalojar los datos almacenados en caché a los que accedió un subproceso anterior. Esto significa que cada hilo "echa de menos" la caché y pierde tiempo de ejecución buscando datos de la memoria y reemplazándolos en la caché. Utilice la herramienta perf para comprobar si hay un número excesivo de pérdidas de caché.