1.
准备与初始检查
- 登录:通过SSH连接(示例:ssh root@your.ip.address -p 22)。
- 系统信息:uname -a;cat /etc/os-release;lsblk;df -h。记录内核、发行版、磁盘分区与挂载点。
- 网络带宽测试:apt/yum安装iperf3或使用speedtest-cli:iperf3 -c ip_or_server 或 speedtest-cli --server
。
2.
系统更新与基础软件安装
- 更新包管理器:Debian/Ubuntu:apt update && apt -y upgrade;CentOS:yum -y update。
- 安装常用工具:apt install -y wget curl vim htop iftop iotop vnstat ethtool git;或对应yum命令。
- 设置时区与本地化:timedatectl set-timezone Asia/Hong_Kong。
3.
内核与TCP调优(开启BBR并优化内核参数)
- 检查内核是否支持BBR:sysctl net.ipv4.tcp_congestion_control;lsmod | grep bbr。
- 启用BBR(示例适用于Debian/Ubuntu):echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf;echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf;sysctl -p。
- 常用sysctl建议(加入/etc/sysctl.conf):net.core.netdev_max_backlog=250000;net.core.somaxconn=65535;net.ipv4.tcp_max_syn_backlog=8192;net.ipv4.tcp_fin_timeout=30。执行sysctl -p生效。
4.
网卡与卸载、巨帧与中断绑定
- 关闭/开启网卡卸载(视测试结果决定):ethtool -K eth0 gro off gso off tso off;测试延迟变化再决定保留。
- 设置MTU(根据运营商建议,CN2通常使用1500或更高):ip link set dev eth0 mtu 1500。
- 中断绑定(单核/多核优化):安装irqbalance或手动绑定:cat /proc/interrupts;echo > /proc/irq//smp_affinity。
5.
磁盘与文件系统优化(针对500G盘)
- 确认分区:lsblk;若新盘,使用fdisk或gdisk分区。示例:parted /dev/vdb mklabel gpt mkpart primary 0% 100%。
- 格式化与挂载优化:mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/vdb1;编辑/etc/fstab添加 noatime,nodiratime,discard(若SSD支持)。示例行:/dev/vdb1 /data ext4 defaults,noatime,nodiratime,discard,errors=remount-ro 0 2。
- I/O调度器:echo noop > /sys/block/vdb/queue/scheduler(对于SSD);使用iostat/iotop监测。
6.
内存与交换分区调优
- 关闭或调小swap:swapoff -a;修改/etc/fstab移除swap条目(若内存充足)。
- 调整swappiness:sysctl vm.swappiness=10,并写入/etc/sysctl.conf。
- 使用tmpfs挂载临时目录:mount -t tmpfs -o size=1G tmpfs /tmp(根据内存大小设置),减少磁盘写入。
7.
服务优化:Web/缓存/数据库配置建议
- Nginx:worker_processes auto;worker_connections 10240;keepalive_timeout 15;开gzip并合理配置缓存头。
- PHP-FPM:pm = dynamic;pm.max_children 视内存评估(总内存 / 单进程占用);pm.max_requests 500。
- MySQL/MariaDB:调整innodb_buffer_pool_size(占物理内存60%-70%);query_cache_size 0(若使用新版本)。
8.
安全与防护配置
- 防火墙:使用ufw或iptables设置仅开放必要端口(22/80/443等),并限制SSH来源IP或改端口。示例:ufw allow 443/tcp;ufw limit 22/tcp。
- Fail2ban:安装并启用防暴力破解,调整jail.local规则。
- 禁用root密码登录:编辑/etc/ssh/sshd_config,PermitRootLogin no;同时确保有非root sudo用户后再重启sshd service sshd restart。
9.
监控与带宽计量
- 安装vnStat:apt install -y vnstat;vnstat -u -i eth0;systemctl enable --now vnstat。用于长期带宽统计。
- 使用prometheus+node_exporter或Netdata做实时监控,或简单的htop/iftop/iostat排查性能瓶颈。
- 设置日志轮转与磁盘配额,避免日志占满500G磁盘:logrotate配置并定期清理。
10.
备份与快照策略
- 定期备份重要数据:rsync到远程备份机或使用oss/s3对象存储,示例:rsync -az --delete /data backup@remote:/path。
- 自动快照:如果VPS提供商支持快照,设置每日/每周快照保留策略,配合备份脚本。
11.
性能验证与压力测试
- 并发/带宽测试:使用wrk或ab对Web服务压测(注意不要对生产环境做过激测试)。wrktest示例:wrk -t4 -c100 -d30s http://your.site/。
- 网络稳定性:使用mtr目标IP持续观察丢包和延迟:mtr -rw target_ip。
12.
常见问题排查清单
- 高延迟:检查路由/ISP,使用traceroute与mtr定位跳点;排查中间丢包。
- 磁盘占用剧增:du -sh /* 或 ncdu /,查看大文件与日志;设置logrotate和自动清理。
- 连接被限制:确认防火墙、fail2ban或云平台安全组是否误拦截。
13.
问:使用香港CN2链路时,如何最大化带宽与稳定性?
答:优先启用并测试BBR以改善拥塞控制;关闭或调整网卡卸载(GRO/GSO/TSO)并测试延迟;设置合适MTU和中断绑定;使用traceroute/mtr定位路径问题,必要时联系机房更换线路或ASN,结合CDN分流静态资源以降低回源压力。
14.
问:500G磁盘常见挂载与文件系统最佳实践是什么?
答:建议使用ext4或xfs(根据读写特性选择),挂载时启用noatime/nodiratime减少写入,SSD启用discard或定期fstrim;对日志和临时文件使用独立分区或tmpfs,配置logrotate避免日志填满磁盘。
15.
问:部署完成后如何持续监控并快速响应异常?
答:部署vnStat、node_exporter/Prometheus或Netdata做实时监控,结合报警(邮件/钉钉/Slack)。配置cron定期健康检查脚本(HTTP返回、磁盘剩余、swap使用率),并在阈值触发时自动重启服务或发出告警,确保可快速定位与恢复。
来源:快速上手教程香港vps cn2 500g环境优化技巧