RDP Monster

什么是虚拟独立服务器?VDS、VPS 与独立服务器对比

什么是虚拟独立服务器?VDS、VPS 与独立服务器对比

虚拟独立服务器究竟是什么

虚拟独立服务器(VDS)是由虚拟化平台从物理宿主机上切分出来的虚拟机(最常见的是 Linux 上的 KVM,有时是 Xen、VMware ESXi 或 Hyper-V),它有一个决定性特征:账单上的资源是预留的。两个核心意味着为该虚拟机专门留出两条宿主机线程;8 GB 内存意味着这 8 GB 宿主机绝不会借给其他租户。在机器内部,你拥有自己的内核、自己的磁盘镜像、完整的 root 或管理员权限,以及虚拟化平台能够引导的任意操作系统:从客户机视角看,它就是一台小型独立服务器;从宿主机视角看,它是若干租户之一,但彼此从不争抢同一份配额。

这个术语之所以存在,是因为“VPS”的含义变得太宽泛。VPS 可以是内存可突发的 OpenVZ 容器,也可以是把同一颗物理核心卖给六个客户的宿主机上的 KVM 虚拟机。“VDS”被那些想表达“这一款没有超售”的服务商采用。标签背后并没有标准:在俄语主机市场,VDS 和 VPS 可以互换使用;另一些地区的服务商则把普通 VPS 产品线改名,只因为 VDS 听起来更接近独立服务器。名称说明的是意图,下面的命令才能说明真相。

VDS 与 VPS、独立服务器的对比

这些产品在两个维度上有差异:机器如何隔离(容器、虚拟机还是物理硬件),以及资源是预留还是共享。在这两个维度上,VDS 都介于共享 VPS 和独立服务器之间。

对比项容器型 VPS(OpenVZ、LXC)共享型 KVM VPSVDS(预留式 KVM)独立服务器
隔离方式内核命名空间与 cgroups硬件虚拟化硬件虚拟化物理机
内核共用宿主机内核独立内核独立内核独立内核
CPU宿主机核心,受 cgroup 份额限制vCPU,宿主机可能超售预留核心或线程,1:1全部物理核心
内存宿主机内存加限额(常可突发)可能超售(balloon、KSM)预留,不超售全部物理内存
吵闹邻居高中低无
自定义系统、内核、模块否是是是
嵌套虚拟化、Docker受限或禁止取决于宿主机通常可行是
大致月价$2-6$4-12$8-40$60-300+

价格一列是 2026 年入门级方案的大致区间,并非基准测试。四核、8 GB 预留内存的虚拟机不可能卖到每月 3 美元;当一款“VDS”的定价和容器一样时,它通常就是容器。

预留资源与共享资源:差异究竟在哪里

CPU。在 KVM 上,每个 vCPU 都是一条宿主机线程,Linux 调度器把它当作普通进程处理。一台有 32 条硬件线程的宿主机既可以卖成 32 个 vCPU(1:1,预留),也可以卖成 128 个 vCPU(4:1,共享)。客户机内部看不到这个比例;只有当邻居繁忙时,它才会以窃取时间和延迟尖峰的形式显现。

内存。KVM 宿主机通过两种方式超售内存:virtio balloon 驱动让宿主机回收客户机未使用的页面,KSM(内核同页合并)则在多个虚拟机之间去重相同页面。在预留方案上,内存在虚拟机启动时即被提交,balloon 永远不会膨胀。在 lsmod 中看到 virtio_balloon 只能证明具备该能力,而非正在使用:几乎每个云镜像都自带该驱动。

存储。预留很少延伸到磁盘;几乎所有服务商都共享存储后端,最多为每台虚拟机设置 IOPS 上限。真正影响性能的是底层介质:NVMe 硬盘的 IOPS 远高于 SATA SSD,延迟也更低,而在数据库负载下,再多的 CPU 预留也弥补不了慢盘。

网络。除了拥有独立端口的独立服务器,上行链路都是共享的;“无限”带宽指的是公平使用政策下的无限流量,而不是为你独享保证 1 Gbps。

KVM 与容器虚拟化(OpenVZ、LXC)

这一分野决定了一台“VDS”能否真正称得上独享。KVM、Xen 和 ESXi 属于硬件虚拟化:VT-x 或 AMD-V 让每个客户机在虚拟硬件上运行自己的内核。OpenVZ、Virtuozzo、LXC 和 Docker 属于操作系统级虚拟化:每个租户都是运行在宿主机内核上的一组进程,由命名空间隔离、由 cgroups 限制。Proxmox 把它们称为“CT”,许多低价主机商则当作 VPS 出售。由此带来的后果:

  • uname -r 返回的是宿主机内核,你既没得选也无法升级;历史上 OpenVZ 宿主机常运行非常老旧的内核版本。如果你不确定一台机器实际运行什么,在 Linux、Windows 和 macOS 上查看系统与内核版本的命令几秒就能给出答案。
  • 你无法加载内核模块:WireGuard、ZFS 以及任何以 .ko 形式提供的东西都取决于宿主机。
  • 嵌套虚拟化不可能实现,容器内的 Docker 或 systemd 只有在宿主机允许时才能运行。

