gcore
attache gdb
à un processus, parcourt la plupart des zones de mémoire virtuelle d'un processus et les vide sur le disque. Est-ce que cela signifie que chaque morceau de mémoire virtuelle anonyme devra être paginé dans la mémoire de ce processus, ce qui augmentera son RSS, ou est-ce que la mémoire paginée dans l'espace de travail de l'utilisateur est la même ? gdb
processus ? Je suppose qu'il va aussi paginer dans toute mémoire sauvegardée dans les fichiers (bien que je suppose que cela ne devrait pas augmenter le RSS, bien que cela puisse augmenter l'utilisation de la RAM par le cache des fichiers).
L'exemple d'un environnement Kubernetes montre des sauts de RSS de 304368 à 17135624 ( gcore
exécuté à partir d'un pod de débogage d'un nœud de travail) :
# ps auxwww | head -1
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
# ps auxwww | grep 3899524 | grep -v grep
1000650+ 3899524 0.2 0.9 17229416 304368 ? SLsl Jun13 54:01 /opt/java/openjdk/jre/bin/java [...]
# gcore 3899524
[...]
# ps auxwww | grep 3899524 | grep -v grep
1000650+ 3899524 0.2 53.3 17229416 17135624 ? SLsl Jun13 54:01 /opt/java/openjdk/jre/bin/java [...]
Cela pourrait-il être lié spécifiquement aux conteneurs/cgroupes ?