一般来说,LNMP(Linux + Nginx + MySQL + PHP)本身并不算“特别吃内存”,但实际内存占用高不高,取决于你跑的是什么业务、配置是否合理。下面分情况说明,方便你判断。
(以 1~2 核、1~4GB 内存 VPS 为例)
| 组件 | 启动后大概内存 | 说明 |
|---|---|---|
| Linux 系统 | 100~300MB | 含系统缓存 |
| Nginx | 10~50MB | 并发高时会略增 |
| MySQL / MariaDB | 100~500MB+ | 最吃内存的组件 |
| PHP-FPM | 20~200MB+ | 和进程数、业务复杂度有关 |
| 缓存(Redis 等) | 可选 | 开了会明显增加 |
✅ 空跑 LNMP(无访问):
通常 300MB~600MB 左右是正常的。
✅ 普通网站(WordPress、Typecho 等):
1GB 内存基本够用。
❌ 如果内存占用很高,通常不是 LNMP 本身,而是配置或业务问题。
innodb_buffer_pool_size 设置太大✅ 建议:
innodb_buffer_pool_size = 128M # 1G 内存服务器
默认配置可能开很多子进程:
pm = dynamic
pm.max_children = 50 # 太多了
✅ 建议:
pm.max_children = 5~10✅ 检查:
top
htop
ps aux | grep php
✅ 建议:
Linux 会把空闲内存用作 文件缓存:
free -h
如果看到:
buff/cache: 很大
available: 还有不少
✅ 这是正常的,不是内存泄漏
free -h
top
重点看:
LNMP 本身不占多少内存,但 MySQL 和 PHP 配置不合理时,很容易“爆内存”。
如果你愿意,可以把下面信息发我,我可以帮你精确分析:
free -h 输出