搬瓦工中文网

搬瓦工VPS性能优化终极指南 - 系统加速、BBR开启与内核参数调优

VPS性能优化技巧

本教程将介绍如何全面优化搬瓦工VPS性能,包括系统调优、网络加速、内存优化、硬盘优化等方面,帮助你充分发挥VPS的最大性能。

为什么需要优化VPS

  • 提升访问速度:减少网页加载时间
  • 降低资源消耗:相同配置承载更多访问
  • 提高稳定性:减少宕机和错误
  • 节省成本:优化后可能无需升级配置

性能测试工具

在优化前后,使用这些工具测试性能变化:

系统性能测试

# 安装测试工具
curl -Lso- bench.sh | bash

# 或使用综合测试
wget -qO- bench.sh | bash

会测试:

  • CPU性能
  • 内存读写速度
  • 硬盘I/O性能
  • 网络下载速度

网络速度测试

# 安装speedtest-cli
apt install -y speedtest-cli # Ubuntu/Debian
yum install -y speedtest-cli # CentOS

# 测试速度
speedtest-cli

网站性能测试

  • Pingdom:https://tools.pingdom.com/
  • GTmetrix:https://gtmetrix.com/
  • WebPageTest:https://www.webpagetest.org/
  • Google PageSpeed:https://pagespeed.web.dev/

一、TCP网络优化

1. 开启BBR拥塞控制算法

BBR是Google开发的TCP拥塞控制算法,可大幅提升网络速度,特别是在高延迟网络环境下。

检查内核版本(BBR需要4.9+):

uname -r

升级内核(如需要):

# Ubuntu/Debian
apt update
apt install -y linux-image-generic

# CentOS 7
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y

开启BBR

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

验证BBR是否开启

sysctl net.ipv4.tcp_congestion_control
# 输出:net.ipv4.tcp_congestion_control = bbr

lsmod | grep bbr
# 输出:tcp_bbr 20480 1

想要更快的速度?升级到搬瓦工高性能VPS

立即购买
高速稳定
即开即用
安全可靠

2. TCP参数优化

编辑 /etc/sysctl.conf,添加以下优化参数:

nano /etc/sysctl.conf

添加:

# TCP连接优化
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

# 网络缓冲区优化
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864

# 连接队列优化
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 65535

# 快速回收TIME_WAIT连接
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 1024 65000

# TCP窗口缩放
net.ipv4.tcp_window_scaling = 1

应用配置:

sysctl -p

3. 使用TCP Fast Open

echo 3 > /proc/sys/net/ipv4/tcp_fastopen
echo "net.ipv4.tcp_fastopen = 3" >> /etc/sysctl.conf

二、Web服务器优化

Nginx优化

编辑Nginx配置:

nano /etc/nginx/nginx.conf

1. Worker进程优化

# 自动检测CPU核心数
worker_processes auto;

# 单个worker最大连接数
events {
 worker_connections 4096;
 use epoll;
 multi_accept on;
}

2. 启用Gzip压缩

http {
 # Gzip压缩配置
 gzip on;
 gzip_vary on;
 gzip_comp_level 6;
 gzip_min_length 1000;
 gzip_proxied any;
 gzip_types
 text/plain
 text/css
 text/xml
 text/javascript
 application/json
 application/javascript
 application/xml+rss
 application/rss+xml
 font/truetype
 font/opentype
 application/vnd.ms-fontobject
 image/svg+xml;
 gzip_disable "msie6";
}

3. 启用浏览器缓存

http {
 # 静态资源缓存
 location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
 expires 365d;
 add_header Cache-Control "public, immutable";
 }

 # HTML不缓存
 location ~* \.(html)$ {
 expires -1;
 }
}

4. 启用HTTP/2

server {
 listen 443 ssl http2;
 # ... 其他配置
}

5. 配置缓存

http {
 # FastCGI缓存路径
 fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
 fastcgi_cache_key "$scheme$request_method$host$request_uri";

 server {
 # 启用缓存
 location ~ \.php$ {
 fastcgi_cache WORDPRESS;
 fastcgi_cache_valid 200 60m;
 fastcgi_cache_bypass $skip_cache;
 fastcgi_no_cache $skip_cache;
 }
 }
}

6. 优化缓冲区

http {
 client_body_buffer_size 128k;
 client_max_body_size 64m;
 client_header_buffer_size 1k;
 large_client_header_buffers 4 16k;
 output_buffers 1 32k;
 postpone_output 1460;
}

重启Nginx:

nginx -t # 测试配置
systemctl reload nginx

Nginx优化完成!需要更强性能?考虑升级VPS配置