KVM 客户机没有这些限制:它可以从 ISO 引导、运行任意内核,并且在宿主机允许嵌套虚拟化时向自己的客户机暴露 VT-x。因此,真正的 VDS 一定是完整的虚拟机。

吵闹邻居与窃取时间

吵闹邻居指的是同一宿主机上另一个租户,其 CPU、磁盘或网络占用侵蚀了你的资源。在超售的 KVM 宿主机上,调度器会把你的 vCPU 排在他们后面,而你的 vCPU 处于可运行但等待状态的时间会作为窃取时间报告给客户机。Linux 将它暴露为 /proc/stat 中 cpu 行的第八个数值、vmstat 和 top 的 st 列,以及 mpstat 和 sar 中的 %steal。

即便邻居满负荷运行,预留式虚拟机的窃取时间也应为零或接近零。在共享方案上,突发期间出现百分之几属于正常;持续两位数的窃取时间意味着宿主机已超售,唯一的解决办法是换节点或改用真正的 1:1 方案。服务商无法隐藏这项指标:虚拟化层会把它写进客户机自身的统计中。容器则不同:在 LXC 或 OpenVZ 内部,即使你被限流,st 列通常仍为零;在运行时暴露相关数据的情况下,cat /sys/fs/cgroup/cpu.stat(cgroup v2)会显示 nr_throttled 和 throttled_usec 持续上升。

当“VDS”只是营销话术

由于这个标签无人监管,请在方案页面上寻找描述架构的信号:

  • 只写“vCPU”而不给比例。预留方案会写明“专用核心”或“1 vCPU = 1 线程”。如果客服说不出 vCPU 与线程的比例,就默认它是共享的。
  • “保障内存”旁边写着“突发内存”。这是 OpenVZ 的用词,描述的是带软限制的容器,而不是内存已提交的虚拟机。
  • 不支持自定义 ISO、不能选内核、不能任意重装。这些限制正是共用宿主机内核的结果。
  • 名称里带“半独立”或“混合”。这是对争抢较少的共享方案的诚实说法,没问题,只是它不是 VDS。

不少服务商在诚实地使用 VDS 一词;下面的检查能在一分钟内给出结论。

如何核实你实际拿到了什么

1. 识别虚拟化层

systemd-detect-virt
# typical answers: kvm, qemu, xen, vmware, microsoft, openvz, lxc, docker, none
systemd-detect-virt --container   # container type, or none

在没有 systemd 的发行版上,以 root 运行 virt-what 可得到相同答案。在 KVM 客户机上,lscpu | grep -i hypervisor 应输出 Hypervisor vendor: KVM;而在容器中,lscpu 显示的是宿主机的全部核心数而非你的配额,存在 /proc/vz 或 /proc/user_beancounters 则是明确的 OpenVZ 标志。

2. 查看 CPU 型号与数量

nproc
grep -m1 'model name' /proc/cpuinfo
lscpu | grep -E '^(Model name|Socket|Core|Thread|CPU\(s\))'

nproc 的结果应与你购买的一致。型号显示为 QEMU Virtual CPU 或 Common KVM processor,说明宿主机用通用型号掩盖了真实 CPU,隐藏了 AVX 等较新指令集;显示 AMD EPYC 7443P 这类真实型号则说明使用了宿主机直通。两者都不能证明资源已预留,但被掩盖的 CPU 暗示这台宿主机是按密度优化的。

3. 在负载下测量窃取时间

vmstat 1 5          # last column: st
head -1 /proc/stat  # cpu user nice system idle iowait irq softirq steal guest guest_nice
stress-ng --cpu $(nproc) --timeout 60s   # package stress-ng, then watch vmstat

请在业务高峰时段测量。如果所有 vCPU 都跑满而 st 仍接近零,那么这些核心实际上归你独享;由于争抢取决于同节点上还有谁,建议连续几天重复测量。

4. 检查嵌套虚拟化

grep -cE 'vmx|svm' /proc/cpuinfo   # more than 0: the virtualisation flag is exposed
ls -l /dev/kvm                     # appears once kvm_intel or kvm_amd is loaded
kvm-ok                             # Ubuntu: package cpu-checker

如果没有该标志,说明宿主机掩盖了 CPU 型号或关闭了嵌套虚拟化,任何需要虚拟化层的程序都无法在客户机内运行。容器则从不暴露该标志。

5. 查看磁盘设备

lsblk -d -o NAME,SIZE,ROTA,MODEL
cat /sys/block/vda/queue/rotational   # 0 = non-rotational

