温馨提示×

Linux清理内存有哪些方式

小樊
45
2026-10-05 09:19:07
栏目: 智能运维

在 Linux 系统中,“清理内存”通常分为主动释放缓存、结束占用进程、以及系统级调优几种方式。下面按常见场景说明。


一、清理 PageCache / Buffer / inode 缓存(最常见)

Linux 会利用空闲内存做文件缓存,必要时会自动释放,一般无需手动清理。若确实需要(如测试、释放内存):

# 清空 pagecache、dentries、inodes
sync
echo 3 > /proc/sys/vm/drop_caches

参数说明:

  • 1:只清 pagecache
  • 2:清 dentries 和 inodes
  • 3:全部清理

⚠️ 需要 root 权限,且会影响性能(缓存重建需要时间)


二、释放被占用的内存(找进程)

1. 查看内存占用

free -h
top
htop
ps aux --sort=-%mem

2. 杀掉异常进程

kill -9 PID

三、释放 Swap(交换分区)

如果 swap 占用高:

swapoff -a
swapon -a

⚠️ 前提:物理内存足够,否则会 OOM


四、调整系统内存行为(不推荐随意改)

1. swappiness(控制 swap 倾向)

sysctl vm.swappiness=10

2. 限制服务内存(如 Docker、Java)

  • JVM:-Xmx
  • Docker:--memory

五、重启相关服务(替代杀进程)

systemctl restart nginx
systemctl restart mysql

六、不推荐的做法

  • 频繁 drop_caches
  • 盲目杀系统进程
  • 关闭 OOM killer

总结建议

✅ 正常情况:不用清理,Linux 自己管 ✅ 测试/排障:用 drop_caches ✅ 内存不够:加内存 / 限服务 / 查泄漏

如果你有具体场景(如服务器卡顿、Docker、Java 占内存),可以告诉我,我给你更针对性的方案。

0 踩