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
- 注册Cloudflare账号:https://www.cloudflare.com/
- 添加域名
- 修改DNS服务器为Cloudflare提供的NS记录
- 开启CDN(橙色云朵)
- 配置缓存规则
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配置
下一步
优化完成后,建议:
- 加强服务器安全设置
- 定期监控服务器性能
- 根据访问量调整配置
- 考虑使用付费CDN
- 定期备份数据
通过以上优化,你的搬瓦工VPS性能将得到显著提升!如有任何问题,欢迎联系我们获取技术支持。
立即购买高性能VPS:访问搬瓦工官网