同样标「2 核 2G 配 500Mbps」,一台跑得飞快,一台开机就卡。参数完全一样,价格可能还更便宜,问题出在一个从来不写在套餐页上的数字上:超售比。超售的意思是,商家卖给你的「2 核」不是物理核,是从同一颗物理 CPU 上切出来的份额。一台 32 核的机器可以切成 64 个「2 核」卖出去,因为商家押注你不会一直跑满。这篇讲清超售怎么运作、它藏在哪一层、以及为什么有些机器参数漂亮却跑不动——不讲哪家好哪家坏,讲你自己怎么验。

先放对照入口:
云途 —— 云主机与独服两条线,可对照同价格下的差异。
isvoro —— 多条产品线,低价档与高配档的超售策略通常不同。
rabisu —— 同一套配置复制到多机房,适合横向比。
spartanhost —— 大端口低压力的样本,适合观察共享端口的实际表现。
sixtynet、景文互联、数脉科技 —— 整机与独服方向的对照。
本文讨论超售的一般原理与验证方法,不针对任何具体商家。文中给出的命令与判据为通用参考,实际结果受宿主机负载、同机邻居行为、时段与机房策略影响,同一台机器在不同时间的表现可能完全不同。各商家的超售比例、CPU 时间限制与共享策略均不会公开,只能通过实测推断,实测结论仅对该机器该时段有效。选购前请以商家书面说明与自身测试结果为准。
一、超售发生在四个层面
四层之外还有一个前提要交代:超售不是「坏商家才做的事」,它是云主机的商业基础。
如果不超售,一台 32 核的机器只能卖给 32 个客户(每人 1 核),价格会是现在的十几倍。
所以所有云主机都在超售,区别只在比例和策略。
这个认识很重要,因为它改变了提问的方向:不要问「这家超售吗」(答案一定是超),要问「超到什么程度、我能不能接受」。而「能不能接受」取决于你的业务类型——一个跑静态页面的站,超售 8 倍也无所谓;一个跑数据库的业务,超售 2 倍就受不了。
再看一个相关的概念:「独享」和「独占」不是一回事。
独享通常指「不与其他客户共享某一项资源」,但可能仍在同一台物理机上;独占通常指整台物理机归你。
这个区别在报价上差很多。而很多商家会用「独享」这个词来做营销,实际只是「超售比例低一点」。
所以看到「独享」要追问一句:是独立 CPU 核心,还是独立物理机。
还有一个层面的细节值得提:网络超售不只在端口层面,还在上游层面。
机房整体的出口带宽是有限的,所有客户共享。这就是为什么有时候你的机器本身很闲,但网速还是掉——因为机房的出口被人占满了。
这一层个人无法控制,只能在选机房时避开「超卖严重」的供应商。
「超售」听起来像一个数字,实际有四个独立的层面,任何一层崩了都会让机器变慢。
| 层面 | 怎么超 | 崩了的表现 |
|---|---|---|
| CPU | 物理核切成更多 vCPU | 负载高时响应变慢、负载低时正常 |
| 内存 | 物理内存重复分配 | 用到一定量后突然卡死或进程被杀 |
| 磁盘 IO | 多台共享同一块盘的 IOPS | 读写慢、数据库查询变卡 |
| 带宽 | 端口标称值远高于实际分配 | 测速峰值漂亮、持续跑就掉下来 |
这张表最该注意的是第三行:磁盘 IO 超售往往是最容易被忽略、也最影响体验的一项。
因为 CPU 和内存有明确数字,你会关注;而磁盘 IOPS 通常在套餐页上根本不写。
一个常见现象可以说明这一点:机器负载不高、内存够用、网速也正常,但打开数据库要等好几秒。这种「说不清哪里慢」的情况,九成是磁盘 IO 被同机邻居占满了。
再看第四行。带宽超售的表现最容易被误判。
因为测速工具跑的是短时峰值。一个共享 10Gbps 端口的机器,单独测速能跑到 8Gbps,看起来完全达标。
但晚高峰邻居都在跑的时候,可能只有 50Mbps。这个差异用一次测速是看不出来的。
所以要分开验:CPU 看持续负载下的稳定性,内存看接近上限时的行为,磁盘看随机读写,带宽看晚高峰的持续速率。

