您的位置:首页 > 博客中心 > 网络系统 >

RHCA RH442实战系列(二)之Linux buffer内存释放

时间:2022-04-03 11:22

1. 说明

  Linux的内核负责硬件管理,资源调度,进程管理,和资源管理等相关工作,其中内存资源管理做为kernel的一项非常重要的工作。kernel在处理文件时,如打开一个文件,会将文件的元数据信息,即文件名,inode等信息记录在buffer中,后续重复读取相同的文件,则直接冲buffer中读取,这样的机制能够提高速度,此外,对于文件的内容,将会记录在cache中保存,对于buffer和cache,内存会有自动清理的机制,如果buffer和cache一直无法释放,可能导致的原因有:内存泄露,应用程序有问题等原因。

2. 现象说明

  生产环境中,使用了两台大硬盘的机器做glusterfs集群,用于openstack的cinder做volume卷的角色,随着时间的推移,发现两台机器的内存利用率超过了95%,上机器上查看时,发现buffer和cache的利用率非常高,如下:

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         32057      30861       1195          0          6         29
-/+ buffers/cache:          30825       1232            #buffer已经使用了接近30G,只剩下1G左右的空间
Swap:         8191          0       8191

3. 解决方法


    5. 结论

      关于内存的释放,以上通过暴力的方式,直接释放了保存在内存中的inode和pagecache,关于是否造成数据丢失,还在进步一观察中,如果有发现类似的状况,建议重启进程,或检查应用程序是否有内存泄露等问题,至于是否能够执行,请读者谨慎,仅作参考。





    本文出自 “” 博客,转载请与作者联系!

本类排行

今日推荐

热门手游