2015-03-28 1 views
0

J'essaie de limiter la bande passante d'un processus à la mémoire. J'ai 2 cgroups (cgroup1 et cgroup2) avec des processus en eux. Je peux limiter la quantité de mémoire utilisée par chaque groupe. Mais s'ils continuent à appeler malloc() et free() et saturer le bus mémoire, ils s'influencent mutuellement.Limiter la bande passante mémoire cgroups sans NUMA

Comment limiter cela? Je n'ai pas deux nœuds de mémoire différents, et pas de NUMA.

Répondre

1

Ceci n'est pas possible. Supported subsystems sont:

  • blkio - ce sous-système définit des limites à l'accès d'entrée/sortie vers et à partir des dispositifs de blocs tels que les lecteurs physiques (disque, à l'état solide, USB, etc.). Cpu - ce sous-système utilise le planificateur pour fournir aux tâches de groupe de contrôle l'accès à la CPU. Cpuacct
  • cpuacct - ce sous-système génère des rapports automatiques sur les ressources de l'unité centrale utilisées par les tâches dans un groupe de contrôle.
  • cpuset - ce sous-système affecte des processeurs individuels (sur un système multicœur) et des nœuds de mémoire à des tâches dans un groupe de contrôle.
  • périphériques - ce sous-système autorise ou refuse l'accès aux périphériques par des tâches dans un groupe de contrôle. Freezer - ce sous-système suspend ou reprend des tâches dans un groupe de contrôle. Mémoire: ce sous-système définit les limites d'utilisation de la mémoire par les tâches dans un groupe de contrôle et génère des rapports automatiques sur les ressources de mémoire utilisées par ces tâches. Net_cls - ce sous-système étiquette les paquets réseau avec un identificateur de classe (classid) qui permet au contrôleur de trafic Linux (tc) d'identifier les paquets provenant d'une tâche de groupe de contrôle donnée. Net_prio - ce sous-système permet de définir de manière dynamique la priorité du trafic réseau par interface réseau.
  • ns - le sous-système d'espace de nommage.

Un système récent research paper a introduit un nouveau contrôleur pour y parvenir et a créé le code associé available.

Une alternative serait de mmapper un fichier, puis définissez les paramètres blkio dessus (pas sûr que cela fonctionnerait). Ensuite, demandez à votre programme de lire/écrire des variables à partir du fichier au lieu d'utiliser malloc (moche!).

+0

j'ai remarqué en effet ce que vous avez dit ci-dessus. J'espérais que vous auriez remarqué un document sur une solution possible. merci beaucoup apprécié – zilleplus