Ho un sistema Linux in cui abbiamo usato cgroups per creare due cpuset esclusivi cpu, A e B, e dove abbiamo migrato tutti i thread utente e tutti i thread kernel non associati a un cgroup collegato a cpuset A. Le cose in esecuzione in cpuset A hanno politiche di pianificazione variabili e priorità variabili, e ci sono molti più thread in esecuzione in cpuset A rispetto a core in cpuset A.
Esiste anche un piccolo numero di processi molto attivi collegati a cpuset B, in cui il numero totale di thread utente attraverso questi processi non è mai superiore al numero di core disponibili esclusivamente in cpuset B. L'obiettivo è proteggere questi importanti compiti in esecuzione in cpuset B da altre attività sulla macchina e per ridurre al minimo la latenza di elaborazione.
In tale configurazione, la politica / priorità di pianificazione dei thread utente in esecuzione in cpuset B ha qualche effetto osservabile? Detto diversamente: la modifica della politica di pianificazione dei thread B cpuset da SCHED_OTHER predefinito a SCHED_FIFO o SCHED_RR avrebbe conseguenze, buone o cattive?
Sembra che la risposta dovrebbe essere "no", dal momento che lo scheduler dovrebbe essere in grado di assegnare a ogni thread in esecuzione in cpuset B il proprio core dedicato, quindi non ci sarebbe nulla da stabilire le priorità o la pianificazione, quindi la politica e la relativa priorità della B i thread di cpuset non contano. D'altra parte, ci sono i thread del kernel associati e gli aspetti del "dominio dello scheduler" di cui preoccuparsi, e probabilmente altre cose che non ho considerato.
Le politiche di pianificazione e le priorità dei thread in esecuzione in un cpuset esclusivo sottoposto a overprovisioning sono in qualche senso pratico?