Introducción
Este documento describe el procedimiento para resolver problemas de uso de memoria de intercambio alto con Cisco Policy Suite (CPS).
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
Nota: Cisco recomienda que tenga acceso de raíz con privilegios a CPS CLI.
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- CPS 20.2
- Unified Computing System (UCS)-B
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
El espacio de intercambio en Linux se utiliza cuando la cantidad de memoria física (memoria de acceso aleatorio (RAM)) está llena. Si el sistema necesita más recursos de memoria y la memoria RAM está llena, las páginas inactivas de la memoria se mueven al espacio de intercambio. Aunque el espacio de intercambio puede ayudar a las máquinas con una pequeña cantidad de RAM, no debe considerarse un reemplazo para más RAM. El espacio de intercambio se encuentra en los discos duros, que tienen un tiempo de acceso más lento que la memoria física. El espacio de intercambio puede ser una partición de intercambio dedicada (recomendado), un archivo de intercambio o una combinación de particiones de intercambio y archivos de intercambio.
En años anteriores, la cantidad recomendada de espacio de intercambio aumentó linealmente con la cantidad de RAM del sistema. Sin embargo, los sistemas modernos suelen incluir cientos de gigabytes de RAM. Como consecuencia, el espacio de intercambio recomendado se considera una función de la carga de trabajo de la memoria del sistema, no de la memoria del sistema.
El intercambio de memoria es un método de reclamación de memoria en el que los contenidos de memoria que no se utilizan actualmente se intercambian a un disco para que la memoria esté disponible para otras aplicaciones o procesos. El estado exacto o "página" de la memoria se copia en el disco para que los datos sean contiguos y fáciles de restaurar más adelante.
Al igual que la memoria virtual, el espacio de intercambio es una memoria secundaria. El sistema operativo (SO) lo utiliza cuando no hay memoria física disponible para la ejecución posterior de los procesos. Si el sistema operativo se enfrenta a una situación en la que necesita memoria, pero la memoria RAM está llena, mueve las páginas inactivas de la memoria RAM a la memoria de intercambio.
Para comprobar si hay espacio libre disponible en el equipo, puede utilizar el comando 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 ~]#
Problema
Un mayor porcentaje de uso de intercambio es normal cuando los módulos aprovisionados hacen un uso intensivo del disco. El uso de intercambio alto debe ser una señal de que el sistema experimenta una presión de memoria.
Esta alarma se genera siempre que la memoria de intercambio disponible en la máquina virtual (VM) sea inferior al valor de umbral configurado.
Además, se observa un alto uso de memoria de intercambio en la máquina virtual pcrfclient01 en el momento del evento de resistencia. El diagnóstico falla después de ejecutar diagnostic.sh debido a un problema de memoria de intercambio baja en la máquina virtual 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
Condición: el diagnóstico falla después de ejecutar el archivo diagnostic.sh debido a un problema de memoria de intercambio baja en la máquina virtual pcrfclient.
Procedimiento para resolver problemas de uso elevado de memoria de intercambio con CPS
Enfoque 1.
Solución para el uso elevado de memoria de intercambio que se observa en la máquina virtual pcrfclient01 en el momento del evento de resistencia.
1. Inicie sesión en la máquina virtual pcrfclient y compruebe la memoria del disco mediante el du -sh * comando.
2. Compruebe el uso de la memoria en el directorio/var/lib/carbon/whisper/cisco/quantum. Si se observa un aumento en el uso de memoria, el problema se debe a los archivos de estadísticas.
3. Para recuperar la memoria, elimine los archivos de estadísticas (.wsp) o aumente la memoria del disco de VM.
4. Para recuperar la memoria, elimine las estadísticas manualmente de la carpeta /var/lib/carbon/whisper/cisco/quantum o suprima las estadísticas mediante estos pasos:
- Ejecute
df –h el comando y anote los espacios en disco.
- Ejecute estos comandos:
#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
- Actualice el período de retención (de 90 días a 30 días) que se encuentra al final del archivo. Esto se traduce en un período de retención más agresivo.
Antiguo - retenciones: 10s:1d,60s:90d
Actualizar a - retenciones: 10s:1d,60s:30d
- Después de la actualización del período de retención, ejecute estos comandos:
#monit start carbon-cache
#monit start grafana-server
Nota: Alternativamente, puede utilizar systmctl start/stop/restart command en lugar de monit start/stop/restart command.
- Cree un archivo denominado resize.sh y agregue estos archivos.
#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
- Agregue los permisos necesarios mediante el
chmod 777 resize.sh comando.
- Ejecute
./resize.sh "updated_retention_value"
Comando de ejemplo: #./resize.sh "10s:1d 60s:30d"
- Una vez completada la secuencia de comandos, ejecute estos comandos para confirmar que la cantidad de datos se ha reducido al comparar el resultado anterior y el actual.
#run df –h: disk space should reduce or less than previous result
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
- Verifique que el Grafana muestre las estadísticas de los últimos 30 días y no más de 30 días. (el período de retención actualizado es de 30 días).
Enfoque 2.
Recomendación general para resolver el uso elevado de la memoria de intercambio.
Para borrar la memoria de intercambio en su sistema, simplemente necesita apagar y volver a apagar el intercambio. Esto mueve todos los datos de la memoria de intercambio de nuevo a la RAM. También significa que debe asegurarse de que tiene la memoria RAM para esta operación. Una manera fácil de hacer esto es ejecutar free -m para ver qué se utiliza en el intercambio y en la RAM. Una vez que lo apague, puede esperar una cantidad arbitraria de tiempo (30 segundos más o menos) para dar el tiempo de operación para completar, y luego volver a encender el intercambio. Esto borra la memoria caché de intercambio y la vuelve a habilitar. Aquí están todos los comandos que necesita.
1. Compruebe el uso del espacio de intercambio: # free -m
2. Desactivar intercambio: # swapoff -a
Espere unos 30 seg. Ejecute free -m para ver la cantidad de intercambio utilizado/disponible que disminuye con el tiempo.
3. Activar intercambio:# swapon -a