4 votes

Comment gérer les affinités entre processus et cœurs de processeurs ?

J'utilise un système de fichiers distribué en espace utilisateur (GlusterFS) et je voudrais être sûr que les processus GlusterFS auront toujours la puissance de calcul dont ils ont besoin.

Chaque nœud d'exécution de ma grille a 2 CPU, avec 4 cœurs par CPU et 2 threads par cœur (16 "processeurs" sont vus par Linux).

Mon objectif est de garantir que les processus GlusterFS disposent d'une puissance de traitement suffisante pour être fiables, réactifs et rapides. (Il n'y a pas de marketing ici, juste les rêves d'un administrateur système ;-)

Je considère deux points principaux :

  • Processus GlusterFS
  • E/S pour l'accès aux données (sur les disques locaux, ou les disques distants)

J'ai pensé à lier les instances GlusterFS à un "processeur" spécifique.

Je voudrais être sûr que :

  • Aucun travail de grille n'aura d'impact sur le noyau et les instances GlusterFS.
  • Les travaux des chercheurs ne seront pas affectés par les processus système (j'aimerais réserver un pool de cœurs à l'exécution des travaux et être sûr qu'aucun processus système n'utilisera ces CPU).

Mais qu'en est-il des E/S ? Comme nous manipulons une énorme quantité de données (plusieurs téraoctets), nous aurons beaucoup d'interruptions.

Comment puis-je répartir ces opérations sur mes processeurs ? Quelles sont les "meilleures pratiques" ?

Merci pour vos commentaires !

1voto

SteveCl Points 1655

L'affectation d'un espace utilisateur à un processeur spécifique peut parfois le rendre plus cohérent, mais pas le noyau. (vérifier jeu de tâches )

si c'était possible, vous transformeriez la commutation espace utilisateur/noyau (qui est déjà un facteur mesurable des performances d'un système d'exploitation) en un problème de communication/synchronisation inter-processeurs. Plusieurs ordres de grandeur pire.

éditer : maintenant que vous avez supprimé l'idée d'épingler le noyau, c'est beaucoup plus raisonnable. Oui, vous pouvez utiliser taskset pour démarrer tous les processus de la grille et laisser un ou deux processeurs libres pour GlusterFS. Pour un exemple analogue, dans les systèmes Xen, il est considéré comme une " meilleure pratique " de réserver un CPU pour le Dom0, qui gère toutes les E/S.

1voto

wazoox Points 6554

C'est pourquoi je ne veux pas utiliser les systèmes de fichiers FUSE en production... J'utilise PVFS2 à la place.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X