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

交换机内存使用率84%告警

23小时前提问
  • 0关注
  • 0收藏,41浏览
粉丝:0人 关注:0人

问题描述:

 

查看进程comsh多个会话存在,重启ssh服务后,登录查看3个会话还在,内存无法释放,这个怎么能释放掉3个comsh僵尸回话?

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

1、先定位异常会话:执行display process comsh all,查看所有comsh进程的PID、关联的登录会话ID、创建时长,标记出非当前运维登录的僵尸残留会话。
2、优先释放会话:执行free user <僵尸会话ID>,正常可直接回收会话资源,释放对应内存。
3、若会话无法释放,执行kill pid <异常comsh子进程PID>,仅终止僵尸子进程,注意不要杀掉主comsh进程,避免影响正常CLI服务。
4、以上操作均无效时,业务低峰期保存配置后执行reset process comsh,重启comsh进程,所有残留僵尸会话会被全部清空,该操作仅会踢掉所有在线CLI登录用户,不影响数据转发业务,内存可立刻回落至正常区间。
如果该问题频繁复现,建议将设备Comware版本升级到官方最新稳定版,修复低版本存在的comsh会话僵死不释放的已知缺陷。

暂无评论

粉丝:10人 关注:2人

交换机 comsh 僵尸会话占内存 解决方案

先给结论:comsh 进程就是 SSH/Telnet/Console 会话进程,你遇到的是会话僵死后未正常释放导致的内存泄漏,直接用命令清理,不用重启设备。

一、先搞清楚:comsh 是什么?

comsh 是 H3C Comware 系统里的 命令行会话进程,对应:
  • SSH 登录会话
  • Telnet 登录会话
  • Console 口本地会话
每个登录会话都会生成一个 comsh 进程,正常退出时进程会自动销毁、释放内存;
如果会话异常断开(比如网络断了、直接关终端),进程会变成僵尸会话,一直占着内存不释放,你看到的 3 个 comsh 就是这种情况。

二、直接清理:杀死僵尸 comsh 会话(不影响业务)

1. 先看当前所有会话,确认哪些是僵尸的

bash
运行
display users display line users
输出里会列出所有会话的:
  • 会话 ID(Line)
  • 登录方式(SSH/Telnet/Console)
  • 登录时间、空闲时间
  • 会话状态(Idle/Active)

2. 强制关闭异常会话(推荐,安全不重启)

找到僵尸会话的 Line 号,用下面的命令强制关闭:
bash
运行
free user-interface vty X # 或 kill user-interface vty X
注意:vty 对应 SSH/Telnet 会话,console 对应本地口,别把自己当前会话关了!
关闭后,对应的 comsh 进程会被销毁,内存会立刻释放。

三、如果 free user-interface 清不掉(极端情况)

可以直接 kill comsh 进程(仅 Comware V7 支持,不影响业务转发):
bash
运行
# 先确认进程ID(PID) display process # 强制杀死进程(替换为你看到的 comsh PID) kill pid 389697 kill pid 389701 kill pid 389702
执行后,这几个僵尸进程会被终止,内存占用会立刻下降。

四、如何避免以后再出现?

1. 开启会话超时自动释放(必做)

配置 SSH/Telnet 会话空闲超时,自动清掉不活跃会话:
bash
运行
# 设置空闲超时时间(单位:分钟,推荐 10-30) user-interface vty 0 15 idle-timeout 10 0
这样会话空闲超过 10 分钟,会自动被系统释放,不会变成僵尸会话。

2. 限制最大登录会话数

bash
运行
user-interface vty 0 15 authentication-mode scheme user privilege level 3 screen-length disable idle-timeout 10 0
避免过多会话同时在线,降低僵尸会话概率。

五、如果以上都无效(终极方案)

如果内存一直居高不下,说明还有其他内存泄漏进程:
  1. 升级交换机固件到最新稳定版(老版本存在 comsh 内存泄漏 bug)
  2. 重启交换机(业务窗口操作,会短暂中断)

六、操作注意事项

  • 操作时别把自己当前的会话关了,先确认 display users 里自己的会话 ID;
  • free user-interface,再 kill pid,尽量不用重启;
  • 开启 idle-timeout 是治本的办法,避免以后再出现。

暂无评论

粉丝:16人 关注:1人

这种进程“假死”占用内存的情况,通常是相关的远程会话没有正常关闭,或是特定版本下的小概率问题。既然SSH重启未能释放,可以按风险从低到高尝试下面的方法。


 第一步:尝试快速恢复 (影响小)

这种方法风险较低,主要是让设备自身尝试清理。

  • 强制终止异常进程:你可以尝试通过命令行手动重启该进程。Comware系统支持手动重启用户态进程,comsh就属于此类

    <H3C> system-view
    [H3C] process restart comsh重要提醒:此操作会瞬间中断所有命令行会话,请务必从Console口执行。


 第二步:深入排查根因 (需细致)

如果第一步不奏效,则需要进一步排查。

  • 查看异常会话来源:检查comsh会话的详细信息,看是否有长期空闲或来自异常IP的连接。

    <H3C> display process all | include comsh
    <H3C> display tcp | include 22
  • 版本确认与升级comsh进程导致内存异常可能是特定版本的已知问题。建议确认当前版本是否为官方推荐的稳定版本。


 第三步:最终手段 (计划内重启)

如果上述方法均无效,且内存使用率持续走高,最终解决方案是在业务允许的窗口期内重启设备。这是恢复系统最彻底的方法。


 预防建议

  • 监控与告警:部署SNMP监控,用于监控内存趋势,在问题初期及时告警。

  • 账号管理:为运维人员配置独立账号,做到操作可追溯。

  • 定时重启:对于核心层以下的设备,在极低业务时段(如凌晨3点)执行定时重启,是防止内存泄漏积累的有效手段。

暂无评论

编辑答案

你正在编辑答案

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

分享扩散:

提出建议

    +

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

确定

亲~检测到您登陆的账号未在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. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

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

不规范转载

×

举报说明