导读:1G内存的小鸡跑WordPress,流量一来内存就爆?先别急着升配。加Swap、砍服务占用、上前端缓存,三步走完,小内存VPS也能稳稳扛住日均几千IP的访问。这篇附完整命令,照抄就能用。
一、第一步:加Swap,给内存上保险
Swap是磁盘上的“应急内存”。物理内存吃紧时,系统把不活跃的数据挪到Swap里,进程不至于被OOM杀掉。对小内存VPS来说,Swap就是那道保命的防线。
创建2G Swap文件四条命令:
- fallocate -l 2G /swapfile
- chmod 600 /swapfile
- mkswap /swapfile
- swapon /swapfile
想重启后依然生效,把 /swapfile none swap sw 0 0 追加进 /etc/fstab。
两个注意点:一是swappiness参数建议调到10(sysctl vm.swappiness=10),让系统尽量用物理内存、只在真撑不住时才动Swap;二是OpenVZ架构的容器不支持自建Swap,下单前认准KVM架构。
二、第二步:砍掉内存大户
小内存机器上,数据库和PHP进程通常吃掉大半内存,刀口就在这里:
MySQL/MariaDB。 innodb_buffer_pool_size是最大的内存参数,默认配置可能吃400M以上。个人博客128M完全够用,加上 performance_schema 关掉,一套组合拳能省下小300M。
PHP-FPM。 pm.max_children决定PHP进程数上限,每个进程约吃50-80M。1G内存的机器设成4-6最合适,默认值经常是坑。宁可让请求排队,也别让进程把内存吃爆触发OOM连环杀。
不用的服务。 邮件服务、多余的PHP扩展、面板的监控组件,systemctl disable 一波带走。
三、第三步:上缓存,让动态请求变静态
WordPress每个页面请求都要跑PHP、查数据库,这是小内存机器卡顿的根源。缓存的本质:让绝大多数请求不碰PHP。
- 插件层:WP Super Cache或W3 Total Cache,把页面缓存成静态HTML,效果立竿见影
- 服务器层:Nginx的fastcgi_cache,连PHP进程都不用起,并发能力翻好几倍
- 静态资源:图片上CDN,开启WebP转换,流量和内存压力一起减
三层做完,常见的效果是:内存占用从90%降到40%,页面响应从800ms降到80ms。
四、监控与排错
优化前后都用数据说话:
- free -h 看内存,重点看available一列,不是free
- htop 按内存排序,谁在吃一目了然
- dmesg | grep -i oom 查OOM记录,判断之前是不是真的内存不够
如果Swap长期占用超过一半、available常年低于10%,说明优化已经到头,该升配了。
写在最后
小内存VPS的优化顺序:加Swap保命 → 砍数据库和PHP占用 → 上缓存减负 → 盯监控决定是否升配。升级配置永远是最后一步——三步免费操作做完,很多“该升配”的机器其实还能再战一年。你的小鸡内存占用多少?评论区报个数。




