你的 VPS 为什么会被限制 CPU?一文讲清规则和常见"耗 CPU 大户"
适用于 BitsFlowCloud NOSLA 全系共享 VPS。完整规则与各配置阈值见 CPU 资源政策。
最近不少用户在工单里问:
- “我就搭了个节点,怎么 CPU 被限制了?”
- “我在
top里看 CPU 明明不高,为什么说我超了?” - “被限制之后网速怎么也变慢了?”
这篇文章把 CPU 限制是怎么运作的、哪些使用方式容易让 CPU 升高,一次讲清楚。
先打个比方:共享 VPS 就像合租公寓的厨房
一台物理服务器(宿主机)上同时运行着很多用户的 VPS,大家共用这台机器的 CPU。
这就像合租公寓的厨房:谁都可以随时进去做饭,炒几个菜、煮一锅汤都没问题。但如果有人从早到晚一直占着所有灶台,其他人就没法做饭了。
我们的 CPU 规则就是这个厨房的"使用公约":
- 平时随便用:CPU 性能不打折,需要时可以跑满;
- 短时间跑满没关系:装软件、编译个小项目、偶尔跑个脚本,都不会触发限制;
- 只有长时间持续高负载,才会暂时"让出灶台",也就是降低这台 VPS 的 CPU 性能。
需要长时间独占 CPU 的业务,比如视频转码、挖矿、长期大流量服务,应该选择独享 CPU 的 VDS 产品,不受本文规则限制。
一、系统是怎么"看" CPU 使用率的?
有四点和很多人的直觉不一样。
1. 高精度统计:直接读取宿主机的 CPU 时间
我们的统计不是在你的 VPS 里面"估算"出来的,而是直接读取宿主机内核为每台 VPS 记录的 CPU 使用时间。
- 精度到纳秒级:宿主机内核精确记录你的 VPS 每一纳秒占用了多少 CPU,是累计值,不是某一瞬间的抽样;
- 每分钟结算一次:用这一分钟的累计 CPU 时间计算平均使用率,两次统计之间哪怕只有几秒的尖峰,也都完整算进去,不会被"漏掉"或"放大";
- 看得见虚拟化层:包括宿主机为你这台 VPS 处理网络收发、磁盘读写所消耗的 CPU。这部分在 VPS 内部是看不到的。
因此,其他途径都无法保证这种精度,包括 VPS 内的 top、htop、面板监控、哪吒等各类探针,以及第三方监控服务。 它们只能从 VPS 内部观察:
- 大多是定时抽样,每隔几秒甚至几十秒看一眼,两次抽样之间的波动看不到;
- 数据来自虚拟机内部的系统计数,本身就有误差,而且看不到虚拟化层的开销;
- 不同工具的计算口径不同,有的按单核算,有的按总核数算,同一时刻几个工具的读数往往都不一样。
所以,如果你的探针显示的 CPU 使用率和我们的统计有出入,这是正常的,以宿主机的统计为准。
2. 统计的是整台 VPS,不只是某个程序
除了你能在 top 里看到的程序,系统内核处理网络收发、磁盘读写、数据加解密所用的 CPU 也都算在内。
所以有时 top 里没有哪个进程特别高,但整机的 CPU 消耗其实不低。第三部分会详细说明这种情况。
3. 按所有核心平均计算
比如一台 2 核的 VPS,一个核心跑满、另一个核心空闲,计算结果是 50%。
4. 低负载完全不计
只要平均 CPU 使用率低于"忽略统计阈值"(不同配置约 22%~40%,见政策页表格),跑多久都不计入统计。日常建站、轻量服务、适度使用的代理,基本都在这个范围内。
二、什么情况下会被限制?
整个过程分三步,不是一超过某个数值就立刻限制:
第 1 步:观察
VPS 持续处于较高负载时,系统开始累计。短暂的峰值一般不会有影响。
第 2 步:确认
高负载累计到一定程度后,系统会再观察几分钟。如果这几分钟里负载降下来了,就不会限制。
第 3 步:限制
如果确认期间仍然是持续高负载,CPU 性能会被限制到:
- 严格模式节点:15%
- 宽松模式节点:30%
限制一直持续到当天 00:00 自动解除。
按公开规则,任何配置每天至少可以累计满负载运行 45 分钟,核心越多,这个时间越长。
⚠️ 被限制时,网络和磁盘也会变慢
这是虚拟化平台(VirtFusion)自身的机制:CPU 性能被压低后,磁盘读写和网络速度也会明显下降。所以很多用户最先察觉到的不是 CPU,而是"网速突然变慢了"。
反复触发的后果
| 情况 | 结果 |
|---|---|
| 滑动 48 小时内,连续 2 次被限制 | 暂停服务,可提交工单申请恢复 |
| 滑动 7 天(168 小时)内,连续 2 次因此被暂停 | 判定为 CPU 滥用,删除账号及其下所有 VPS |
每天 00:00 的重置只解除当天的限制,不会清除 48 小时和 7 天窗口内的记录。
三、哪些情况容易让 CPU 升高?
常见"耗 CPU 大户"
| 场景 | 表现 |
|---|---|
| 被入侵、被植入挖矿程序 | 最常见。有陌生进程长期占满 CPU,常伴随陌生的定时任务或系统服务 |
| “一键脚本"附带的后台任务 | 部分面板和脚本会常驻监控、测速、自动更新等后台进程 |
| 编译、视频转码、打包压缩、备份 | 天生就是持续满负载的工作 |
| 数据库慢查询、缺索引 | 网站访问量一大,数据库就把 CPU 吃满 |
| 程序死循环、崩溃后反复重启 | 程序有 bug,或者 Docker 容器不停重启 |
| 爬虫、压测、刷流量工具 | 长时间高并发 |
| 被攻击、被扫描 | SSH 暴力破解、大量小包攻击,处理这些连接本身也要消耗 CPU |
最容易被忽视的:加密代理在大流量时"很吃 CPU”
很多用户觉得代理只是"转发一下流量",不怎么耗 CPU。其实不是这样。
加密代理的每一个字节都要经过加密和解密:
- VLESS、Trojan 通常搭配 TLS 或 REALITY 使用。VLESS 协议本身不加密,加密由 TLS/REALITY 这一层完成,但这一步同样逐字节消耗 CPU;
- VMess、Shadowsocks 协议自带加密;
- Hysteria、TUIC(基于 QUIC/UDP)、WireGuard、OpenVPN 也都全程加密。
关键在于:CPU 消耗和流量大小成正比。
流量小的时候几乎感觉不到。但当你持续大流量上传或下载时,比如:
- 看 4K 或 8K 视频
- 下载大文件、BT/PT
- 网盘同步、备份上传
- 反复跑测速
加解密会让 CPU 一直处于高位。核心数少的套餐尤其明显。
协议选得轻,同样的网速更省 CPU
不同协议的设计和实现方式不同,传输同样的流量需要的 CPU 可能差很多。举一个同配置下的对比:
| 协议 | 单核跑到多少带宽 | 单核 CPU 状态 |
|---|---|---|
| VLESS + REALITY | 约 400 Mbps | 已经打满 |
| AnyTLS(anytls-go) | 约 700 Mbps | 仍未打满 |
以上为同一配置下的参考数据,实际数值会受 CPU 型号、客户端、系统版本、连接数等因素影响,仅用于说明差距的量级。
换个角度看:同样跑 400 Mbps,较重的协议已经把一个核心占满,较轻的协议还留有明显余量。 放到上面讲的统计规则里,前者更容易进入"持续高负载",后者则可能一直留在"不计入统计"的范围内。
所以,协议轻不轻,对日常上网的普通用户同样有影响,并不只是"大流量用户才需要关心":
- 看高清视频、下载文件时,重协议的 CPU 占用会更早冲高;
- 日积月累,重协议更容易累计到限制门槛;
- 同样的套餐,换一个更轻量的协议,往往就能在不降低网速的前提下明显降低 CPU 占用。
以下几种情况会让消耗成倍增加:
- 中转(relay):流量进来要解密一次,出去再加密一次,同样的流量付出两倍的 CPU。
- 多人共用一个节点:几个人同时看视频、下载,负载直接叠加。
- 基于 UDP/QUIC 的协议(如 Hysteria、TUIC):数据包更多、更碎,额外开销比 TCP 类协议大。
- 大量小包、高并发连接:比如游戏加速、很多设备同时连接,每个包都要单独处理。
为什么 top 里看不出来?
加解密和网络收发大多在系统内核里完成,不一定显示为某个进程的 CPU 很高。它们通常体现在 top 第三行的这两项:
%Cpu(s): 5.0 us, 35.0 sy, 0.0 ni, 40.0 id, 0.0 wa, 0.0 hi, 20.0 si
^^^^^^^ ^^^^^^^
sy = 系统内核 si = 软中断(网络收包)
如果大流量时 sy 和 si 明显偏高,CPU 大概率就消耗在网络和加解密上。前面说过,这部分同样计入你的 CPU 使用。
四、怎么避免被限制?
自查:看看 CPU 花在哪了
# 实时查看 CPU 占用(按 P 按 CPU 排序;注意第三行的 sy、si)
top
# 查看有没有陌生的定时任务
crontab -l
ls /etc/cron.d/
# 查看正在运行的服务,留意不认识的名字
systemctl list-units --type=service --state=running
发现不认识、占用又高的进程,先别急着删,可以提交工单,我们协助你判断。
代理用户的建议
- 优先选择更轻量的协议:同样的网速,轻量协议的 CPU 占用可能明显更低(见上文 REALITY 与 AnyTLS 的对比);
- 给节点设置带宽上限,避免长时间满速跑大流量;
- 不要把节点分享给很多人,负载会叠加;
- 尽量避免多层中转,每多一层就多一次加解密;
- Shadowsocks 等可以选加密方式的协议,优先选 AES-GCM 系列(如
aes-128-gcm),绝大多数 CPU 对它有硬件加速; - 流量需求本来就很大,比如长期下载、多人共享、做中转,建议直接选择 VDS(独享 CPU)。
确实需要长期高负载?
转码、编译、长期大流量服务这类业务,本来就不适合共享 VPS。选择 VDS 可以获得独享的 CPU,不受本文任何限制。
常见问题
Q:CPU 是不是被固定限制在 40% 了?
不是。触发限制之前,你可以使用 100% 的 CPU 性能。政策页里的 40% 这类数字是统计阈值,不是性能上限。
Q:我的探针 / top 显示 CPU 没那么高,为什么还是被限制了?
VPS 内部的工具只能定时抽样,而且看不到虚拟化层的开销,精度无法和宿主机内核的纳秒级累计统计相比。常见的情况是:探针每隔几秒抽样一次,刚好错过了负载高的时刻;或者 CPU 花在内核的网络收发、加解密上,某个进程的数值并不显眼。判定以宿主机的统计为准。
Q:被限制后要等多久?
当天 00:00 自动解除,不需要任何操作。
Q:被暂停了怎么办?
提交工单申请恢复。我们会顺便帮你排查一下,看是否有程序在你不知情的情况下持续占用 CPU,比如被植入的挖矿程序或脚本附带的后台任务。
Q:我只是搭了个节点自己用,也会被限制吗?
自己日常用(浏览网页、看视频、偶尔下载)一般不会。长时间满速跑大流量、多人共享或者做中转,就可能触发。可以参考第四部分的建议。
如有疑问,欢迎提交工单。我们希望每位用户都能清楚了解规则,在共享资源里各自用得顺畅。
