Linux 系统内存不足导致服务崩溃的排查方法

内存不足会直接冻结服务。

查看系统日志查找崩溃原因。
使用上面的命令查看哪个进程消耗的内存最多。

免费使用它查看内存总量和剩余量。
使用vmstat分析实时内存使用情况。
使用 valgrind 检查进程内存泄漏。

首先,杀死占用大量内存的不必要进程。
添加交换空间会有所帮助,但会影响性能。
更改程序代码以使用更少的内存。
使用内核压缩来节省内存。
插入记忆棒是最简单的。

监控工具定期查看内存。
调整内核参数以优化内存。
清除临时文件和日志。
准备内存不足的应急计划。

给自己计时。

Linux系统交换空间使用率100%,内存使用率才7%,为啥?

以下是交换空间使用率达到 1 00% 但内存使用率仅为 7 % 的一些常见原因和解决方案。

1 .懒惰写作 系统通过将不常用的数据移动到交换空间来释放内存。
2 02 0 data: default vm.swappiness=6 0. 调整: echo 1 0 > /proc/sys/vm/swappiness,降低交换频率。

2 .缓存占用 Linux使用内存作为缓存,即使空闲也不会释放它。
2 02 1 年测试:缓存占用内存3 0%到5 0%是很常见的。
解决方案: sudo zswapctl 启用临时清除 zswap 或 echo 3 > /proc/sys/vm/drop_caches。

3 .Memory fragmentation 2 02 2 年报告:碎片率超过4 0%容易触发替换。
Solution: Run sudo defrag or swapon --discard.
4 I/O intensive tasks 2 02 3 案例:数据库服务器vm.swappiness=8 0导致汇率暴涨。
解决方案:iotop识别并优化I/O任务。

5 .プロセス例外 2 01 9 年统计数据:突发内存分配(例如 JVM 垃圾回收)被临时交换。
解决方案:监视 /proc//smaps 是否有无效内存。

6 .システム構成 2 01 8 实践:/etc/fstab挂载不当影响swap。
Check: swapon --show to check swap partition.
Practical reminders 请优先使用free -h查找替换源,并根据场景调整参数。