• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

防火墙kswapd0进程高

14小时前提问
  • 0关注
  • 0收藏,28浏览
粉丝:0人 关注:3人

问题描述:

防火墙kswapd0进程高是什么原因导致的?如何进行排查?

组网及组网描述:

307 processes; 391 threads; 2650 fds

Thread states: 4 running, 387 sleeping, 0 stopped, 0 zombie

CPU0: 0.01% idle, 12.50% user, 80.81% kernel, 6.68% interrupt, 0.00% steal

CPU1: 50.60% idle, 0.00% user, 39.88% kernel, 9.52% interrupt, 0.00% steal

Memory: 1966M total, 192M available, page size 4K

        JID        PID  PRI  State  FDs     MEM  HH:MM:SS    CPU   Name

         21         21  115    R     0       0K     2683h  33.42%  [kswapd0]

         64         64  115    R     0       0K     1742h  21.66%  [kdrvdp1]

        138        138  120    S    23   25092K      159h   5.36%  diagd

        140        140  120    S    33   35040K      791h   4.01%  syslogd

        282        282  115    S     0       0K  88:15:30   2.46%  [KDNS/1]

        272        272  120    S   465  213360K      488h   1.12%  ntopd

         66         66  115    D     0       0K      127h   0.81%  [kPhyLinkd]

        136        136  100    S   132   58556K      159h   0.70%  dbmd

        151        151  120    S    26   68104K  13:28:43   0.50%  ifmgr

        195        195  120    S    23   13656K  15:51:56   0.50%  moduleproxyd

3 个回答
粉丝:13人 关注:9人

原因分析
kswapd0是Linux内核负责页面置换的进程,高占用通常因内存不足触发频繁换页:
1. 内存资源耗尽:业务流量大导致连接数、会话表项过多,或配置了高内存消耗功能(如深度检测、日志存储)。
2. 内存泄漏:设备软件bug导致内存未释放。
3. 配置不合理:如会话老化时间过长、日志缓存过大。
排查步骤及命令
1. 查看内存使用情况
display memory 查看总内存、已用内存、可用内存;display memory usage 查看内存使用趋势。
2. 检查进程内存占用
display process memory 找出占用内存高的进程(如业务进程、日志进程)。
3. 分析会话与连接数
display session summary 查看会话总数,确认是否超过设备规格;display connection 检查异常连接。
4. 查看交换分区使用
cat /proc/swaps 确认是否启用交换分区,若频繁交换说明内存不足。
5. 检查系统日志
display logbuffer 查找内存不足、进程异常的日志信息。
6. 临时缓解措施
若为临时流量高峰,可调整会话老化时间(session aging-time)或关闭非必要功能;若为内存泄漏,需升级固件版本。
解决建议
升级设备内存(若硬件支持);
优化配置:减少不必要的深度检测、缩短会话老化时间、限制日志缓存大小;
升级到最新稳定固件版本修复已知内存泄漏问题。

暂无评论

粉丝:162人 关注:11人

负责内存的 

暂无评论

粉丝:25人 关注:2人

一、根因结论

kswapd0 是 Linux 内核内存回收守护进程,它持续高占用 CPU(33.42%),只有一个核心诱因:
防火墙物理内存耗尽、可用内存极低(你当前仅剩余 192M 可用内存,总内存 2GB),内核不停疯狂回收内存、将内存页面置换到 Swap 分区,kswapd0 持续循环执行回收逻辑,从而占用大量内核 CPU。
配套现象:CPU0 内核占用高达 80.81%,完全印证内存紧张引发内核疯狂回收。

衍生连带问题

  1. 频繁内存换入换出(Swap),磁盘 / Flash IO 飙升,防火墙转发卡顿、策略加载慢、会话断流;
  2. 内核进程 kdrvdp1 同步升高,属于驱动层受内存不足拖累;
  3. 长期内存过载极易触发进程 OOM 杀死(dbmd、ntopd、syslogd 等业务进程崩溃、防火墙重启)。

二、造成内存吃满的常见 6 类原因(H3C F1000/ACG 防火墙通用)

1. 流量 / 会话规模超出硬件规格(最高发)

防火墙会话表爆满、新建并发过大、长连接(TCP 心跳、物联网设备、VPN 隧道成千上万)堆积,会话表持续占用内存,吃光物理内存。

2. 功能组件开启过多,内存常驻占用

ntopd(流量分析)、diagd 诊断、syslog 本地日志落地、行为审计、病毒查杀、IPS 特征库实时检测、DNS 流量分析 KDNS 全部开启,多个常驻进程叠加消耗内存。
你的进程列表里 ntopd、diagd、syslogd、dbmd、KDNS 全部在运行,叠加占用大量内存。

3. 固件版本内存泄漏 bug

老版本 Comware 存在会话模块、日志模块、ntop 流量分析模块内存泄漏,长时间运行内存只涨不释放,最终内存耗尽触发 kswapd0 狂转。

