Introduction
Ce document décrit la procédure de dépannage des problèmes d'utilisation de mémoire de swap élevée avec Cisco Policy Suit (CPS).
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Remarque : Cisco recommande que vous ayez un accès racine privilégié à l'interface de ligne de commande CPS.
Composants utilisés
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- CPS 20.2
- Système d'informatique unifiée (UCS)-B
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
L'espace de swap sous Linux est utilisé lorsque la quantité de mémoire physique (RAM) est saturée. Si le système a besoin de davantage de ressources mémoire et que la mémoire vive est saturée, les pages inactives de la mémoire sont déplacées vers l'espace de permutation. Bien que l'espace d'échange puisse aider les machines disposant d'une petite quantité de mémoire vive, il ne doit pas être considéré comme un remplacement de mémoire vive supplémentaire. L'espace d'échange se trouve sur les disques durs, qui ont un temps d'accès plus lent que la mémoire physique. L'espace de swap peut être une partition de swap dédiée (recommandé), un fichier de swap ou une combinaison de partitions de swap et de fichiers de swap.
Dans les années précédentes, la quantité d'espace de swap recommandée augmentait de manière linéaire avec la quantité de mémoire vive du système. Cependant, les systèmes modernes comportent souvent des centaines de gigaoctets de mémoire vive. Par conséquent, l'espace d'échange recommandé est considéré comme une fonction de la charge de travail de la mémoire système, et non de la mémoire système.
L'échange de mémoire est un procédé de récupération de mémoire dans lequel les contenus de mémoire non utilisés actuellement sont échangés sur un disque pour rendre la mémoire disponible pour d'autres applications ou processus. L'état exact ou « page » de la mémoire est copié sur le disque pour rendre les données contiguës et faciles à restaurer par la suite.
Tout comme la mémoire virtuelle, l'espace d'échange est une mémoire secondaire. Il est utilisé par le système d'exploitation lorsqu'aucune mémoire physique n'est disponible pour l'exécution ultérieure des processus. Si le système d'exploitation doit faire face à une situation où il a besoin de mémoire, mais que la mémoire vive est pleine, il déplace les pages inactives de la mémoire vive vers la mémoire d'échange.
Pour vérifier l'espace de swap disponible sur votre machine, vous pouvez utiliser la commande free.
[root@dc1-qns01 ~]# free -m
total used free shared buff/cache available
Mem: 15876 4918 7750 792 3207 9987
Swap: 4095 0 4095
[root@dc1-qns01 ~]#
Problème
Un pourcentage plus élevé d'utilisation de swap est normal lorsque les modules provisionnés utilisent le disque de manière intensive. L'utilisation élevée de l'échange doit être un signe que le système subit une pression de mémoire.
Cette alarme est générée chaque fois que la mémoire d'échange disponible sur la machine virtuelle (VM) est inférieure à la valeur de seuil configurée.
En outre, une utilisation élevée de la mémoire d'échange est observée sur la machine virtuelle pcrfclient01 au moment de l'événement de résilience. Les diagnostics échouent après l'exécution du fichier diagnostic.sh en raison d'un problème de mémoire d'échange insuffisante dans la machine virtuelle pcrfclient.
Checking swap space for all VMs...
Checking swap memory usage on pcrfclient01...[FAIL]
Swap usage is 1835 MB. This will likely lead to a slowdown in your system!
Please ensure your memory is provisioned properly.
If systems memory usage is no longer high, you can reset swap with: swap2ram.sh
Condition : les tests de diagnostic échouent après l'exécution de diagnostic.sh en raison d'un problème de mémoire d'échange insuffisante dans la machine virtuelle pcrfclient.
Procédure de résolution des problèmes d'utilisation élevée de la mémoire d'échange avec CPS
Approche 1.
La solution à l'utilisation élevée de la mémoire d'échange est observée sur la VM pcrfclient01 au moment de l'événement de résilience.
1. Connectez-vous à la machine virtuelle pcrfclient et vérifiez la mémoire du disque à l'aide de la commandedu -sh *.
2. Vérifiez l'utilisation de la mémoire dans le répertoire/var/lib/carbon/whisper/cisco/quantum. Si une augmentation de l'utilisation de la mémoire est observée, alors le problème est dû aux fichiers de statistiques.
3. Pour récupérer de la mémoire, supprimez les fichiers de statistiques (.wsp) ou augmentez la mémoire disque de la machine virtuelle.
4. Pour récupérer la mémoire, supprimez manuellement les statistiques du dossier /var/lib/carbon/whisper/cisco/quantum ou supprimez-les en procédant comme suit :
- Exécutez la commande
df –h et notez les espaces disque.
- Exécutez ces commandes :
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
#monit stop grafana-server
#monit stop carbon-cache
#vi /etc/carbon/storage-schemas.conf
- Mettre à jour la période de conservation (de 90 jours à 30 jours) qui se trouve à la fin du fichier. Il en résulte une période de rétention plus agressive.
Anciens - rétentions : 10 s : 1 d, 60 s : 90 d
Mise à jour de - rétentions : 10s:1d,60s:30d
- Après la mise à jour de la période de rétention, exécutez ces commandes :
#monit start carbon-cache
#monit start grafana-server
Remarque : vous pouvez également utiliser systmctl start/stop/restart la commande au lieu de la commandemonit start/stop/restart.
- Créez un fichier nommé resize.sh et ajoutez-les.
#monit stop carbon-cache
#cd /var/lib/carbon/whisper/cisco/quantum/qps
#find ./ -type f -name '*.wsp' -exec whisper-resize --nobackup {} $1 \;
#chown -R carbon:carbon *
#monit start carbon-cache
#monit restart grafana-server
- Ajoutez les autorisations nécessaires à l'aide de la commande
chmod 777 resize.sh.
- Exécutez la commande
./resize.sh "updated_retention_value"
Exemple de commande : #./resize.sh "10s:1d 60s:30d"
- Une fois le script terminé, exécutez ces commandes pour confirmer que la quantité de données a été réduite par la comparaison des résultats précédents et actuels.
#run df –h: disk space should reduce or less than previous result
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
- Vérifiez que le Grafana affiche les statistiques des 30 derniers jours et pas plus de 30 jours. (la période de conservation mise à jour est de 30 jours).
Approche 2.
Recommandation générale pour résoudre l'utilisation élevée de la mémoire d'échange.
Pour effacer la mémoire d'échange de votre système, il vous suffit d'arrêter l'échange. Toutes les données de la mémoire d'échange sont ainsi réinsérées dans la mémoire vive. Cela signifie également que vous devez vous assurer que vous disposez de la mémoire vive pour prendre en charge cette opération. Pour ce faire, vous pouvez facilement exécuter free -m pour voir ce qui est utilisé dans le swap et dans la mémoire vive. Une fois que vous l'avez mis hors tension, vous pouvez attendre un laps de temps arbitraire (environ 30 secondes) pour donner le temps de l'opération pour se terminer, puis remettre le swap sous tension. Cette opération efface le cache de mémoire d'échange et le réactive. Voici toutes les commandes dont vous avez besoin.
1. Vérifiez l'utilisation de l'espace swap : # free -m
2. Désactivez l'échange : # swapoff -a
Patientez environ 30 secondes. Exécutez free -m pour voir la quantité de swap utilisée/disponible diminuer au fil du temps.
3. Activez le swap :# swapon -a