Equilibrio de carga Linux multi-cpu - migración de hilos

  
 

Se llama a move_tasks () en varios lugares: 1. load_balance () 2. migrate_thread () --- migration_threadload el saldo se realiza mediante scheduler_tick () --- > rebalance_tick () en cada tiempo del reloj. Rebalance_tick comienza a recorrer todos los dominios de planificación, desde el dominio base (el campo sd de la cola de ejecución local) hasta el dominio más alto (consulte la página 286 para saber cuál es el significado de la programación de feilf). Load_balance intenta migrar los procesos del grupo más ocupado en este dominio de planificación a la cola de ejecución en la CPU local. Si la llamada move_task en load_balance falla, active el hilo de migración para dejar inactiva la CPU a lo largo de la búsqueda en cadena del dominio de despacho (desde el dominio base de la cola de ejecución más ocupada hasta la parte superior). Además de la activación de load_balance, el subproceso de migración se llama en varios casos: 1. llamada al sistema do_exec, encuentra cpu gratuita para cargar un nuevo proceso 2. cambia la afinidad de afinidad de la cpu 3. migration_call (), cuando la cpu aumenta o disminuye 4. Al actualizar el dominio de la CPU, (que admite la conexión en caliente de la CPU) 5. load_balance_newidlemove_task primero escanea el proceso de caducidad de rq más ocupado según la prioridad y luego escanea las mercancías hacia el proceso. Cuando se encuentra, llama a pull_task para migrar. La llamada migración se refiere a llamar a dequeue_task () primero. Quitar del extremo lejano), luego llamar a enqueue_task () (insertar localmente). Si el nuevo proceso tiene una prioridad más alta que el proceso actual, llame a reschedule_task () para adelantarse a la CPU local. El parámetro max_nr_move pasado aquí se usa para limitar el número máximo de procesos de migración. Hay varias condiciones que se pueden migrar, consulte la página 289 del núcleo de Linux 3rd.sched_getaffinity () y sched_setaffinity (): establezca la máscara de bits de la CPU que permite el proceso.

Copyright © Conocimiento de Windows All Rights Reserved