2010-08-05 3 views
1

Je veux tester les variations de performances qui peuvent se produire si la mémoire est allouée et accessible à partir de différentes CPU physiques et de différents contrôleurs de mémoire embarqués pour un processeur 64 bits. , 16 noyau Intel Xeon 5500 processeur basé sur le processeur. (Dell T710)Allocation de mémoire de l'espace utilisateur sous Linux (affinité du contrôleur de mémoire)

En regardant le livre blanc du vendeur, je peux voir chaque CPU physique dispose de 3 contrôleurs de mémoire indépendants. Il y a également 2 CPU physiques, pour un total de 6 contrôleurs de mémoire parallèles. Je voudrais connaître les performances des copies de mémoire vers/depuis le même contrôleur, différents contrôleurs dans le même CPU physique et entre différents processeurs physiques. Pour ce faire, je dois définir l'affinité CPU du processus (pouvoir faire) et l'affinité de la mémoire pour le CPU physique (semble être hérité de l'affinité cpu), puis l'affinité de la mémoire pour le contrôleur de mémoire (ne pas connaître!).

Est-ce que quelqu'un sait comment faire cela sur Linux?

Je suppose que l'adresse physique correspondrait au contrôleur de mémoire, donc alternativement est-il possible de demander une plage de mémoire physique pour une demande de mémoire d'espace utilisateur sous Linux?

Répondre

1

Le noyau Linux Documentation/numastat.txt mentionne le paquet numactl pour la gestion des contrôleurs de mémoire: http://linuxmanpages.com/man8/numactl.8.php

+1

Merci, il y a une bibliothèque userspace numactl qui ressemble à ce fait exactement ce que je dois. Il y a aussi un programme numademo qui semble faire les benchmarks qui m'intéressent. – Phil