Enlever les limitation utilisateurs

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Au taf, j'ai eu un problème avec la mémoire d'une jvm dont le Xmx et le Xms étaient mis à 4,5Go et ou une partie de la mémoire partait en swap jusqu'a ce qu'un Full GC se déclenche et que la réservation (RSS) partie en swap revienne en RAM.

Comme messages d'avertissements, j'ai eu des :

pages faults

J'ai pas mal chercher avant de trouver une solution.

2 Enlever les limitations par utilisateur

Déjà pour la JVM, il faut rajouter une option au lancement :

-XX+UseISM

Ceci est pour activer l'utilisation de la initimate shared memory.

Mais les users sont limités sous solaris à la quantité allouable comme ca, donc pour augmenter la limite :

Command
projadd -U qa user.qa
projmod -sK "project.max-shm-memory=(privileged,64G,deny)" user.pmavro

Ensuite on se relog avec l'utilisateur pmavro et pour vérifier que tout a bien fonctionner :

Command prctl
$ prctl -n project.max-shm-memory -i project user.pmavro
project: 100: user.pmavro
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-shm-memory
       privileged      64,0GB      -   deny                                 -
       system          16,0EB    max   deny                                 -

Une fois fait, la mémoire RES de la commande top est bien égale au max, dès le démarrage et plus de soucis de page fault :-)