二、CPU 超售:vCPU 不是核
CPU 超售还有一个细节:超线程会让这个问题更复杂。
一颗 16 核的物理 CPU 开启超线程后,系统看到的是 32 个逻辑核。
而超线程的两个逻辑核共享同一套物理执行单元,实际吞吐大约只有 1.3 倍,不是 2 倍。
所以「标 32 核」的机器,真实算力可能只相当于 20 核左右。而这个差异完全不体现在标称数字上。如果你买的是「2 核」,实际拿到的是「一个物理核的两个线程」还是「两个物理核」,体验差很多。
验证方法:看 /proc/cpuinfo 里的 core id 和 siblings。
# 看物理核与逻辑核的对应关系
lscpu
# 关注 Core(s) per socket 和 Thread(s) per core
cat /proc/cpuinfo | grep -E "core id|siblings|cpu cores" | sort -u
判读要点:如果 siblings 是 cpu cores 的两倍,说明开了超线程。
还有一个现象值得说:CPU 配额限制(CPU credit)。
部分低价产品会限制「平均 CPU 使用率」,比如最多只能跑到 30%。
这种机器的标称核数是真的,但你只能用到三成。表现是「一跑满载就被降频」。
验证方法:跑一个持续满载的任务,看 CPU 频率和实际算力变化。
# 持续满载测试,观察频率变化
stress-ng --cpu 2 --timeout 300 &
# 另开一个终端看频率
watch -n 2 "grep 'cpu MHz' /proc/cpuinfo"
如果满载后频率明显下降,说明有功耗或配额限制。
这一项在共享型低价机上很常见。而它和「超售」是两件事,需要分开判断。
先把最容易误解的一点说清。
套餐页上写「2 核」,指的不是两个物理核心,是给你两个时间片。
物理 CPU 通过时间分片的方式,把计算资源轮流分给多个虚拟机。如果一台 32 核的机器上跑了 64 个「2 核」实例,那 CPU 总共要分给 128 个 vCPU。
这就是 4 倍的 CPU 超售。
关键在于:只要所有邻居都不用满,这个 4 倍超售不会造成任何问题。所以商家做超售不是欺骗,是一种基于「大多数虚拟机常年空闲」这个统计规律的做法。问题出在某个邻居开始跑满载的时候——你的 vCPU 就要和它抢同一个物理核的时间片。
这种行为有一个很具体的表现:你的机器性能会随邻居的负载波动。
早上很快、晚上很慢;或者周一正常、周末卡顿。这种「无规律但周期性」的性能波动,几乎都是 CPU 超售导致的。
验证方法:看 CPU 的 steal 时间。
# 查看 CPU 各时间占比,重点看 st(steal)
top
# 按 1 每秒刷新,看 %Cpu(s) 那一行的 st 值
# 或者用 mpstat 更直观
mpstat 5 10
判读要点:st 值代表「本该给你的 CPU 时间被别人拿走了」。
st 长期高于 5% 说明有明显抢占;高于 20% 说明这台机器住得很挤。
这个指标比看 load average 有用得多。因为 load 高可能是你自己的程序在跑,而 steal 高一定是别人的问题。
还有一个观察:核数越少,超售的影响越明显。
1 核的机器,一旦被抢,就是 100% 的损失;8 核的机器被抢了 1 个核,还有 7 个在跑。
所以 低价小配置的机器对超售最敏感。这也是为什么 1 核 1G 的机器体验差异特别大。

