2GB内存设备配置优化
2GB内存设备配置优化
简介
本文介绍如何减少2GB内存入门级FortiGate设备在进入内存保护模式前的内存使用率。当前≤2GB设备的型号如下:
30D/30E/30G/40C/40F/50E/50G/60D/60E/61E/60F/61F/70D/80C/80D/80E/81E/90D/91/92D
这类设备的一个突出问题是:基础内存占用就很高(约50% ~ 70%),预留的内存空间有限。一旦遭遇突发事件,如网络流量突然增加、大量并发会话、攻击或短时高峰流量,内存极易飙升至阈值,从而触发“内存保护”模式。进入该模式后,设备会作为保护措施阻止新的连接请求,虽然能避免系统崩溃,但也可能影响业务连续性。这种情况在低端型号中尤为常见,因此必须特别关注内存的合理使用和优化。
查看内存大小
要检查FortiGate的内存大小与使用情况,可在设备CLI下运行diagnose hardware sysinfo memory(或get hardware memory、fnsysctl cat /proc/meminfo)命令,如下所示,FortiGate-60F的总内存大小为2GB:
FortiGate-60F # diagnose hardware sysinfo memory
MemTotal: 1963616 kB
MemFree: 493552 kB
Buffers: 39388 kB
Cached: 537824 kB
SwapCached: 0 kB
Active: 675400 kB
Inactive: 126488 kB
Active(anon): 485728 kB
Inactive(anon): 42588 kB
Active(file): 189672 kB
Inactive(file): 83900 kB
Unevictable: 190276 kB
Mlocked: 20400 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 76 kB
Writeback: 0 kB
AnonPages: 414976 kB
Mapped: 135568 kB
Shmem: 121484 kB
Slab: 209332 kB
SReclaimable: 16468 kB
SUnreclaim: 192864 kB
KernelStack: 3968 kB
PageTables: 31116 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 981808 kB
Committed_AS: 13450496 kB
VmallocTotal: 260046784 kB
VmallocUsed: 126860 kB
VmallocChunk: 259812288 kB优化建议
使用推荐版本或型号
- 建议在网络规划阶段评估业务需求,并根据性能要求选择合适规格的FortiGate型号,以避免后续扩容风险。设备选型请联系[se_china@fortinet.com](mailto: se_china_fortinet.com)。
- 强烈建议在FortiGate上使用推荐的FortiOS版本。推荐版本通常包含对内存相关问题的修复和优化,可提升系统稳定性与可靠性。FortiGate各型号版本推荐请参考:系统管理→固件与配置管理→固件版本管理→固件下载章节。
FortiGuard更新
优化FortiGuard更新相关配置。
config system fortiguard set webfilter-cache-ttl 600 <----减小WebFilter缓存时间,默认值3600 set antispam-cache-ttl 600 <----减小反垃圾邮件缓存时间,默认值1800 set outbreak-prevention-cache-ttl 300 <----减小病毒爆发防御缓存时间,默认值300 set update-ffdb disable <----只在设备未进入“内存保护模式”时更新ISDB end修改FortiGuard更新间隔。
config system autoupdate schedule set frequency daily <----将FortiGuard自动更新间隔增加到每天 set time 03:00 <----FortiGuard自动更新时间为凌晨3:00 end
会话时间
减少TCP会话相关状态的超时时间,更快释放内存。请根据FortiGate的实际流量情况调整以下值:
config system global set reset-sessionless-tcp disable set tcp-halfclose-timer 30 <----减小TCP halfclose超时时间,默认值120 set tcp-halfopen-timer 5 <----减小TCP halfopen超时时间,默认值10 set tcp-timewait-timer 0 <----减小TCP timewait超时时间,默认值1 set udp-idle-timer 60 <----减小UDP超时时间,默认值180 end减少TCP会话和DNS会话的老化时间。
config system session-ttl set default 300 config port edit 0 set protocol 17 set timeout 10 set end-port 53 set start-port 53 next end end
系统配置
关闭安全评级相关功能。
config system global set internet-service-database on-demand <----仅下载已使用的ISDB条目 set security-rating-result-submission disable <----关闭安全评级结果提交 set security-rating-run-on-schedule disable <----关闭安全评级执行计划 end减少部分系统进程的数量。如果FortiGate上某些进程同时运行多个实例,应适当减少其数量(谨慎操作)。
config system global set miglogd-children 1 set sslvpn-max-worker-count 1 set wad-worker-count 1 set scanunit-count 2 end减少DNS缓存条目的老化时间。
config system dns set dns-cache-limit 600 <----DNS缓存条目最大数,默认值5000 set dns-cache-ttl 600 <----DNS缓存条目老化时间,默认值1800 end
日志相关
关闭报告功能。对于2GB或4GB内存型号,不建议启用报告功能,会消耗较多比例的内存。
config report setting set pdf-report disable set fortiview disable end diagnose report-runner clean <----删除之前已生成的报告文件关闭内存日志,关闭硬盘日志记录流量日志,推荐将日志发送到FortiAnalyzer或syslog服务器。
config log memory setting set status disable end config log disk filter set forward-traffic disable end
UTM相关
启用IPS的
fail-open, 设备进入“内存保护模式”后bypass需要检测的流量。config ips global set fail-open enable set cp-accel-mode none end关闭AV启发式扫描。
config antivirus settings set machine-learning-detection disable end缺省的AV扫描文件大小为10 MB,可能会导致内存消耗太多进入“内存保护模式”。根据病毒要求传播快的特点,一般病毒文件都不会太大,所以可以调整扫描文件的大小:
配置自定义的profile-protocol-options,设置各个应用的扫描阈值为1 MB,大于1 MB的文件会被AV bypass:
config firewall profile-protocol-options edit "av-profile-options" set oversize-log enable config http set ports 80 set options clientcomfort servercomfort chunkedbypass unset post-lang set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 set stream-based-uncompressed-limit 2 end config ftp set ports 21 set options clientcomfort splice set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 set stream-based-uncompressed-limit 2 end config imap set ports 143 set options fragmail set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 end config mapi set ports 135 set options fragmail set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 end config pop3 set ports 110 set options fragmail set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 end config smtp set ports 25 set options fragmail splice set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 end config nntp set ports 119 set options splice set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 end config ssh unset options set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 set stream-based-uncompressed-limit 2 end config dns set ports 53 end config cifs set ports 445 unset options set oversize-limit 1 set uncompressed-oversize-limit 2 set uncompressed-nest-limit 2 end next end需要在防火墙策略内调用相应的profile-protocol-options才能生效。
config firewall policy edit <policy_id> set profile-protocol-options av-profile-options next end
自动化重启IPS
结合正常期间的内存占⽤,调整内存利⽤率⾼的阈值,当内存⾼时,⾃动触发IPS engine重启并释放内存。重启IPS engine不会影响业务流量。
降低进入“内存保护模式”的green和red阈值,内存值到达
memory-use-threshold-red设置的75%时,会进⼊“内存保护模式”,当FortiGate进⼊“内存保护模式”后,如果内存在red和extreme之间时,新会话不会被丢弃,继续转发,当内存到达extreme时开始丢弃新会话。config system global set memory-use-threshold-extreme 95 set memory-use-threshold-green 70 <----默认值82 set memory-use-threshold-red 75 <----默认值88 end配置自动化触发器,触发条件为设备进入了“内存保护模式”。
config system automation-trigger edit "Enters_Conserve_Mode" set event-type low-memory next end配置自动化动作,动作内容为重启IPS Engine。
config system automation-action edit "RestartIPS" set action-type cli-script set script "config global <----如果未开启多VDOM,则不需要此行 diagnose test application ipsmonitor 99" set accprofile "super_admin" next end配置自动化工作流,绑定触发条件和动作。
config system automation-stitch edit "Restart_IPS_during_Conserve_Mode" set trigger "Enters_Conserve_Mode" config actions edit 1 set action "RestartIPS" next end next end补充:也可以设置一个周期性重启IPS的自动化(可以与上述脚本同时使用),如下所示,每天凌晨4点重启IPS engine。
config system automation-trigger edit "4AM" set trigger-type scheduled set trigger-hour 4 next end config system automation-action edit "RestartIPS" set action-type cli-script set script "config global <----如果未开启多VDOM,则不需要此行 diagnose test application ipsmonitor 99" set accprofile "super_admin" next end config system automation-stitch edit "RestartIPS" set trigger "4AM" config actions edit 1 set action "RestartIPS" next end next end
注意事项
- 上述优化配置的具体参数应根据您的实际网络状态进行调整。
- 从FortiOS 7.4.4版本开始,从 ≤ 2GB内存的设备上移除了代理相关的功能。
- 从FortiOS 7.6.3版本开始,从 ≤ 2GB内存的设备上移除了部分Security Fabric相关功能。