温馨提示×

ubuntu怎么清理内存

小樊
42
2026-08-18 03:21:34
栏目: 智能运维

在 Ubuntu 里“清理内存”通常分几种情况:释放缓存、释放被占用的内存、结束占用内存的进程。下面按常见场景给你说明(含命令和注意事项)。


一、查看内存使用情况(先看再清)

free -h

htop

(没有 htop 可以 sudo apt install htop


二、清理系统缓存(最常用、安全)

Linux 会自动用空闲内存做缓存(cache / buffer),一般不需要手动清理,但你可以手动释放。

1️⃣ 清理 PageCache、目录项、inode 缓存

sudo sync
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

说明:

  • sync:把内存中未写入磁盘的数据写回磁盘
  • echo 3
    • 1:只清 pagecache
    • 2:清 dentries + inodes
    • 3:全清(最常用)
  • 不会杀进程,不会丢数据

查看效果:

free -h

三、结束占用内存的进程(真正“释放内存”)

如果内存被某个程序吃光了:

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

ps aux --sort=-%mem | head

htop

2️⃣ 结束进程(慎用)

kill PID

强制结束:

kill -9 PID

⚠️ 不要乱杀系统进程(如 systemdgnome-shell


四、释放被占用的 Swap(交换分区)

如果 swap 占满,可以先关再开:

sudo swapoff -a
sudo swapon -a

⚠️ 确保物理内存足够,否则可能卡死


五、重启相关服务(比重启系统更优雅)

例如 Docker、MySQL、Java 程序:

sudo systemctl restart docker
sudo systemctl restart mysql

六、不推荐的做法 ❌

  • 频繁手动清理缓存(系统会自动管理)
  • 使用“内存清理脚本”或第三方工具
  • 盲目 kill 进程

七、什么时候需要清理内存?

✅ 内存被 cache 占满但系统变慢
✅ 测试环境、跑性能测试
✅ 程序异常导致内存泄漏

❌ 日常使用其实不需要


如果你愿意,可以把你现在的 free -h 输出贴出来,我可以帮你判断是不是真的需要清理,或者是不是内存不够了。

0