三、内存超售:比 CPU 更危险
内存这一层还有一个隐蔽的问题:「标称内存」和「可用内存」不一样。
一台标 2G 的机器,实际可用通常在 1.8G 左右。
因为虚拟化层本身要占一部分,内核和预留也给不齐。
这个差值在 2G 的机器上占 10%,在 512M 的机器上可能占到 20%。所以小内存机器要特别留意——标 512M 实际只有 400M 可用,装完系统就没剩多少了。
验证方法很简单:看 total 和 available 两个值。
# 看总内存与可用内存
free -m
# total 是标称可用量,available 是实际能给程序用的量
再看一个容易混淆的点:内存超售和「内存气球」是两个机制。
超售是「把同一块内存分配给多台虚拟机」;气球是「宿主机动用空闲虚拟机的内存」。
后者的表现是:你的机器内存占用一直很低,某天突然需要大量内存时,发现拿不到。
因为那部分内存已经被宿主机的气球驱动收走了。
验证方法:跑一个占满内存的测试,看实际能拿到多少。
# 逐步占用内存,观察能占到多少
stress-ng --vm 1 --vm-bytes 90% --timeout 120
如果占到 70% 就开始大量换页,说明实际可用内存不到标称值。
这个测试要在业务上线前做。上线后才发现内存不够,迁移成本会高很多。
内存超售的表现和 CPU 完全不同,而且更致命。
CPU 被抢只会变慢,内存被抢会直接崩。
机制是这样的:部分虚拟化方案会把同一块物理内存重复分配给多个虚拟机(比如利用「空页面共享」)。
只要大家都不同时用,没问题;一旦同时用到,系统就要把一部分内存换到磁盘上。
这个换出动作会让性能断崖式下跌——从内存速度变成磁盘速度,差几个数量级。表现就是「机器平时好好的,某一刻突然卡死几十秒,然后又恢复正常」。
验证方法:看 swap 使用情况和 OOM 记录。
# 看内存与 swap 使用
free -h
# 关注 available 而不是 free
# 看是否发生过内存回收
dmesg | grep -i "out of memory"
# 看内存统计里的换页
vmstat 5 10
# 关注 si / so 两列(swap in / swap out)
判读要点:si 和 so 长期不为 0,说明内存在被换出。
如果 available 远小于 total,但你的程序实际只用了很少内存,那大概率是邻居在抢。
这里有一个常见的误读:看 free 显示内存很少就以为不够。
Linux 会把空闲内存拿去做文件缓存,所以 free 低是正常的。要看 available,那才是真正可用的量。
还有一个自保的做法:给自己的关键进程设定内存上限(cgroup),避免被邻居的行为牵连。
这个做法不能提升性能,但能让你的服务在被抢时优雅降级,而不是整个崩掉。

四、磁盘 IO:最容易被忽略的一层
磁盘这一层还值得说清一个概念:IOPS 和吞吐量不是一回事。
IOPS 是每秒能做多少次读写操作,吞吐量是每秒能传多少数据。
数据库看重 IOPS(大量小随机读写),文件传输看重吞吐量(少量大顺序读写)。
这个区别决定了两类业务对磁盘压力的反应完全不同。一个跑数据库的机器,即使吞吐量很高,如果 IOPS 被限到 500,查询照样卡;而一个做文件下载的机器,IOPS 再高也没用,它需要的是吞吐量。
所以测磁盘之前先明确:你的业务是 IOPS 型还是吞吐型。
IOPS 型:数据库、容器、虚拟机、大量小文件。
吞吐型:视频、备份、日志归档、大文件传输。
测法不同:IOPS 型用 4K 随机读写,吞吐型用 1M 顺序读写。
再看一个实际的门槛:共享 SSD 和独占 SSD 的 4K 随机读延迟差别很大。
独占或高配额 SSD 通常在 0.1 到 0.3ms;共享 SSD 在 1 到 5ms;被严重争抢时可能 10ms 以上。
这个数字对数据库的影响是决定性的。延迟从 0.2ms 涨到 5ms,查询时间就是 25 倍。
还有一个容易忽略的点:云盘的 IOPS 通常是按容量比例给的。
比如「每 GB 给 30 IOPS」,那 20G 的盘只有 600 IOPS,100G 的盘有 3000 IOPS。
所以加容量不只是加空间,也会加 IOPS。如果磁盘慢,加容量可能比换机器更有效。
磁盘 IO 超售是四层里最隐蔽的,因为它的数字通常不公开。
一台宿主机的 SSD 总 IOPS 是固定的,分给几十台虚拟机之后,每台能分到多少取决于商家怎么切。
有的商家给每台虚拟机设 IOPS 上限,这样至少是稳定的。
有的完全不设限,那就是「谁先抢到谁用」,邻居跑批量任务时你的数据库就要等。
这两种做法在套餐页上完全看不出来,但体验差别巨大。所以磁盘 IO 这一项,必须问商家「有没有 IOPS 限制、限制多少」。如果对方答不上来,按「无限制、完全共享」预期。
验证方法:看 IO 等待时间和随机读写延迟。
# 看 iowait 占比
top
# %Cpu(s) 那一行的 wa 值
# 简单测随机读延迟(需要 fio)
fio --name=randread --ioengine=libaio --rw=randread --bs=4k --numjobs=1 \
--size=256M --runtime=30 --time_based --iodepth=32 --direct=1
# 或者用 dd 粗测持续写入
dd if=/dev/zero of=./testfile bs=1M count=1024 oflag=direct
判读要点:wa 长期高于 10% 说明磁盘在拖后腿。
4K 随机读的延迟如果在 1ms 以内,说明是独占或高配额 SSD;超过 5ms 说明被严重共享。
还有一个经验:同一家商家的不同档位,磁盘 IO 的配额可能差很多。
低价档往往是「共享无限制」,高配档才有独立配额。所以如果业务吃数据库,不要买最低价档。

