当前位置:首页>Linux>Linux内存太高别慌!最常用内存命令+安全清理缓存,一篇讲透

Linux内存太高别慌!最常用内存命令+安全清理缓存,一篇讲透

  • 2026-10-11 07:28:36
Linux内存太高别慌!最常用内存命令+安全清理缓存,一篇讲透

很多人一看到linux服务器内存占用90%就紧张:是不是卡了?是不是要崩了?要不要重启?其实linux内存机制和Windows不太一样:它会尽量把空闲内存拿来当缓存,提升读写速度,所以 “used 很高” 不一定是坏事。

今天用最通俗的话,把linux内存查看、监控、进程定位、安全清理缓存 一次性讲完。

一、如何查看linux服务器内存

free -g

重点看三列:

used:进程真正用掉的内存

buff/cache:文件缓存(可回收)

available:真正还能用的内存(最重要)

只要available充足,系统就没问题,used高并不代表内存不足。

二、最常用的7个linux内存命令

1.看总内存:free -g

free -g

2.看详细内核内存:/proc/meminfo

cat /proc/meminfo

3.实时监控 + 按内存排序:top

top

4.更美观的监控:htop

htop

5.看哪个进程吃内存:ps 命令

ps aux --sort=-%mem |head -10

6.系统整体状态(内存 + CPU+IO):vmstat

vmstat 2

7.查看 Swap 使用情况

swapon --show

三、如何安全清理linux缓存

很多人服务器内存高,其实是cache太多,不是真的不够用。

安全清理缓存(root用户)

执行前先sync把数据写磁盘,更安全:

sync

然后按照业务情况在下面三个命令中选择一个进行清理:

1.只清理页缓存

echo 1 > /proc/sys/vm/drop_caches#这个命令最安全 

2.清理目录项 + inode

echo 2 > /proc/sys/vm/drop_caches

3.只清理页缓存全部清理

echo 3 > /proc/sys/vm/drop_caches

执行完再用 free -h 看,buff/cache 立刻下降,建议不要在业务高峰执行,清理缓存后,系统需要重新从磁盘读取数据到缓存,可能导致业务读写速度下降。

清理缓存的判断标准

#只有当以下情况同时满足时,才考虑清理缓存:#1.buff/cache占用超过总内存的70%#2.available小于总内存的20%#3.系统确实出现内存压力(oom或swap频繁使用)

四、swap清理

如果 swap 占用高,可一次性写回内存并清空:

swapoff -a swapon -a

swapoff -a 会将swap中的数据全部写回内存,执行前确保物理内存必须足够,否则可能会卡顿。一般只需前使用free -g,确认available大于swap使用量。

五、通过调整内核参数优化内存使用

编辑 sysctl 配置:

vi /etc/sysctl.conf

加入以下优化(内存更稳、更少用 Swap):

vm.swappiness=10vm.dirty_background_ratio=5vm.dirty_ratio=10vm.min_free_kbytes=102400#调整完成后执行以下命令使得内存调整参数生效 sysctl -p

内核参数说明:

1.vm.swappiness=10

业务服务器、数据库、中间件推荐该值;纯内存密集型服务可设为0.

2. 脏页参数(5/10)

该组合刷盘更激进,能减少内存堆积脏页、避免瞬间io抖动;

  • ssd服务器:影响很小,推荐使用

  • 机械硬盘hdd/高io数据库:不建议设这么低,容易频繁刷盘拉高io,可改为 dirty_background_ratio=10、dirty_ratio=20

3. vm.min_free_kbytes=102400

102400 KB=100 MB,系统强制预留100M空闲内存。

  • 内存小于 4G的小机器:建议调低(如 32768,即 32M),避免预留过多浪费内存;

  • 8G 及以上服务器:100M 预留合理。

六、注意事项

buff/cache高不等于内存不够

生产环境不要频繁清理缓存,会影响性能

真正内存不够:优先加内存、查程序泄漏

可用available判断是否真紧张

linux内存管理其实很智能,看懂这些命令,90% 的内存问题都能轻松解决。如果你觉得文章对你的运维工作有帮助,记得点赞和收藏。

#运维  #linux运维  #linux实战  #linux内存管理

高并发卡顿?别再死磕netstat了!这个Linux 神器,让你排查网络快人一步

别再只懂systemctl 启停了!Systemd 高级玩法全解,让你的运维水平甩开同龄人

Linux od命令详解:运维开发必备的二进制排查神器

最新文章

随机文章