Este artículo aborda un problema relacionado con la memoria en dispositivos FortiGate, un factor crucial para su rendimiento. La correcta gestión de la memoria no solo afecta la estabilidad del sistema, sino que también es esencial para la seguridad de la red. A través de este contenido, aprenderás a diagnosticar y solucionar problemas de memoria, facilitando el proceso de soporte técnico.
Índice
Descripción del problema
Los problemas de memoria en FortiGate pueden manifestarse de diversas formas, incluyendo disminución del rendimiento y fallos en el sistema. Es vital identificar rápidamente qué áreas de la memoria están afectadas para evitar consecuencias más serias. En este artículo, exploraremos cómo llevar a cabo un diagnóstico efectivo utilizando comandos de línea de comandos (CLI).
Alcance
Este artículo se centra en dispositivos FortiGate y su posible problemática relacionada con la memoria.
Diagnóstico paso a paso
- Áreas de memoria: Un núcleo de Linux distingue diferentes áreas donde se asigna memoria. Consulta la documentación de Linux en proc.txt y busca ‘/proc/meminfo’. En FortiGate, los problemas de memoria más comunes se observan en las siguientes áreas:
- Cached: memoria asignada para operaciones de disco.
- Active: memoria asignada para procesos recientemente activos.
- Shmem: memoria compartida para diferentes procesos que acceden a la misma memoria.
- Slab: memoria asignada por el núcleo.
- Comandos generales de FortiGate para verificar la asignación de memoria:
En FortiGate, el comandoget hardware memorymostrará dónde se asigna la memoria por el núcleo. Este comando es equivalente afnsysctl cat /proc/meminfoodiagnose hardware sysinfo memory, que brindarán la misma información.
Para solucionar cualquier problema de memoria, es recomendable recopilar datos cuando la memoria ya esté asignada, generalmente al alcanzar un uso del 75% de la memoria o más, es decir, cuando ya se está en modo de conservación.
Solución recomendada
Un informe de depuración (igual a execute tac report):
diag debug report
O los siguientes comandos (que ya están incluidos en un informe de depuración, por lo que se prefiere un informe de depuración):
get sys stat
get sys perf stat
get hardware memory
Comandos CLI utilizados
Ejemplo de salida con áreas de memoria destacadas:
get system status
Version: FortiGate-100F v7.6.0,build3401,240724 (GA.F)
Serial-Number: FG100FTK12345678
Hostname: firewall02
Current HA mode: a-p, secondary
Cluster uptime: 533 days, 0 hours, 50 minutes, 55 seconds
Cluster state change time: 2024-08-30 09:47:00
System time: Fri Sep 6 00:01:05 2024
get system performance status
Memory: 3701384k total, 2951756k used (79.7%), 548876k free (14.8%), 200752k freeable (5.5%) <--- 79.7% memory usage
Uptime: 6 days, 14 hours, 16 minutes
get hardware memory
MemTotal: 3701664 kB
MemFree: 2518100 kB
Buffers: 14444 kB
Cached: 341552 kB
Active: 724644 kB
Shmem: 34880 kB
Slab: 152464 kB
Si ocurrió un modo de conservación en el pasado, la salida de get hardware mem se registrará en el crashlog en el momento del evento. Esto ayuda a entender dónde se asignó la memoria en el momento del problema, que puede visualizarse con el comando diag debug crashlog read o en un diag debug report.
Buenas prácticas y recomendaciones
- Si la memoria es alta en cached, recopila datos sobre archivos en el disco.
- Si la memoria es alta en Active, recopila datos sobre procesos en el espacio de usuario activos.
- Si la memoria es alta en Shmem, recopila datos sobre memoria compartida y archivos en el disco.
- Si la memoria es alta en Slab, recopila información sobre slabs.
fnsysctl df -h
fnsysctl du -d 1 -a
diagnose sys top-mem 99
diagnose hardware sysinfo shm
diag hardware sysinfo slab
Con estos detalles iniciales recogidos mientras la memoria está asignada (superior al 75%), se puede aislar rápidamente la causa raíz. Ten en cuenta que el consumo base de memoria para dispositivos más pequeños con 2 GB o menos puede ser alto. Es recomendable implementar optimizaciones de memoria para evitar el modo de conservación.
Notas adicionales
Para ejecutar, el comando fnsysctl requiere acceso Super_admin (cuenta de administrador con perfil de permisos super_admin). FortiGate producirá un error de otro modo. Para más información, consulta este artículo de KB: Technical Tip: fnsysctl command returns Unknown action 0.
¿Te ha resultado útil??
0 / 0

Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!