可能与bio和btrfs相关的slab内存泄漏吗?

可能与bio和btrfs相关的slab内存泄漏吗?

我目前正在对发生驱动器故障的 btrfs NAS (~20TB) 进行重建。这需要几天的时间。我的问题是大约每 24 小时 RAM 就会被填满,内核就会开始终止进程​​,直到整个系统崩溃。

htop将其显示为用户进程内存使用情况,但没有用户进程显示任何显着的内存使用情况:

在此输入图像描述

free将其显示为缓冲/缓存 RAM:

# free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        923M        1.0G         16M         13G        5.0G
Swap:          7.9G          0B        7.9G

我终于找到了它slabtop

正如你所看到的,bioslab 的使用量非常大。运行sync && echo 3 > /proc/sys/vm/drop_caches会清除使用情况,但完全dentry不影响。bio

该 NAS 运行基于 CentOS 的 Rockstor。有问题的机器位于 kernel 上4.4.5-1.el7.elrepo.x86_64。在 RAM 使用量达到进程开始被终止的程度之前,内核消息中没有任何值得注意的内容。

这是 BTRFS 或内核中的内存泄漏错误吗?如果这是一个需要报告的错误,我如何确定将其报告给哪个包?

有没有办法清除缓存使用情况,bio以便我可以完成此 RAID 重建,而无需在系统因 RAM 不足而崩溃时每天重新启动一次?

出于病态的好奇心,如果这是内核缓存,为什么将htop其报告为用户进程内存使用情况(绿色条)?

相关内容