写给所有踩过坑、正在踩坑、即将踩坑的 VPS 买家
一、前言:我的第一台 VPS 是怎么翻车的
2025年,我在某论坛看到一家主机商的广告:
┌─────────────────────────────────────────┐
│ 2核4G / 50GB SSD / 不限流量 │
│ 仅需 99元/年 │
│ 洛杉矶机房 / 1Gbps 端口 │
└─────────────────────────────────────────┘
我当场下单。结果上线第一天,网站加载 8 秒。第二天,SSH 连不上。第三天,客服告诉我"邻居在跑挖矿,已封号"——但我的数据也没了。
后来我才知道,那台"2核4G"的物理机上,可能塞了 50 个用户。这就是 Overselling(超售),主机行业最公开的秘密。
二、什么是超售?
超售的本质是概率游戏。
┌─────────────────────────────────────────────────────────────┐
│ 物理机实际资源 │ 主机商卖出的资源 │
├─────────────────────────────────────────────────────────────┤
│ 32核 CPU │ 卖出 80核(超售 2.5倍) │
│ 128G 内存 │ 卖出 256G(超售 2倍) │
│ 1Gbps 带宽 │ 卖出 10Gbps(超售 10倍) │
│ 2TB SSD │ 卖出 10TB(超售 5倍) │
└─────────────────────────────────────────────────────────────┘
主机商的逻辑是:不是所有用户都会同时跑满资源。就像航空公司超售机票,总有人临时取消。
但问题是——VPS 用户不像机票乘客那样好说话。一旦超售过度,所有人一起卡死。
三、主机商的 8 句黑话翻译
3.1 "不限流量"
翻译:带宽给你限死,流量不限也没用。
# 你买的套餐
1Gbps 端口,不限流量
# 实际测试
speedtest-cli
# 下载速度:15Mbps(共享1Gbps被20人分)
真相: 1Gbps 端口是整台物理机的共享带宽,如果上面塞了 30 个 VPS,人均只有 30Mbps。不限流量?你根本跑不出流量。
3.2 "独享 CPU"
翻译:你的 vCPU 核心确实分给你了,但物理核心在疯狂切换上下文。
# 测试方法:看 steal time
top
# 输出中 "st" 列就是 CPU 被邻居偷走的时间
# 正常值:0.0% - 1.0%
# 轻微超售:5% - 15%
# 严重超售:30% - 80%
┌─────────────────┬──────────────────────────────────────┐
│ steal time 值 │ 含义 │
├─────────────────┼──────────────────────────────────────┤
│ 0% - 2% │ 资源充足,体验良好 │
│ 5% - 15% │ 轻度超售,偶尔卡顿 │
│ 20% - 40% │ 中度超售,明显变慢 │
│ 50%+ │ 重度超售,基本不可用 │
└─────────────────┴──────────────────────────────────────┘
3.3 "NVMe SSD"
翻译:确实是 NVMe,但可能是 QLC 颗粒,且 IO 被严格限制。
# 测试磁盘 IO
fio --name=randread --ioengine=libaio --iodepth=32 \
--rw=randread --bs=4k --direct=1 --size=1G \
--numjobs=4 --runtime=60 --group_reporting
# 优秀:IOPS > 50,000
# 正常:IOPS 10,000 - 30,000
# 超售/限速:IOPS < 5,000
有些主机商还会设置 IO 限制:
# 某些 OpenVZ/LXC 面板可以看到限制
cat /proc/user_beancounters
# 或
systemctl status vps-limit.service
# 典型限制:
# read_bytes_sec: 104857600 (100MB/s)
# write_iops_sec: 1000
3.4 "KVM 虚拟化"
翻译:确实是 KVM,但可能是嵌套虚拟化,或运行在超售的宿主机上。
# 检测真实虚拟化类型
systemd-detect-virt
# 或
dmidecode -s system-product-name
# 如果输出 "KVM" 但性能极差,可能是:
# 1. 宿主机本身也是 VPS( nested )
# 2. 宿主机严重超售
nested KVM 的特征:
# 看 CPU 标志
cat /proc/cpuinfo | grep flags | head -1
# 如果缺少 vmx 或 svm,说明不是物理机直接虚拟化
3.5 "99.9% 在线率保证"
翻译:月停机 43 分钟以内都不算违约,且"计划维护"不算停机。
┌────────────────────────────────────────────────────────────┐
│ 99.9% 月可用时间 = 30天 × 24小时 × 0.001 = 43.2 分钟 │
│ 也就是说,每月可以宕机 43 分钟,不算违约。 │
│ 而且"计划内维护"通常被排除在 SLA 之外。 │
└────────────────────────────────────────────────────────────┘
3.6 "DDoS 防护"
翻译:可能是 5Gbps 的共享清洗,真遇到攻击大家一起死。
┌─────────────────────────────────────────────────────────────┐
│ 宣传语 │ 实际含义 │
├─────────────────────────────────────────────────────────────┤
│ "DDoS 防护" │ 可能有,但阈值极低(<1Gbps) │
│ "免费 DDoS 防护" │ 检测到攻击直接空路由(黑洞)24小时 │
│ "10Gbps 防护" │ 机房总清洗能力10G,所有用户共享 │
└─────────────────────────────────────────────────────────────┘
3.7 "即时开通"
翻译:自动化脚本部署,没有人工审核,也意味着没有资源预留。
# 某些面板可以看到你的"邻居"
# 通过扫描同网段 IP
nmap -sn 192.168.1.0/24
# 如果发现同网段有 200+ 活跃主机,说明密度极高
3.8 "24/7 技术支持"
翻译:工单系统 24 小时接收,但回复可能是 48 小时后。
┌─────────────────────────────────────────────────────────────┐
│ 支持等级 │ 实际体验 │
├─────────────────────────────────────────────────────────────┤
│ 工单(Ticket) │ 24-72 小时回复,适合非紧急问题 │
│ 在线聊天 │ 工作时间在线,可能是外包客服 │
│ 电话支持 │ 海外机房基本不提供中文电话 │
│ "技术支持" │ 只负责网络通断,不解决应用层问题 │
└─────────────────────────────────────────────────────────────┘
四、如何检测你的 VPS 是否被超售?
4.1 第一步:看 CPU steal time
# 安装 sysstat
sudo apt install sysstat
# 持续监控
mpstat 1 10
输出示例:
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
Average: all 5.20 0.00 2.10 0.50 0.00 0.10 45.00 0.00 47.10
↑ 这里!
steal 45% = 你的 CPU 时间被邻居偷走了一半。
4.2 第二步:测磁盘 IO
# 快速测试
dd if=/dev/zero of=test.bin bs=1M count=1k conv=fdatasync
# 正常 NVMe:>500MB/s
# 被限速: <100MB/s
# 严重超售: <50MB/s
rm test.bin
4.3 第三步:测网络稳定性
# 安装 mtr
sudo apt install mtr-tiny
# 测试到你的目标地区
mtr -r -c 100 8.8.8.8
输出中关注:
- Loss%:丢包率,>5% 说明网络拥塞
- 晚高峰(21:00-23:00)再测一次,对比白天
- 如果晚高峰延迟翻倍+丢包,说明带宽超售
4.4 第四步:看内存是否有气球驱动
# 检查是否有内存气球
dmesg | grep -i balloon
# 或
lsmod | grep balloon
# 如果看到 virtio_balloon,说明内存可以被宿主机动态回收
# 这是超售的常用手段
4.5 第五步:看邻居密度
# 扫描同网段(仅测试自己的网段,不要扫公网)
nmap -sn $(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | cut -d. -f1-3).0/24
# 如果同网段活跃主机 >100 台,密度偏高
# 如果 >200 台,严重超售
五、超售的"合理"与"不合理"
超售不是原罪,过度超售才是。
┌─────────────────┬─────────────────┬─────────────────────────────┐
│ 超售类型 │ 超售比例 │ 用户体验 │
├─────────────────┼─────────────────┼─────────────────────────────┤
│ 合理超售 │ CPU 1.5-2倍 │ 轻微波动,基本无感知 │
│ │ 内存 1.2-1.5倍 │ │
├─────────────────┼─────────────────┼─────────────────────────────┤
│ 轻度超售 │ CPU 2-3倍 │ 高峰期明显变慢 │
│ │ 内存 2倍 │ │
├─────────────────┼─────────────────┼─────────────────────────────┤
│ 重度超售 │ CPU 5倍+ │ 随时卡顿,SSH延迟高 │
│ │ 内存 3倍+ │ 频繁 OOM,服务崩溃 │
│ │ 带宽 10倍+ │ 晚高峰基本不可用 │
└─────────────────┴─────────────────┴─────────────────────────────┘
大厂的合理超售:
- AWS / Azure / GCP:超售比例受控,有资源预留和突发性能实例(T系列)明确告知
- 阿里云 / 腾讯云:轻量应用服务器明确标注共享型,性能有保障基线
小厂的过度超售:
- 年付 50 元的"2核4G":几乎 100% 重度超售
- 不限流量 + 1Gbps + 低价:不可能三角,必超售
六、避坑指南:买 VPS 前必看的 5 个指标
6.1 价格锚定法
┌─────────────────────────────────────────────────────────────┐
│ 资源成本参考(2026年市场合理价格): │
├─────────────────────────────────────────────────────────────┤
│ 1核1G / 20GB SSD / 1TB流量 / 1Gbps ≈ 30-50元/月 │
│ 2核4G / 50GB SSD / 2TB流量 / 1Gbps ≈ 80-120元/月 │
│ 年付低于月付×6 的,大概率有问题 │
│ "终身"套餐 = 随时准备跑路 │
└─────────────────────────────────────────────────────────────┘
6.2 看虚拟化类型优先级
┌─────────────────┬──────────────────────────────────────┐
│ 类型 │ 超售可控性 │
├─────────────────┼──────────────────────────────────────┤
│ 独立服务器 │ 无超售,最贵 │
│ KVM │ 较好,资源隔离相对严格 │
│ VMware │ 较好,企业级 │
│ Xen │ 中等 │
│ OpenVZ / LXC │ 最差,资源隔离弱,超售重灾区 │
└─────────────────┴──────────────────────────────────────┘
6.3 看是否有资源保障
# 某些面板会显示 Guaranteed RAM(保证内存)
# 和 Burstable RAM(突发内存)
# 示例:
# Guaranteed RAM: 512MB ← 这是你真的能用的
# Burstable RAM: 2048MB ← 这是抢来的,随时被收走
6.4 看评测社区口碑
推荐参考渠道:
- LowEndBox / LowEndTalk(海外低价VPS风向标)
- 主机论坛(国内:LOC / 全球主机交流)
- 注意:论坛"推荐帖"可能是 affiliate 广告,多看差评
6.5 先月付,再年付
┌─────────────────────────────────────────────────────────────┐
│ 永远不要第一次就年付! │
│ 月付 1-3 个月,测试: │
│ 1. 晚高峰 21:00-23:00 的延迟和丢包 │
│ 2. 连续运行 7 天的稳定性 │
│ 3. 客服响应速度 │
│ 4. 实际 IO 和 CPU steal time │
│ 全部通过,再考虑年付(如果有优惠) │
└─────────────────────────────────────────────────────────────┘
七、被超售了怎么办?
7.1 轻度超售:自我优化
# 安装 haveged 缓解低熵导致的卡顿
sudo apt install haveged
sudo systemctl enable haveged
# 使用 ionice 降低磁盘竞争影响
ionice -c2 -n7 dd if=/dev/zero of=/tmp/test bs=1M count=100
7.2 中度超售:加缓存层
# 用 Redis 缓存数据库查询,减少 CPU 和 IO 压力
sudo apt install redis-server
sudo systemctl enable redis-server
7.3 重度超售:跑路
# 备份数据
tar czvf backup-$(date +%Y%m%d).tar.gz /var/www /etc/nginx /var/lib/mysql
# 迁移到靠谱商家
rsync -avz --progress backup.tar.gz user@new-server:/home/user/
八、总结
┌─────────────────────────────────────────────────────────────┐
│ 超售是 VPS 行业的默认规则,不是 bug,是 feature。 │
│ 但过度超售 = 欺诈。 │
├─────────────────────────────────────────────────────────────┤
│ 记住这几条: │
│ 1. 低价必有妖,99元/年的2核4G = 超售重灾区 │
│ 2. steal time >20% 就要警惕,>50% 赶紧跑路 │
│ 3. 晚高峰测试比白天更重要 │
│ 4. 先月付测试,再决定年付 │
│ 5. OpenVZ/LXC 低价套餐,默认按超售处理 │
│ 6. "不限流量" + "1Gbps" + "低价" = 不可能三角 │
└─────────────────────────────────────────────────────────────┘
主机商不是慈善家,你省下的每一分钱,都可能以性能、稳定性或数据安全为代价。
买 VPS 前,先学会看懂这些黑话——至少,别再被"2核4G 99元/年"的广告忽悠了。