立即购买
高速稳定
即开即用
安全可靠

Apache优化

如使用Apache,进行以下优化:

1. 启用MPM Event

# 禁用prefork
a2dismod mpm_prefork

# 启用event
a2enmod mpm_event

2. 配置MPM参数

编辑 /etc/apache2/mods-available/mpm_event.conf

<IfModule mpm_event_module>
 StartServers 2
 MinSpareThreads 25
 MaxSpareThreads 75
 ThreadLimit 64
 ThreadsPerChild 25
 MaxRequestWorkers 150
 MaxConnectionsPerChild 3000
</IfModule>

3. 启用压缩和缓存

a2enmod deflate
a2enmod expires
a2enmod headers

systemctl restart apache2

三、PHP性能优化

1. 启用OPcache

编辑PHP配置文件:

# Ubuntu/Debian
nano /etc/php/8.1/fpm/php.ini

# CentOS
nano /etc/php.ini

添加OPcache配置:

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.save_comments=1

2. 调整PHP-FPM参数

编辑 /etc/php/8.1/fpm/pool.d/www.conf

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

# 内存限制
php_admin_value[memory_limit] = 256M

计算公式

pm.max_children = 可用内存 / 单个PHP进程内存

查看单个进程内存:

ps aux | grep php-fpm | awk '{sum+=$6} END {print sum/NR/1024 " MB"}'

3. 重启PHP-FPM

systemctl restart php8.1-fpm

四、MySQL/MariaDB优化

1. 优化配置文件

编辑 /etc/mysql/my.cnf/etc/my.cnf

[mysqld]
# 缓冲池大小(建议为总内存的50-70%)
innodb_buffer_pool_size = 512M

# 日志文件大小
innodb_log_file_size = 128M

# 查询缓存(MySQL 5.7及以下)
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M

# 连接优化
max_connections = 200
max_connect_errors = 10000
connect_timeout = 10

# 临时表
tmp_table_size = 64M
max_heap_table_size = 64M

# 线程缓存
thread_cache_size = 8

# 表缓存
table_open_cache = 4096

# 慢查询日志
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

2. 优化数据库

# 登录MySQL
mysql -u root -p

# 执行优化
OPTIMIZE TABLE wp_posts;
OPTIMIZE TABLE wp_postmeta;
OPTIMIZE TABLE wp_comments;
OPTIMIZE TABLE wp_options;

# 或优化所有表
mysqlcheck -u root -p --auto-repair --optimize --all-databases

3. 重启MySQL

systemctl restart mysql

数据库优化后仍然慢?升级到更大内存的VPS

立即购买
高速稳定
即开即用
安全可靠

五、内存优化

1. 创建Swap交换空间

如果VPS内存较小(1GB以下),建议创建Swap:

# 创建2GB Swap文件
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

# 开机自动挂载
echo '/swapfile none swap sw 0 0' >> /etc/fstab

# 调整Swap使用策略(0-100,越小越倾向使用内存)
sysctl vm.swappiness=10
echo 'vm.swappiness=10' >> /etc/sysctl.conf

2. 清理缓存

# 释放PageCache
sync; echo 1 > /proc/sys/vm/drop_caches

# 释放dentries和inodes
sync; echo 2 > /proc/sys/vm/drop_caches

# 释放所有缓存
sync; echo 3 > /proc/sys/vm/drop_caches

3. 监控内存使用

# 实时监控
free -h

# 详细信息
vmstat 1 5

# 进程内存使用
ps aux --sort=-%mem | head -10

六、硬盘I/O优化

1. 使用noatime挂载选项

编辑 /etc/fstab

nano /etc/fstab

relatime 改为 noatime

/dev/vda1 / ext4 defaults,noatime 0 1

重新挂载:

mount -o remount /

2. 调整I/O调度器

# 查看当前调度器
cat /sys/block/vda/queue/scheduler

# SSD使用noop或deadline
echo noop > /sys/block/vda/queue/scheduler

# 永久生效
echo 'echo noop > /sys/block/vda/queue/scheduler' >> /etc/rc.local
chmod +x /etc/rc.local

3. 测试硬盘性能

# 写入测试
dd if=/dev/zero of=/tmp/test bs=1M count=1024 oflag=direct

# 读取测试
dd if=/tmp/test of=/dev/null bs=1M count=1024 iflag=direct

# 清理
rm -f /tmp/test

七、CDN加速

使用Cloudflare CDN

  1. 注册Cloudflare账号:https://www.cloudflare.com/
  2. 添加域名
  3. 修改DNS服务器为Cloudflare提供的NS记录
  4. 开启CDN(橙色云朵)
  5. 配置缓存规则