4. 日志疯狂本地写入

syslogd 大量日志本地存储、崩溃日志 crashinfo 持续落地,不仅占 Flash,日志缓存持续霸占内存。

5. 异常攻击消耗会话与内存

外网 SYN 洪水、端口扫描、大量非法新建连接,瞬间打满会话表内存。

6. 内存硬件隐性故障(极少)

内存颗粒故障导致可用内存异常缩减。

三、分步排查流程(从上到下依次排查)

步骤 1:确认内存、Swap 使用情况

bash
display memory display swap
  1. Free memory 长期低于 300M、Swap 持续处于使用状态 → 确认内存枯竭;
  2. 观察内存走势:display memory history,如果内存缓慢持续下降,基本判定存在内存泄漏

步骤 2:核查会话表占用(首要排查)

bash
display session table statistics display session table total display session table aging-time
  1. 会话数量接近该防火墙规格上限 → 流量过载;
  2. 大量无用长连接、闲置隧道、僵尸会话堆积:调小会话老化时间(TCP 空闲老化默认 300s,可改成 120s):
plaintext
system-view session aging-time tcp idle 120

步骤 3:定位哪个业务进程占用内存最高

你现有进程:ntopd、dbmd、syslogd、diagd 是内存大户
bash
display process memory sort
  1. ntopd(流量深度分析)占用过高:不需要实时流量画像,直接关闭 ntop 流量分析功能,释放大量内存;
  2. dbmd(特征库 / 审计数据库进程)内存持续上涨:IPS、AV、行为审计全开导致。

步骤 4:关闭不必要耗内存的业务组件(快速缓解故障)

① 关闭 NTOP 流量分析(你的环境正在运行 ntopd,占用 213M 内存)

plaintext
system-view undo ntop enable

② 日志优化,禁止本地落地日志(避免日志缓存吃内存)

plaintext
info-center source default logbuffer size 1024 info-center source default logfile disable # 日志只发送远端日志服务器,不本地保存 info-center loghost 你的日志服务器IP

③ 闲置功能关闭:KDNS 流量分析、诊断模块、自动诊断

plaintext
undo kdns enable undo diagnostic enable undo ips auto-update enable # 闲时再升级特征库

④ 临时关闭 IPS/AV 杀毒(业务内网无病毒威胁可临时关闭应急)

plaintext
undo ips enable undo antivirus enable
执行完毕等待 5~10 分钟,空闲内存回升,kswapd0 CPU 占用会自动下降。

步骤 5:排查是否存在内存泄漏

持续观察 24 小时内存曲线:
  1. 关闭冗余组件后,内存依旧缓慢不停下降 → 固件存在内存泄漏 BUG,解决方案:升级官方稳定版本补丁;
  2. 关闭多余组件后内存稳定不再下跌 → 单纯组件开太多导致内存不足。

步骤 6:排查攻击行为

plaintext
display defense statistics display cpu history display session table source untrust top 20
查看外网是否存在高频新建连接、SYN 攻击,开启防火墙 SYN 防护:
plaintext
system-view anti-syn-flood enable

步骤 7:版本核验

老旧版本(R6611、R6612 早期版本)普遍存在 ntop、会话管理内存泄漏,若排查为版本问题,升级至官方修复版本(F1000-AK 系列推荐 R6615P10、R6705 稳定版)。

四、紧急临时处理方案(业务不能断,立刻降负载)

  1. 关闭 ntop、KDNS、本地日志存储;
  2. 缩短 TCP/UDP 会话老化时间,快速回收无效会话内存;
  3. 关闭暂时不用的 IPS、病毒查杀;
  4. 执行 swapoff -a 关闭交换分区(防火墙 Flash 速度极慢,swap 只会加剧 CPU 卡顿);
    做完以上操作,kswapd0 负载通常在几分钟内回落至 0%~2% 正常区间。

五、验证修复是否成功

bash
# 观察kswapd0占用下降 display process cpu sort # 查看可用内存提升 display memory # 确认内核CPU占比回落 display cpu usage
kswapd0 CPU <5%、可用内存恢复至 500M 以上,即为修复完成。

六、长期根治方案

  1. 按需开启功能:只保留安全策略、NAT、必要 VPN,流量分析、审计、杀毒按需分时开启;
  2. 日志全部外置远端服务器,禁止本地写日志;
  3. 存在内存泄漏则升级防火墙固件到官方最新稳定补丁;
  4. 若业务流量长期满载 2G 内存仍然不够,扩容防火墙物理内存或者更换更高规格防火墙。

精简总结

  1. kswapd0 CPU 高 = 内存耗尽,内核不停回收内存
  2. 你的现状:整机 2G 内存只剩 192M 空闲,ntop、日志、KDNS 多组件共同吃光内存;
  3. 应急:关掉 ntop、本地日志、多余安全组件;根治:排查内存泄漏并升级固件、优化会话老化。

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明