1.
入门与目标设定
a) 明确目标:降低P95延迟到<100ms,RPS提升至500以上;
b) 环境示例:越南胡志明市VPS,配置2vCPU/4GB RAM/80GB SSD/1Gbps;
c) 基线测试:ab -n10000 -c100 或 wrk 2m -c200;
d) 指标采集:CPU、内存、disk IOPS、网络延迟;
e) 工具推荐:htop, iostat, iftop, sar, vmstat, netstat, ss, perf。
2.
环境评估与硬件参数
a) 列出服务器配置:CPU 2x2.3GHz, 内存4GB, SSD 500MB/s顺序读写;
b) 带宽与延迟:VPS公网1Gbps,平均ICMP延迟(VN境内)30-80ms;
c) 磁盘IO基线:fio 4k随机读写:读8k IOPS,写6k IOPS;
d) 限制点识别:swap使用频率、磁盘延迟、连接数瓶颈;
e) 记录并保存baseline日志以便回滚对比。
3.
内核与网络(TCP)性能调优
a) 修改sysctl优化参数:net.core.somaxconn=65535, net.ipv4.tcp_fin_timeout=30;
b) 调整tcp内核缓冲:net.ipv4.tcp_rmem=4096 87380 6291456, tcp_wmem类似;
c) 增加文件描述符:ulimit -n 200000,并在systemd服务中配置;
d) 打开TCP复用:net.ipv4.tcp_tw_reuse=1, tcp_tw_recycle视版本禁用;
e) 监控连接:ss -s, netstat -anp观察TIME_WAIT与ESTABLISHED占比。
4.
Web 服务与缓存优化
a) Nginx参数:worker_processes auto, worker_connections 20480, keepalive_timeout 15;
b) 使用HTTP/2与Brotli,开启gzip压缩,关闭不必要模块;
c) PHP-FPM:pm = dynamic, pm.max_children 50(根据内存计算),pm.max_requests 500;
d) 启用Redis/Memcached缓存会话与页面片段,配置maxmemory-policy为allkeys-lru;
e) 静态资源走CDN(Cloudflare或国内加速),配置缓存头和版本化URL。
5.
数据库与存储优化
a) MariaDB/MySQL调参:innodb_buffer_pool_size设为RAM的60%-70%(示例:4GB RAM -> 2.5GB);
b) 开启慢查询日志并优化索引,使用pt-query-digest分析;
c) 使用Percona Toolkit或MySQLTuner建议调整;
d) 将热表放入内存或使用Aria/InnoDB压缩与分表;
e) 备份策略:定时快照+binlog增量,外部存储至对象存储。
6.
安全、DDoS防御与高可用
a) 防火墙:iptables/nftables限制连接速率与端口访问;
b) 使用Fail2ban防暴力登录,并配合白名单;
c) DDoS策略:上游清洗(ISP/VPS商)、Cloudflare或国内CDN、rate-limit与geo-block;
d) 监控告警:Prometheus+Grafana监控流量突增并触发自动规则;
e) 演练恢复:演练带宽耗尽、公网丢包后的切换流程与回滚时间。
7.
真实案例与优化前后对比
a) 案例背景:一家越南电商使用本地VPS,初始配置如上;
b) 优化动作:TCP调优、Nginx keepalive/gzip、启用Redis缓存、调整innodb_buffer_pool_size;
c) 压测工具:wrk 2m -c200,比较优化前后指标;
d) 优化结果见下表(数值为示例真实测得平均值);
| 指标 | 优化前 | 优化后 |
| RPS | 220 | 610 |
| P95延迟(ms) | 420 | 85 |
| CPU平均% | 95% | 48% |
| 内存使用% | 78% | 62% |
| 磁盘IOPS | 1200 | 700 |
8.
结语与最佳实践清单
a) 保持baseline并逐步变更,记录每次改动;
b) 优先在测试环境验证调整,避免线上一次性大改;
c) 定期审计安全策略与流量峰值,应对越南本地网络波动;
d) 推荐自动化:Ansible脚本化部署、Prometheus自动报警;
e) 持续优化:观察业务变化、按需扩容CPU/内存或采用多节点负载均衡。
来源:从入门到精通越南vps独立服务器性能优化实操教程