2012-08-15 36 views
8

Tengo un servidor de 4 núcleos y quiero ejecutar redis en él. Para aprovechar al máximo las capacidades de los 4 núcleos, se espera lanzar 4 instancias redis, ya que redis está diseñado para ser de un solo subproceso.¿Cómo asegurar que múltiples instancias redis se ejecuten en diferentes núcleos?

Sin embargo, tengo curiosidad por saber cómo garantizar que las 4 instancias funcionen exactamente en 4 núcleos diferentes. ¿Cómo puede una instancia decidir el núcleo en el que se ejecuta cuando se inicia?

Respuesta

14

El propio Redis no ofrece dicha garantía.

Si ejecuta 4 instancias, habrá 4 procesos diferentes que el sistema operativo tendrá que programar en los 4 núcleos. Depende del sistema operativo realizar este equilibrio de carga, optimizando el rendimiento del sistema.

Ahora, si realmente desea vincular cada instancia a un núcleo específico, el sistema operativo moderno generalmente proporciona herramientas para aplicar la ejecución de un proceso en un núcleo de CPU específico.

Por ejemplo, en Linux, puede echar un vistazo a los comandos taskset y numactl.

En la práctica, debe tener cuidado con esto, porque una vez que inicie Redis en un núcleo específico (configuración de una máscara de CPU), todos los subprocesos y procesos secundarios heredarán de esta máscara de CPU. Por lo tanto, cuando Redis intente desencadenar una operación de guardado en segundo plano, o una reescritura AOF de fondo, tendrá un gran impacto en el rendimiento de la instancia de Redis. Esto se debe al hecho de que el hilo principal de Redis tendrá que compartir el núcleo de la CPU con la operación de fondo (que normalmente consume CPU).

Si realmente desea jugar con el enlace de CPU (¿pero es realmente una buena idea?), Debe vincular instancias de N Redis a N + 1 núcleos de CPU, manteniendo un núcleo libre para las operaciones en segundo plano y asegúrese como máximo, una operación en segundo plano puede ejecutarse al mismo tiempo para estas instancias.

+0

Otra respuesta dice algo al revés: http://stackoverflow.com/a/36813957/1469954. ¿Qué consejo tomar? :) – SexyBeast

+0

Esta otra respuesta ni siquiera se refiere al enlace de la CPU. ¿Cómo pueden expresar puntos de vista opuestos? –

Cuestiones relacionadas