故障现象:
1.linux数据目录/external/cinder卡死,里面敲ls命令无任何反应
9cccb2263224cb900b21f3175373673

2.由于该盘是存储直接映射过来的。查看映射盘使用空间也正常
333e4b94d0378dcb1cf0ee6f6d88cad

3.查看/var/log/message日志,发现有大量内存分配死锁的记录
image

4.查看内存使用情况,交换空间已经用满。
9588cd675b6ba341588866437412367

5.清理内存后,cinder目录恢复正常
echo 3 > /proc/sys/vm/drop_caches 
image-1726123198371

6.后续解决方案
方案1:升级系统内核
https://access.redhat.com/solutions/532663
红帽官方关于内存分配死锁的建议是升级内核,由于这台机器上面跑了大量kvm虚拟机,担心出问题,释放内存后先观察看看。

方案2:确定系统开始回收内存的阀值
https://www.cnblogs.com/itfriend/archive/2011/12/14/2287160.html
由于内存碎片很多,当某个应用执行时,在xfs 的申请内存中有这种连续的大块的内存申请的操作的请求,就会导致内存一直分配不到。Linux 提供了这样一个参数min_free_kbytes,用来确定系统开始回收内存的阀值,控制系统的空闲内存。值越高,内核越早开始回收内存,空闲内存越高。