J'ai une boîte linux RAM de 8 Go sur laquelle 4 serveurs tomcat fonctionnent. L'un d'eux est défini sur une mémoire de 3000 Mo (jvm -Xms et -Xmx) et d'autres sur 1500 Mo. La partition de swap est également définie sur 8 Go. Lorsque je démarre ces serveurs, l'utilisation du fichier d'échange est faible. Mais sur une période de jours et pendant certaines périodes où l'un / tous les serveurs sont en activité maximale, l'utilisation du swap commence à augmenter. Voici une sortie sar -r typique.
kbmemfree kbmemused% memused kbbuffers kbcached kbswpfree kbswpused % swpused kbswpcad
48260 8125832 99,41 196440 2761852 7197688 1190912 14,20 316044
75504 8098588 99,08 198032 2399460 7197688 1190912 14,20 316032
Il montre un échange de 14,2% utilisé actuellement. Le plus drôle, c'est que% ne diminue JAMAIS . Il continue d'augmenter et atteint jusqu'à 30-40% . Nous redémarrons nos serveurs chaque semaine.
Je suppose que le % swpused augmente pendant les périodes d'activité maximale et diminue pendant les périodes de faible activité .. Ou au moins reste constant. Il semble que l'espace d'échange ne soit jamais récupéré par le système d'exploitation.
Sortie de free: free -m total des buffers partagés libres utilisés mis en cache Mem: 7982 7937 45 0 32 2088 - / + buffers / cache: 5816 2166 Swap: 8191 1163 7028
Il y a donc au moins 2g de Ram gratuit. La question est donc de savoir pourquoi l'espace de swap continue d'augmenter et n'est pas récupéré par le système d'exploitation? Ou comment déboguer cela pour comprendre ce qui se passe ..