vda 是 virtio 块设备,即常规的 KVM 配置;型号为 QEMU HARDDISK 的 sda 是模拟 SATA,同样是虚拟机。在容器内部,根文件系统通常是 ploop 或 simfs 挂载。在 Windows 客户机上,systeminfo | findstr /i hyper-v 会报告检测到虚拟化层。

价格档位与适用场景

  • 容器型 VPS($2-6):静态站点、小型机器人、VPN 出口,凡是内核无关紧要、偶尔卡顿也能接受的场景。
  • 共享型 KVM VPS($4-12):开发与预发布环境、需要独立内核且能容忍窃取时间波动的低流量应用。
  • 预留式 KVM 资源的 VDS($8-40):交易机器人、游戏服务器、数据库、CI 构建节点、7×24 自动化,以及任何长时间高 CPU 且对延迟敏感的业务。
  • 独立服务器($60-300+):多核持续 100% CPU、大内存、GPU、自建虚拟化平台,或规定不允许共享硬件的场景。当 VDS 不再够用时,带 IPMI 访问的裸金属独立服务器就是下一步。

如果预留档位符合你的负载,rdp.monster 卖的正是这一档:CPU 与内存均为预留的 KVM VPS,NVMe 存储,完整 root 或管理员权限,无限流量(公平使用),无需 KYC,除银行卡和 PayPal 外还支持加密货币付款,$8.99/月起。机器在支付确认后约 10 秒交付,因此你可以在信任任何标签之前,亲自在上面运行 systemd-detect-virt 和 vmstat 1,这正是本文建议对任何服务商都做的那套检查。

常见问题

VDS 和 VPS 是一回事吗?

技术上两者都是虚拟服务器;VDS 意在表明资源是预留且不超售的。
两者都是运行在共享硬件上的虚拟服务器。区别在于承诺,而非技术:VDS 应当以完整虚拟机(通常是 KVM)运行,CPU 核心和内存为你预留;而 VPS 可能与其他租户共享这些资源,甚至只是宿主机内核上的一个容器。由于没有标准约束该术语,一些服务商把 VDS 和 VPS 混用。请用 systemd-detect-virt、nproc 和窃取时间来验证,而不是相信名称。

如何判断我的 VPS 是 KVM 还是 OpenVZ?

运行 systemd-detect-virt,它会用一行输出 kvm、openvz、lxc 或 none。
运行 systemd-detect-virt:它会输出 kvm、qemu、openvz、lxc 或 none。若系统没有 systemd,则以 root 安装并运行 virt-what。另有两个线索:在 KVM 客户机上,lscpu | grep -i hypervisor 会显示 Hypervisor vendor: KVM;存在 /proc/vz 或 /proc/user_beancounters 则说明是 OpenVZ。在容器中,nproc 和 uname -r 反映的同样是宿主机而非你的方案。

虚拟服务器上多少窃取时间算可接受?

预留方案应接近零;突发期间百分之几可以接受,持续两位数说明宿主机已超售。
在核心预留的 VDS 上,即使满负荷运行,vmstat 1 的 st 列也应保持为 0 或接近 0。在共享方案上,高峰期偶尔出现个位数属于正常。持续达到百分之十或以上,说明宿主机超售,你的 vCPU 正排在其他租户后面等待。这在客户机内部无法修复:请要求服务商把你迁移到更空闲的节点,或改用 vCPU 与线程 1:1 的方案。

能否在虚拟独立服务器上运行 Docker 或嵌套虚拟机?

任何 KVM 客户机都能跑 Docker;嵌套虚拟机则要求宿主机暴露 vmx 或 svm CPU 标志。
在基于 KVM 的 VDS 上,由于你运行自己的内核,Docker 的表现与任何 Linux 机器无异。嵌套虚拟化(在客户机内运行 KVM、VirtualBox、Hyper-V)需要宿主机透传 CPU 的虚拟化扩展:用 grep -cE 'vmx|svm' /proc/cpuinfo 检查,并确认加载 kvm_intel 或 kvm_amd 后出现 /dev/kvm。在 OpenVZ 或 LXC 容器上,嵌套虚拟机不可能实现,Docker 能否运行完全取决于宿主机的许可。

Adrien Roche, 基础设施与主机托管编辑

系统工程师,拥有 10 年以上运维 Windows Server 和 Linux 集群的经验。Adrien 负责 rdp.monster 的基础设施文档,并撰写关于 RDP、VPS 托管、服务器管理、网络和隐私工具的指南。

注册加入我们的分销商计划

您的信息

如有任何疑问, 点击这里联系我们 !
姓名(必填)
请填写您的邮箱地址,您必须拥有以下网站的账号: manager.rdp.monster !

您的公司

如果您有网站,请填写网址
请简要说明您打算如何向客户销售服务,例如在论坛上与人交流推广。

连怪兽都爱吃 cookie!

我们使用 cookie 来改善您的浏览体验、提供个性化的广告或内容,并分析网站流量。点击「接受」即表示您同意我们使用 cookie。