五、带宽超售:测速测不出来
带宽这一层还有一个技术细节:「端口速率」和「保障带宽」是两个不同的东西。
端口速率是网卡的能力上限,保障带宽是商家承诺的最小可用速率。绝大多数产品只写端口速率,不写保障带宽。 所以「标 500Mbps」这句话的真实含义是「最多能跑到 500Mbps」,不是「一直有 500Mbps」。这个区别在晚高峰会暴露得非常明显——标 500Mbps 的机器,晚上可能只有 30Mbps。
判断方法:问商家「有没有保障带宽」。如果能给出数字,说明是真的;如果只回答端口速率,按无保障理解。
再看一个相关概念:「突发带宽」和「持续带宽」。
部分产品允许短时跑到端口上限,但持续一段时间后会降到另一个值。
典型的做法是「突发 1Gbps,持续 100Mbps」。这种设计对网页访问很友好(页面加载是突发的),对持续传输很不利。
验证方法:跑十分钟以上的持续传输,看速率在哪里稳定下来。
还有一些机房会在出口做流量整形。
表现是速率曲线呈锯齿状——冲到高位后掉下来,再冲上去。
这种整形对下载体验影响不大(平均速率还可以),但对实时性要求高的业务(语音、视频会议)影响很大。
所以带宽验收不能只看平均值,要看曲线的平稳度。
带宽是四层里最容易被误判的,因为大家习惯用测速工具判断。
而测速工具跑的是短时峰值,恰好是共享带宽最风光的时候。
机制是这样:机房给一台物理机分配 10Gbps 的上行,这台机器上跑着几十台虚拟机,每台标 10Gbps。
单独测的时候,邻居闲着,你能跑到接近 10Gbps。
但晚高峰所有邻居一起跑,10Gbps 要分给几十台,平均下来每台可能只有几百 Mbps。所以「测速达标」和「实际够用」是两件事,前者是峰值,后者是均值。
验证方法:跑长时、多时段的持续带宽测试。
# 持续下载一个文件,跑 10 分钟,观察速率是否稳定
curl -o /dev/null http://目标地址/大文件 &
# 或者用 iperf3 测持续吞吐
iperf3 -c 目标IP -t 600 -P 4
判读要点:看速率曲线的形状,不要只看峰值。
一直平稳的曲线说明带宽是保障的;前几秒很高然后掉下来的,说明是共享端口。
测试时间也很关键。必须在晚高峰跑(晚上 8 点到 11 点),白天测没有意义。
还有一个配合检查:流量配额和端口速率是否匹配。
如果一台机器标 10Gbps 但只给 2T 流量,那它本来就是「峰值型」产品。按 10Gbps 满速跑,2T 在 27 分钟就没了。这种情况不算超售,是产品定位。
六、四层里哪一层最影响体验
这一节还可以补一个「诊断顺序」,因为它能帮你在出问题时快速定位。
第一步:先看是不是自己的问题。用自己的程序日志、监控数据确认负载正常。
第二步:看内存。free -h 和 dmesg 一起看,排除 OOM 和换页。
第三步:看磁盘。top 里的 wa 值和 fio 的延迟,排除 IO 争抢。
第四步:看 CPU。mpstat 里的 steal,排除被邻居抢占。
第五步:看网络。iperf3 持续测,排除带宽共享。
这个顺序的价值在于「由内到外」——先排除自身问题,再逐层往外查。反过来先查网络,往往查不到问题,因为网络通常是最无辜的一层。
还有一个经验:四层里有一层出问题,其他层的表现也会被拖累。
比如磁盘 IO 被占满,CPU 的 wa 值会升高,看起来像 CPU 问题。
比如内存换页,磁盘 IO 也会升高。
所以诊断时要同时看多个指标,找根因而不是看表象。
最典型的误判:看到 CPU 使用率高就以为核不够,实际是磁盘 IO 在等。
这种情况加核没有用,换一块 IOPS 更高的盘才有用。
所以「性能不够就升配置」这个直觉经常是错的。先定位到具体是哪一层,再决定加什么。
四层都验完之后,还有一个更实际的问题:哪一层的坑最致命。
第一:内存超售。因为它导致的是崩溃,不是变慢。变慢可以忍,崩了业务就断了。
第二:磁盘 IO。因为它影响的是「所有需要读写数据的操作」。而绝大多数业务都是读写密集的。
第三:CPU 超售。它让性能波动,但通常不会彻底不可用。
第四:带宽超售。它的影响最容易被识别,也最容易通过换产品解决。
所以验机的优先级应该是:先看内存有没有被换出,再看磁盘 IO 等待,最后才看 CPU steal 和带宽。这个顺序和大多数人的习惯相反——大家通常先测网速,而网速恰恰是四层里问题最小的一层。
还有一个总的原则:超售程度和价格高度相关。
同一家商家里,价格最低的那一档通常是超售最狠的。因为低价档的定位就是「用超售换成本」。
所以如果你需要稳定,不要买同系列里最便宜的那一档。往上一到两档,超售比例通常会明显下降。
这个经验比任何参数对比都实用。因为它能解释「为什么贵一档体验好很多」这个现象。
七、买之前怎么验
四个步骤,按顺序走,全部可以在一周内完成。
第一步:买最小配置,跑 60 分钟基准测试。记下 CPU steal、内存 available、磁盘 4K 延迟、带宽均值。这四项构成基线。
第二步:在晚高峰复测一遍。对比基线的变化幅度。变化超过 30% 说明共享压力大。
第三步:问商家三个问题。「CPU 是否独享」「有没有 CPU 时间限制」「磁盘 IOPS 有没有配额」。三个问题的答案比任何测试都直接。
第四步:如果不满意,往上一档再试。同系列的高一档通常是同一台宿主机上的不同规格,超售比例往往不同。
四个步骤的成本很低。最小配置跑一周,通常几十元。
而代价对比很悬殊:买错一台机器用三个月,损失的不只是钱,还有迁移数据和重新部署的时间。
最后回到开头:同样标 2 核 2G 配 500Mbps,一台快一台慢。
差异不在标称参数上,在超售比例上。而超售比例永远不会写在套餐页,只能自己测。所以选云服务器这件事,参数表只能用来筛掉明显不合适的,真正决定体验的那一层,必须自己验。
本文讨论超售的一般原理与通用验证方法,不针对任何具体商家,文中给出的命令、判据与阈值仅为参考,实际结果受宿主机负载、同机邻居行为、时段、虚拟化方案与机房策略影响,同一台机器在不同时间的表现可能完全不同。各商家的超售比例、CPU 时间限制、内存分配方式与磁盘 IOPS 配额均不对外公开,只能通过实测间接推断,且实测结论仅对该机器该时段有效,不能外推为商家整体的服务水平。文中提到的验证步骤与排查顺序为按通用运维经验整理,未在特定商家环境逐项验证。本文全部内容不构成任何性能承诺或质量评价,亦不代表本站立场,也不代表对任何具体产品的推荐。选购前请自行核实商家的服务条款与退款政策,因购买、部署或使用相关产品与服务所产生的直接或间接损失,作者及本站不承担任何责任。
此内容由AI根据文章内容自动生成,并已由人工审核

喜欢
顶
难过
囧
围观
无聊
云服务器日本方
云服务器同一套
2026年宠爱女朋
好按摩商户端怎