【运维案例】安装方式为虚拟主机时,系统初始内存占用过高问题

产品:openEuler

版本:20.03-LTS-SP3

分类:内存

来源:现网

[背景及现象描述]

客户从centOS7.6(3.10内核)搬迁到openEuler20.03-SP3(4.19内核)后,发现系统初始内存从4.5G增加到了6.6G,因此产生疑问。

[定位过程]

top查看各进程内存,未发现明显进程。


通过meminfo计算内存黑洞,openEuler比centOS多2.1G。按照以往定位经验,内存黑洞主要由驱动引起,依次卸载所有驱动。发现卸载名为i40iw的驱动后,内存下降5.7G。
i40iw

查看centOS,其未加载该驱动。该驱动为Intel X733网卡使用RoCE协议时的驱动。查找拉起该驱动的软件包,找到名为rdma-core的软件包。

[原因分析]

已定位为客户在虚拟化安装模式下安装rdma-core软件包导致。该软件包提供了rdma-load-modules服务,开机会自动加载i40iw等驱动,导致内存增加5.7G左右

[解决方法]

若不用rdma特性,可以将该软件包卸载掉并重启或者卸载i40iw驱动。

[相关知识]

内存黑洞:linux系统中有部分内存是通过直接操作page申请的,/proc/meminfo无法统计到,这部分内存就像黑洞一样。我们可以通过下面公式计算一下黑洞内存的大小:黑洞内存 = MemTotal - MemFree - Active - Inactive - Slab - KernelStack - PageTables - VmallocUsed。

1 Like