搬瓦工中文网

VPS性能优化技巧

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使用指南

查看所有教程