On peut utiliser rm(objet)
pour suprimer objet
de la mémoire de R.
Ça ne libère pas tout de suite la mémoire, pas tant qu'il manquera réellement de la mémoire pour R.
On peut forcer cette suppression en lançant la commande gc()
.
Pour ne pas qu'un processus (R ou RStudio par exemple) dépasse une limite qu'on aura fixée, on peut utiliser cgroup
. Voilà comment on procède :
1. Installer libcgroup
(sur Archlinux c'est dans AUR)
2. Créer un cgroup
sudo cgcreate -t $USER:$USER -a $USER:$USER -g memory:myGroup
Ici, $USER
c'est vous.
3. Configurer la limite de mémoire
Après la précédente commande, $USER
a accès au dossier /sys/fs/cgroup/memory/myGroup
.
On peut mettre une limite comme ceci (limiter à 500 Mo):
echo 500000000 > /sys/fs/cgroup/memory/myGroup/memory.limit_in_bytes
4. Lancer la commande soumise à cette limite
cgexec -g memory:myGroup rstudio
Deux notes importantes :