buffer/cach太高导致k8s无法新建pod分配内存

1.使用hcache查看buff/cache占用情况
执行下面的命令安装hcache ,原hcache项目地址 https://github.com/silenceshell/hcache

wget https://silenceshell-1255345740.cos.ap-shanghai.myqcloud.com/hcache
chmod +x hcache
mv hcache /usr/local/bin/

查看缓存排名前十的进程

hcache -top 10

 

2.清理journal系统服务日志释放buff/cache
journalctl 清理日志有 -vacuum-size和 -vacuum-time两个 选项

使用 -vacuum-size 选项, 可硬性指定日志的总体体积,意味着其会不断删除旧有记录直到所占容量符合要求

sudo journalctl --vacuum-size=1G

使用 -vacuum-time 选项, 任何早于这一时间点的条目都将被删除。例如,去年之后的条目才能保留:

sudo journalctl --vacuum-time=1years

3.在保证了数据一致性的前提下还可以使用下面的命令清理buff/cache,谨慎使用

sync #描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-Node、已延迟的块 I/O 和读写映射文件

sync; echo 1 > /proc/sys/vm/drop_caches #表示清除pagecache。
sync; echo 2 > /proc/sys/vm/drop_caches #表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
sync; echo 3 > /proc/sys/vm/drop_caches #表示清除pagecache和slab分配器中的缓存对象。

 



 



posted @   潇潇暮鱼鱼  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示