# [Prob] [Processus] Affinité processeur pour processus ?

## Mythy

Bonjour,

Voila j'ai un serveur avec plusieurs openvpn serveur dessus et je souhaiterais qu'il ne tourne pas tous sur le processeur 1

(Le processeur étant un Quad Core)

http://vpnserver.mythy.fr/munin/ks364000/ks364000/cpu-day.png

Sur Windows on peut régler l'affinité des processeurs pour les processus, je me demandais s'il existait quelque chose de similaire sur Gentoo

Merci d'avance pour votre aide  :Smile: 

----------

## Poussin

Salut,

en fait, qu'est-ce qui te fait dire que tout tourne sur le même core?

----------

## Mythy

Les stats Munin, mais c'est peut être une mauvaise interprétation

----------

## Poussin

Si tu parles du graphique que tu as collé, je ne vois pas de référence à un core particulié.

----------

## Mythy

Oui je parle de ce graphique.

Dessus on y voit 400%, j'imagine que chaque tranche de 100% correspond à un 1 processeur.

Et on voit en bas que seul les 100 premiers % sont utilisés.

Je ne sais pas si j’interprète ça correctement mais du coup je me pose la question  :Smile: 

----------

## Poussin

Non non, c'est juste trié par type (idle, etc...) et par %age d'occupation au total, mais rien de plus

----------

## Mythy

Ok merci pour ces précisions  :Wink: 

Et il y a un moment de savoir ce qu'il en est vraiment du coup ? 

Et/ou de forcer un processus sur un processeur ?

----------

## Poussin

Je vais peut-etre dire une connerie, les experts me corrigeront, mais la charge se réparti entre les processeurs. Ca n'est jamais attribué à 1 processeur (si tu as plusieurs daemons qui tournent bien entendu).

Chaque processus passe d'un status "en attente" à un statut "en execution" (ok c'est simplifié), et quand il est en execution, c'est sur un processeur libre. Après tout, tu as plein de processus qui tourne sur ta machine, il n'y en a jamais que maximum 4 en même temps.

Je suis à côté de la plaque?

----------

## k-root

je dirais que ca depend du cache , des bus et de la ram ,  si il sont partagés ou pas ...    et meme , ca va se jouer a rien du tout et seulement pour des use case border line .

cf : https://en.wikipedia.org/wiki/Von_Neumann_architecture#Von_Neumann_bottleneck

----------

## boozo

'alute

un peu de lecture qui pourrait aider :

-> gestion de l'affinité processus/processeur via rc-script

-> ibid via cpusets (nb. j'ai pas vérifié sur b.g.o ni sur quel overlay c'est maintenu mais ça doit y être)

-> voir aussi peut-être : sys-process/schedtool

Edit: je crois aussi qu'y'a un pb de titre... enfin, il fût un temps où... ^^

----------

## Mythy

Merci pour vos réponses, je vais lire tout ça et je vous tiens au courant  :Wink: 

 *boozo wrote:*   

> Edit: je crois aussi qu'y'a un pb de titre... enfin, il fût un temps où... ^^

 

J'ai rien vu perso   :Mr. Green: 

----------

## boozo

de nada ; et un retour sera toujours le bienvenu   :Wink: 

nb. Au fait pour cgroups(/cpuset) j'ai aucune expérience avec donc je ne pourrais pas en dire plus (i.e. +/- avantages) d'où tout l'intérêt d'un retour

 *Mythy wrote:*   

>  *boozo wrote:*   
> 
> Edit: je crois aussi qu'y'a un pb de titre... enfin, il fût un temps où... ^^ 
> 
> J'ai rien vu perso 

 

Et il la ramène en plus   :Laughing:  *dijù*  allez zou! édite-moi donc ce titre.

----------

## Mythy

 :Laughing:   :Laughing: 

Voila c'est fait, en faite j'avais mis "Affinité processus pour processeur ?" et j'ai changé en "Affinité processeur pour processus ?", je croyais tu parlais de ça  :Mr. Green: 

Oui je vous tiens au courant dès que je m'occupe de ça  :Wink: 

----------

## guilc

 *boozo wrote:*   

> 'alute
> 
> un peu de lecture qui pourrait aider :
> 
> -> gestion de l'affinité processus/processeur via rc-script
> ...

 

Au passage, à moins de savoir très précisément ce que tu fais dans quelques cas particuliers, par exemple sur du reverse proxy sous très forte charge où on va sticker le process revers-proxy sur un core, et les interruptions de la carte réseau sur le core «voisin» qui partage le même cache CPU, c'est en général une mauvaise idée de forcer les process sur un core.

Le kernel bosse très bien tout seul, et en général mieux qu'un humain !

----------

## Mythy

Merci du complément, je ne pense pas mettre ce genre de choses en prod de toutes façons mais je me posais la question.

Du coup grâce à vos réponses je vais pouvoir faire qq tests et bench  :Wink: 

----------

## k-root

re,

un autre exemple d'utilisation d'utilisation : http://gnuradio.org/doc/doxygen/page_affinity.html

 *Quote:*   

> In the thread-per-block scheduler, you can set the block's core affinity. Each block can be pinned to a group cores or be set back to use the standard kernel scheduler.

 

----------

