1. 首页 > 技术教程 > 正文

极限压榨:1 核 1G 内存的小配置 VPS 流畅运行指南

极限压榨:1 核 1G 内存的小配置 VPS 流畅运行指南

别信“1核1G只能吃灰”的鬼话。用好这套 Linux 教程,哪怕是最便宜的小鸡,也能跑稳 WordPress 网站或轻量服务。关键是砍掉系统里吃内存的废物,把资源留给真正干活的东西。

极限压榨:1 核 1G 内存的小配置 VPS 流畅运行指南的图片

系统层面:砍掉不必要的服务和守护进程

1 核 1G 的 VPS,默认装完系统可能内存就吃掉 400MB,这还怎么玩?必须从源头瘦身。

用 `systemd` 禁用开机自启服务

先看看哪些服务在偷跑。

列出所有正在运行的服务,按内存排序

systemctl list-units –type=service –state=running | sort -k5 -n -r

重点关注 `postfix`、`cups`、`avahi-daemon` 这类服务。如果是纯 LAMP/LEMP 环境,直接干掉。

禁用并停止 postfix 邮件服务(多数场景用不到)

systemctl disable postfix –now

禁用并停止 avahi-daemon(零配置网络服务,小鸡上用不到)

systemctl disable avahi-daemon –now

调整 `swappiness`,别让系统乱用 Swap

默认 swappiness 是 60,意味着系统在内存用了 40% 就开始往 Swap 里写。对于 1G 内存的小鸡,这会导致频繁磁盘 I/O,拖慢速度。调低它。

查看当前值

cat /proc/sys/vm/swappiness

临时改为 10

sysctl vm.swappiness=10

永久生效,写入 sysctl.conf

echo "vm.swappiness = 10" >> /etc/sysctl.conf

软件层面:用轻量级组件替换臃肿全家桶

别装什么 `MySQL` + `Apache` 这种重量级选手,1G 内存扛不住。用 `MariaDB` + `Nginx` + `PHP-FPM` 组合,内存占用能砍一半。

安装并优化 Nginx

安装 Nginx(比 Apache 轻太多)

apt install nginx

Nginx 默认配置对 1G 内存来说有点浪费,修改 `/etc/nginx/nginx.conf` 里的 `worker_processes`。

worker_processes 1; # 1核CPU就设1,别设auto,会吃掉更多内存

限制 PHP-FPM 子进程数量

PHP-FPM 是吃内存大户。默认配置可能开几十个进程,每个吃 30-50MB,内存瞬间爆。必须限制。

编辑 `/etc/php/8.x/fpm/pool.d/www.conf`(版本号根据实际来)。

pm = dynamic
pm.max_children = 5 # 最大子进程数,1G内存建议5-8
pm.start_servers = 2 # 启动时创建2个
pm.min_spare_servers = 1 # 最小空闲数
pm.max_spare_servers = 3 # 最大空闲数

改完后重启 PHP-FPM。

systemctl restart php8.x-fpm

日常运维:实时监控内存和进程,发现异常立刻处理

内存不够用,最怕某个进程突然膨胀。写个简单脚本,内存超限就自动重启。

用 `htop` 或 `smem` 定位内存大户

安装 htop(比 top 直观)

apt install htop

按内存排序查看进程

htop -s PERCENT_MEM

如果发现 `mysqld` 吃了 400MB,而你的网站只是个小博客,考虑换 `SQLite` 或者用 `MariaDB` 的 `my.cnf` 配置把 `innodb_buffer_pool_size` 降到 64M。

老鸟叮嘱:千万别碰 `memory_limit` 的坑

很多人为了省内存,把 PHP 的 `memory_limit` 设成 `64M` 或更低。这会导致 WordPress 后台传图、更新插件时直接报 500 错误。正确的做法是:保持 `memory_limit` 在 `256M`,但通过减少 `pm.max_children` 来控制总内存。别问为什么,照着做就行。

常见排障:内存不足时的典型表现和解决办法

现象:SSH 连不上或者敲命令巨卡

大概率是内存被吃光,系统开始疯狂用 Swap。执行 `free -h` 看看 Swap 使用率。如果超过 80%,直接重启服务。

重启 PHP 和 Nginx,释放内存

systemctl restart php8.x-fpm
systemctl restart nginx

现象:WordPress 后台打开慢或报“Allowed memory size exhausted”

这是 PHP 进程内存不够。先检查 `pm.max_children` 是否设得太小。如果总内存还有余量,适当调大 `pm.max_children` 到 8,同时把 `pm.max_requests` 设为 500,让进程定期重启。

FAQ

1. 1 核 1G 的 VPS 能跑 WordPress 吗?

能跑,但必须优化。用 Nginx + PHP-FPM + MariaDB 组合,限制 PHP 进程数,禁用不必要的插件。日 PV 几千的博客完全没问题。

2. Linux 小白可以直接用 root 账号操作吗?

可以,但建议用普通用户 + sudo。万一误操作删了系统文件,root 权限下连恢复的机会都没有。

3. VPS 内存经常被占满,怎么排查?

先用 `top` 看进程,再用 `free -h` 看内存分配。重点查 `mysqld` 和 `php-fpm`,它们是最常见的吃内存大户。

4. 开启 BBR 后为什么速度没有明显提升?

BBR 主要优化网络拥堵,如果你服务器带宽本身就小(比如 1Mbps),或者目标用户离你机房很近,效果不明显。检查一下带宽是否跑满。

5. 1 核 1G 的 VPS 适合装数据库吗?

如果数据库很小(几十 MB),用 SQLite 代替 MySQL/MariaDB。否则,把 `innodb_buffer_pool_size` 降到 64M,并禁用查询缓存。

6. 为什么按教程优化后,内存还是不够?

检查是否装了不必要的软件包,比如 `snapd`、`docker`、`clamav`。这些都是内存杀手,直接卸载。

apt purge snapd –autoremove

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9550.html 商家投稿邮箱:zhujixuanblog@qq.com