2011-12-21 3 views
4

Vous pouvez adapter le système de stratégie de dépassement de mémoire à l'aide de sysctls, mais est-il possible d'ajuster cette politique par processus à partir du processus lui-même? Je veux faire un processus en temps réel particulier n'utiliser jamais trop, bien que le reste du système peut overcommit.Désactivation de la surcommande de mémoire Linux dans une application

+0

Je ne sais pas si vous pouvez vraiment. Une solution consisterait à définir la limite 'memlock' de l'utilisateur exécutant l'application sur une valeur suffisamment grande (voir limits.conf (5)) et à utiliser' mlock (2) 'sur les zones de mémoire sensibles. – fge

+0

Il ne s'agit pas d'une option car l'utilisateur est root et de nombreuses applications de niveau racine exécutent différentes priorités en temps réel sur cette boîte intégrée. Ce serait un changement entre plusieurs processus, plutôt que celui dont j'ai besoin. – Joe

+0

Eh bien, root _can_ mlock (2) tout ce qu'il veut par défaut! J'ai eu l'espoir qu'il ne fonctionne pas en tant que root: p – fge

Répondre

2

Non, ce n'est pas possible. Relativement apparenté, pour un processus en temps réel, vous voudrez probablement utiliser les fonctions mlock ou mlockall pour épingler votre espace d'adressage à la mémoire vive (RAM).

+0

Yup, déjà enfermé dans RAM. Au moment où je metset toute la mémoire que je veux alloué pour m'assurer que je l'ai, je me demandais si cela était superflu et un simple appel en haut de l'application pourrait désactiver overcommit. – Joe

Questions connexes