程序员小王
(程序员小王)
1
你好 我的生产一个机器 200G 内存,部署了其他分布式文件存储系统客户端,最后发现
内存占用150,kill进程后也无法释放,必须重启机器解决。
寻找top 内存时候发现
slabtop SUnreclaim: 占用135G,其中task_strcut占用130,如何解决。
无法部署其他服务。
lab_unreclaimable内存为系统不可回收的内存,当其占用总内存的比例过高时,将会影响可用内存与系统性能。本文介绍如何排查Linux slab_unreclaimable内存占用高的原因。
问题现象
在Linux实例内运行cat /proc/meminfo | grep "SUnreclaim"命令查看SUnreclaim参数指标时,发现内存较大(例如SUnreclaim: 6069340 kB
),当该内存超过系统总内存大小的10%时,系统可能会存在slab内存泄漏。
可能原因
slab内存是内核组件(或驱动)通过调用kmalloc类接口向伙伴系统申请内存,然后内核组件(或驱动)没有正确释放内存所产生的。实例一旦出现slab内存泄漏,且无法通过kill
进程的方式回收内存,则只能通过重启实例解决。
slab内存泄漏会导致实例上运行的业务可用内存变少、内存碎片化,还会引起系统OOM Killer以及系统性能抖
1 个赞
Icemap
(Icemap)
2
您好,这个是什么情况下发生的?部署的是 TiDB、TiKV 还是 PD 呢?
还有混部了什么文件存储系统的客户端呀?
还有我看您这里应该是复制的某篇文章的内容:
lab_unreclaimable内存为系统不可回收的内存,当其占用总内存的比例过高时,将会影响可用内存与系统性能。本文介绍如何排查Linux slab_unreclaimable内存占用高的原因。
能给一下文章的链接嘛?
程序员小王
(程序员小王)
3
这个是部署beegfs存储客户端,没有部署tidb服务,因为服务存在问题,不敢部署tidb。搜索 如何排查Linux slab_unreclaimable内存占用高的原因?
Jiawei
(渔不是鱼)
4
程序员小王
(程序员小王)
5
今天有验证了,自己写shell 不停执行一个命令 不会造成task增加,但是自己执行beegfs客户端命令就会执行 beegfs相关信息。
-
slabtop 查看 task_struct 占用130G,越来越多
特别说明这个走IB网络 Release Notes v7.3.1 — BeeGFS Documentation 7.3.1
-
BeeGFS的客户端是由一个内核模块和两个系统服务组成的
是否可以看看 到 beegfs 相关的论坛求助一下?
system
(system)
关闭
9
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。