Cloudflare优化设置

  • SSL/TLS:完全(严格)
  • 自动HTTPS重写:开启
  • Brotli压缩:开启
  • HTTP/3:开启
  • 缓存级别:标准或积极
  • 浏览器缓存TTL:4小时或更长

八、WordPress专项优化

1. 安装缓存插件

推荐插件:

  • WP Super Cache(简单)
  • W3 Total Cache(功能强大)
  • WP Rocket(付费,效果最好)

2. 图片优化

  • Smush:自动压缩图片
  • EWWW Image Optimizer:批量优化
  • ShortPixel:高质量压缩

3. 数据库优化

  • WP-Optimize:清理数据库
  • 定期清理修订版本、草稿、垃圾评论

4. 禁用不必要功能

wp-config.php 中添加:

// 禁用文章修订
define('WP_POST_REVISIONS', false);

// 或限制修订数量
define('WP_POST_REVISIONS', 3);

// 禁用自动保存
define('AUTOSAVE_INTERVAL', 300);

// 清空回收站间隔
define('EMPTY_TRASH_DAYS', 7);

5. 延迟加载

启用图片延迟加载(WordPress 5.5+已内置):

// 或使用插件
// a3 Lazy Load
// Lazy Load by WP Rocket

九、安全优化

1. 禁用不必要的服务

# 查看正在运行的服务
systemctl list-unit-files --type=service --state=enabled

# 禁用不需要的服务
systemctl disable postfix # 如不需要邮件服务

2. 限制SSH登录尝试

安装fail2ban:

apt install -y fail2ban # Ubuntu/Debian
yum install -y fail2ban # CentOS

systemctl start fail2ban
systemctl enable fail2ban

3. 配置防火墙

# 使用UFW (Ubuntu)
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

# 或使用firewalld (CentOS)
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

十、监控和维护

1. 安装监控工具

# 安装htop
apt install -y htop # Ubuntu/Debian
yum install -y htop # CentOS

# 安装iotop(监控I/O)
apt install -y iotop

# 安装nethogs(监控网络)
apt install -y nethogs

2. 设置定时任务

crontab -e

添加定时任务:

# 每天凌晨3点优化数据库
0 3 * * * mysqlcheck -u root -pYOUR_PASSWORD --auto-repair --optimize --all-databases

# 每周日凌晨4点清理缓存
0 4 * * 0 sync; echo 3 > /proc/sys/vm/drop_caches

# 每小时重启PHP-FPM(如有内存泄漏)
0 * * * * systemctl restart php8.1-fpm

3. 日志管理

定期清理日志文件:

# 清理旧日志
find /var/log -type f -name "*.log" -mtime +30 -delete

# 或使用logrotate自动管理
nano /etc/logrotate.d/nginx

性能测试对比

优化前后使用以下工具测试:

1. 网站加载速度

  • 使用GTmetrix测试首屏加载时间
  • 目标:< 2秒(优秀)

2. 服务器响应时间(TTFB)

  • 使用WebPageTest测试TTFB
  • 目标:< 200ms(优秀)

3. 并发处理能力

# 安装Apache Bench
apt install -y apache2-utils

# 测试100并发,1000请求
ab -n 1000 -c 100 http://yourdomain.com/

优化效果预期

经过全面优化后,通常可以获得:

  • 页面加载速度提升:30-70%
  • 服务器响应时间降低:40-60%
  • 并发处理能力提升:2-5倍
  • 资源占用降低:20-40%
  • 网站稳定性提高:减少宕机

常见问题

1. 优化后反而变慢了?

  • 检查缓存配置是否正确
  • 某些参数可能设置过大,超出VPS能力
  • 逐步调整,每次只改一项

2. 内存占用还是很高?

  • 减少PHP-FPM的max_children
  • 降低MySQL的buffer_pool_size
  • 创建Swap空间

3. 网站经常502/504错误?

  • 增加PHP-FPM超时时间
  • 调大Nginx的fastcgi_read_timeout
  • 升级VPS配置

下一步

优化完成后,建议:

  1. 加强服务器安全设置
  2. 定期监控服务器性能
  3. 根据访问量调整配置
  4. 考虑使用付费CDN
  5. 定期备份数据

通过以上优化,你的搬瓦工VPS性能将得到显著提升!如有任何问题,欢迎联系我们获取技术支持。

立即购买高性能VPS:访问搬瓦工官网

准备好开始了吗?

立即购买搬瓦工VPS,体验高速稳定的服务器

高速稳定
即开即用
安全可靠

探索更多教程

查看完整的搬瓦工VPS使用指南

查看所有教程