温馨提示×

centos cleanup怎么清理内存

小樊
43
2026-09-03 01:12:23
栏目: 智能运维

在 CentOS(以及大多数 Linux 发行版)中,**“清理内存”**通常分为两类:

  1. 释放缓存(cache/buffer) —— 系统自动管理,一般不建议手动清
  2. 释放被进程占用的内存 —— 只能杀进程或重启服务

下面分别说明。


一、查看内存使用情况

free -h

top

你会看到类似:

total   used   free   buff/cache

其中 buff/cache 是系统缓存,不是真的“浪费”


二、清理系统缓存(非必须)

1️⃣ 清理 pagecache / dentries / inodes

sync
echo 3 > /proc/sys/vm/drop_caches

说明:

  • sync:先写盘,防止数据丢失
  • echo 1:只清 pagecache
  • echo 2:清 dentries + inodes
  • echo 3:全部清理

⚠️ 注意

  • 这是临时操作
  • 系统会很快重新缓存
  • 生产环境不建议频繁执行

三、释放“被进程占用”的内存(真实清理)

1️⃣ 找出占用内存高的进程

ps aux --sort=-%mem | head

top

2️⃣ 杀掉异常进程

kill -9 PID

或重启服务:

systemctl restart 服务名

例如:

systemctl restart nginx
systemctl restart mysqld

四、释放 swap(交换分区)

如果 swap 占用高:

swapoff -a
swapon -a

⚠️ 需要先确保物理内存足够,否则会卡死。


五、长期优化建议(比“清理”更重要)

  • 调整 vm.swappiness
sysctl vm.swappiness=10
  • 限制服务内存(如 Docker、Java -Xmx
  • 定期重启异常服务
  • 增加物理内存 / 加 swap

六、常见误区

❌ “CentOS 内存占用高 = 有问题”
✅ 实际:Linux 会尽量用内存做缓存,这是正常的


如果你愿意,可以贴一下:

free -h
top -b -n1 | head -20

我可以帮你具体分析是哪部分内存该清、不该清。

0