在 1 核 1GB 的 Linux 服务器上,资源极其有限,优化核心思路是:减少内存占用、降低 CPU 负载、避免不必要的 I/O 和系统开销。以下是经过验证的实用优化方案:
一、内核与系统层面优化
1. 调整 vm.swappiness
默认值通常为 60,建议设为 10~30,优先使用物理内存而非交换分区(Swap):
# 临时生效
sudo sysctl vm.swappiness=10
# 永久生效
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
2. 限制 Swap 使用(可选但推荐)
若应用对延迟敏感,可进一步限制 swap 写入频率:
sudo sysctl vm.vfs_cache_pressure=50
sudo sysctl vm.dirty_ratio=10
sudo sysctl vm.dirty_background_ratio=5
3. 禁用不必要的服务
检查并关闭非必需服务(如蓝牙、打印、网络管理器冗余模块等):
systemctl list-unit-files --state=enabled
# 禁用不需要的服务
sudo systemctl disable bluetooth cups NetworkManager-wait-online
二、应用层优化
1. 选择轻量级软件栈
- Web 服务:用 Nginx + PHP-FPM(精简配置)或 Go/Node.js 替代 Apache+PHP;
- 数据库:SQLite(小数据量)、Redis(纯内存缓存)、MariaDB(调优版);
- 避免:Java 应用(JVM 内存开销大)、重型框架(如 Laravel/Spring Boot 需大幅裁剪)。
2. 应用配置调优示例(Nginx + PHP-FPM)
nginx.conf:
worker_processes 1;
worker_rlimit_nofile 65535;
events { worker_connections 1024; }
http {
keepalive_timeout 65;
sendfile on;
tcp_nopush on;
gzip off; # 1 核下压缩可能增加 CPU 负担
}
php-fpm.d/www.conf:
pm = static
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 2
request_terminate_timeout = 30s
3. 启用缓存
- 前端:浏览器缓存 + CDN;
- 后端:Redis 缓存热点数据;
- 数据库:合理设置
query_cache_size(MySQL/MariaDB)或启用查询缓存。
三、监控与故障预防
1. 安装轻量监控工具
apt install htop iotop nmon # 避免 top 过多刷新
或使用 prometheus-node-exporter + Grafana(资源占用低)。
2. 日志管理
- 限制日志大小:
logrotate配置每日轮转; - 关闭 DEBUG 日志,仅保留 ERROR/WARN;
- 避免高频写入
/var/log(如每请求写一次)。
3. 定期清理
# 清理旧日志、缓存包
sudo apt autoremove && sudo apt clean
sudo journalctl --vacuum-time=3d
四、额外建议
- 使用 SSD:显著提升 I/O 性能(尤其数据库场景);
- 容器化谨慎:Docker 本身有开销,必要时用 systemd 直接运行进程;
- 考虑升级:若长期瓶颈明显,1 核 1GB 更适合静态站点或简单 API,复杂业务建议至少 2 核 2GB。
✅ 关键原则:一切以“少即是多”为指导——每增加一个功能前,先问:“它是否真的必要?能否用更轻量的方式实现?”
如需针对具体应用场景(如 WordPress、API 服务、定时任务等)提供定制优化方案,欢迎补充说明!
PHPWP博客