服务器带宽是什么

结论: 服务器带宽(Bandwidth)是指服务器网络出口在单位时间内能够传输的数据速率,常用单位是 Mbps(兆比特每秒)或 Gbps;1 Mbps 的理论下载速度约 128 KB/s,1 MB/s 的下载速度约需 8 Mbps 带宽。它是衡量服务器"出网管道粗细"的核心指标。

"这台服务器带宽多大?"——这是买服务器时被问得最多、也最容易答错的一个问题。常见误解有三种:把带宽和流量混为一谈;以为 100 Mbps 下载速度就是 100 MB/s;以为标了"100M 带宽"就一定能跑满。这三种误解都会直接导致买错配置和算错成本。

理解带宽的关键是要区分三件事:管道粗细(带宽)、流过的水总量(流量)、实际流速(吞吐)。本文把这三者的关系讲清楚,并把带宽的单位换算、计费口径、共享与独享的区别、以及实测与排查命令一次讲透。

带宽、流量、吞吐三者有什么区别?

带宽是链路的传输能力上限(单位 Mbps/Gbps),流量是一段时间内实际传输的数据总量(单位 GB/TB),吞吐是某一时刻的实际传输速率(单位 MB/s)。 三者关系可以类比供水:带宽是水管直径,流量是一个月流了多少吨水,吞吐是现在水流的速度。

概念英文单位回答的问题典型场景
带宽BandwidthMbps / Gbps管道最多能跑多快买服务器时选配置
流量Traffic / Data TransferGB / TB这个月一共传了多少按流量计费时的账单
吞吐ThroughputMB/s / Mbps现在实际跑多快测速与性能排查
速率上限Rate LimitMbps被限制到多少云厂商限速、QoS

必须记住的三组换算

  1. 1 Byte = 8 bits。所以 100 Mbps 带宽的理论最大下载速度是 100 ÷ 8 = 12.5 MB/s。反过来,要达到 10 MB/s 的下载速度,至少需要 80 Mbps 带宽。
  2. 1 Mbps 跑满一天的流量:1 Mbps × 86400 秒 ÷ 8 ÷ 1024 ÷ 1024 ≈ 10.5 GB/天。所以 10 Mbps 带宽跑满一天约 105 GB,一个月(30 天)约 3.1 TB。
  3. 1 Gbps = 1000 Mbps(网络设备按十进制),而存储容量按二进制(1 GB = 1024 MB),计算时注意别混用。
bash
# 快速换算:1 Mbps 满速一天产生多少 GB
python3 -c "print(1*86400/8/1024/1024)"      # 输出约 10.29(GB/天)

# 计算:100 Mbps 带宽,跑满 30 天的流量(TB)
python3 -c "print(100*86400*30/8/1024/1024/1024)"  # 输出约 30.2(TB/月)

# 反推:希望峰值下载 20 MB/s,需要多少 Mbps
python3 -c "print(20*8)"                     # 输出 160(Mbps)

最后一个算式背后的含义很重要:如果你的网站要支持 100 个用户同时以 200 KB/s 的速度下载,就需要 100 × 200 KB/s = 20000 KB/s ≈ 20 MB/s ≈ 160 Mbps 带宽。 这就是带宽需求估算的基本方法。

服务器带宽有哪些类型?

按是否独占划分有共享带宽与独享带宽;按线路划分有单线、双线、BGP 多线;按方向划分有入向(上行)与出向(下行)。 买带宽时这三类必须逐一确认。

分类维度类型说明适用
独占性独享带宽合同保障固定值,如 100 Mbps 独享,随时可用生产业务、有 SLA 要求
独占性共享带宽多台机器共用一条链路,高峰期会争抢测试、低流量业务、预算极紧
线路单线仅接入单一运营商(电信/联通/移动)用户群集中在同一运营商
线路双线/多线接入两家以上运营商,各给一个 IP用户群分布在两三家
线路BGP 多线单 IP 通过 BGP 协议广播,自动选最优路径面向全国用户的生产业务
方向出向(下行)服务器发往用户的数据,国内通常按此计费网站、下载、视频
方向入向(上行)用户发往服务器的数据,国内常免费表单提交、文件上传

BGP(Border Gateway Protocol,边界网关协议)多线是目前面向全国用户业务的主流选择:机房通过 BGP 把自己的 IP 段同时广播给电信、联通、移动等运营商,运营商的路由器自动选择最优路径,用户无论用哪家宽带访问都是最快的那条路。代价是 BGP 带宽单价通常高于单线。

带宽的计费口径有哪些?

国内 IDC 常见的带宽计费方式有三种:保底计费、95 计费、按流量计费。云厂商常见的是按带宽峰值计费、按流量计费和共享带宽包。

计费方式计算口径适合场景注意点
保底计费按合同约定的带宽值收费,用多用少都一样流量平稳、需要可预测成本用不满就是浪费
95 计费每 5 分钟采样一次,按月去掉最高的 5% 采样点,取剩余最高值计费流量有明显波峰波谷要理解"去掉 5%"的含义
按流量计费按实际出网流量(GB)计费流量极低或极度不规律突发流量可能账单失控
带宽峰值计费按当日或当月出网带宽峰值计费云服务器常见峰值决定成本
共享带宽包多台机器共用一个带宽池,按总量计费机器多、峰值错开需要监控总用量

95 计费(95th Percentile)是最容易被误解的一种:一个月按 5 分钟采样会产生约 8640 个采样点,去掉最高的 432 个(5%),剩下的最高值就是计费带宽。它的意义是允许你在 5% 的时间里偶尔冲高而不被计费,非常适合有周期性突发(如每天晚高峰)的业务。

怎么实测服务器带宽?

测带宽分三步:确认网卡协商速率 → 测到目标节点的实际吞吐 → 观察实时流量与连接分布。 只做第一步会得出"我明明是千兆网卡为什么这么慢"的错误结论。

步骤一:确认网卡协商速率(物理层上限)

bash
# 查看网卡协商速率与双工模式
sudo ethtool eth0 | grep -E "Speed|Duplex|Link detected|Auto-negotiation"

# 列出所有网卡状态
ip link show

# 查看驱动与队列数(多队列对高带宽很重要)
sudo ethtool -l eth0
sudo ethtool -g eth0

如果 Speed 显示 1000Mb/s 但实际跑不满,问题在链路上层(运营商限速、对端能力、拥塞),而不是网卡。

步骤二:测两点之间的实际吞吐(iperf3)

bash
# 服务端(在一台已知带宽充足的机器上执行)
sudo apt-get install -y iperf3
iperf3 -s -p 5201

# 客户端:单线程测 30 秒
iperf3 -c <服务端IP> -p 5201 -t 30

# 客户端:4 并发测(更能打满高带宽链路)
iperf3 -c <服务端IP> -p 5201 -t 30 -P 4

# 反向测(测服务端到客户端方向,即下行)
iperf3 -c <服务端IP> -p 5201 -t 30 -P 4 -R

# UDP 测(测丢包与抖动,视频/语音业务必测)
iperf3 -c <服务端IP> -p 5201 -u -b 100M -t 30

注意:单线程 TCP 受窗口大小与延迟影响,跨公网长肥管道(高带宽 × 高延迟)下往往打不满。必须加 -P 用多并发才能测出真实带宽上限。

步骤三:观察实时流量与连接分布

bash
# 实时查看网卡速率与对端 IP 排行
sudo iftop -i eth0 -n -P

# 按秒采样网卡吞吐(kB/s)
sar -n DEV 1 10

# 按进程统计网络占用(需要 root)
sudo nethogs eth0

# 按连接查看收发队列与窗口,排查是否被限速
ss -tin

步骤四:公网测速(无 iperf3 服务端时的替代方案)

bash
# 安装并使用 speedtest-cli 测到公共节点的速率
sudo apt-get install -y speedtest-cli
speedtest-cli --simple

# 用 curl 从已知站点下载,观察实际速率
curl -o /dev/null -w "speed: %{speed_download} B/s  size: %{size_download} B\n" \
     https://speed.hetzner.com/1GB.bin

带宽需求怎么估算?

估算公式:所需带宽(Mbps)= 峰值并发用户数 × 单用户平均速率(KB/s) × 8 ÷ 1024。 下面给几个典型场景的参考值。

业务类型单用户平均速率1000 日活(峰值并发约 50)参考带宽主要瓶颈
企业官网(含图片)页面 1~2 MB,按 200 KB/s 计约 80 Mbps 峰值(未开 CDN)图片体积
博客 / 资讯站页面 500 KB~1 MB约 40~80 Mbps首屏资源数
API / 移动端接口单次 5~50 KB10 Mbps 通常足够并发数与延迟
视频点播(1080P)4~8 Mbps/用户50 并发约需 300~400 Mbps码率 × 并发
直播推流(单路 1080P)4~6 Mbps 上行按路数线性叠加上行带宽
软件下载站受限于单用户分配速率极易跑满,必须走 CDN出网流量

三条能显著降低带宽需求且成本极低的做法:

  • 上 CDN:静态资源(图片、JS、CSS、视频)走 CDN 后,源站出网流量通常下降 70%~90%,带宽需求随之大幅下降。
  • 开启压缩与缓存:Nginx 开启 gzip/brotli,配合 expires 缓存头,能把重复请求直接拦在浏览器。
  • 图片与视频优化:WebP/AVIF 替代 JPEG,体积可降 30%~50%;视频用 H.265 替代 H.264。

常见误区 / 排错提示

  1. 把 Mbps 当成 MB/s。 100 Mbps 带宽的最大下载速度是 12.5 MB/s,不是 100 MB/s。买带宽时用"目标 MB/s × 8"来换算,这是最常见的采购错误。
  2. 以为网卡千兆就等于带宽千兆。 网卡 1000 Mbps 只是服务器到交换机的物理速率,真正的出网带宽由运营商或云厂商的合同/限速决定。很多云服务器网卡是万兆,但购买的公网带宽只有 5 Mbps。
  3. 只用单线程测速就下结论。 跨公网、延迟 30 ms 以上的链路上,单 TCP 连接受拥塞窗口限制,可能只能跑到总带宽的一小部分。测速必须加 iperf3 -P 4 或更多并发。
  4. 忽略了内网带宽与公网带宽的区别。 云服务器的"内网带宽"(同地域内机器互访)通常远高于公网带宽,且不计费。把数据库、缓存、对象存储放在同地域内网,能绕开公网带宽瓶颈。
  5. 带宽跑满就只想着加带宽。 先查是谁在用。用 iftop 看对端 IP 排行,很多时候是爬虫、盗链、被当成图床,或者某个日志/备份任务在同步。加带宽解决不了盗链,反而会让账单翻倍。
bash
# 快速定位:按源 IP 统计当天的出网请求量(Nginx 日志)
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -n 20

# 统计被请求最多的 URL(盗链与爬虫常表现为单一 URL 高频)
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -n 20

# 统计出网字节数最大的请求
awk '{print $10, $7}' /var/log/nginx/access.log | sort -rn | head -n 20

常见问题(FAQ)

1 Mbps 带宽下载速度是多少?

理论最大约 128 KB/s(1 Mbps ÷ 8 = 0.125 MB/s = 128 KB/s)。实际因协议开销(TCP/IP 头部、TLS 等)通常只有 110~120 KB/s。反过来算,想要 1 MB/s 的下载速度,需要约 8 Mbps 带宽,实际建议按 10 Mbps 规划留余量。按同一比例可推:10 Mbps 满速约 1.25 MB/s,100 Mbps 约 12.5 MB/s,1 Gbps 约 125 MB/s。之所以存在 8 倍差距,是因为运营商与云厂商标注的 Mbps 指的是比特(bit),而浏览器和下载工具显示的是字节(Byte),这正是"标称 100M 带宽实际只有 12M"的根本原因。实测时若长期低于理论值的 80%,应依次排查链路丢包、跨运营商访问、对端限速与单线程窗口限制。

个人博客需要多大带宽?

日访问量 1000 以内、页面做了基本优化并开启 CDN 的博客,5~10 Mbps 通常足够。若未上 CDN,图片直接从源站出,建议 20~30 Mbps 起步。判断依据是看峰值时段的出网带宽曲线,长期低于 50% 说明买多了,长期贴顶就该加。

独享带宽和共享带宽差多少?

价格上共享带宽通常便宜数倍,但性能不能保证。共享意味着几十台机器争抢同一条出口链路,晚高峰实际可用带宽可能只有标称值的十分之一。生产业务、有访问体验要求的站点必须买独享带宽,并写入合同的 SLA 条款。

95 计费是什么意思,划算吗?

95 计费是按月把所有 5 分钟采样点中最高 5% 去掉,取剩下最高值计费。它的好处是允许每天有约 1.2 小时的突发不被计费。流量有明显波峰(如每天晚高峰 2 小时冲高、其余时间平稳)的业务,95 计费通常比保底计费便宜;流量平稳或长期跑满的业务则相反。

云服务器带宽怎么选更省钱?

先上 CDN 把静态流量分流,源站只留动态请求,这样公网带宽可以选得很小(5~10 Mbps 常见)。同地域内的数据交互走内网,不占公网带宽。出网稳定且量大时对比按流量与按带宽峰值两种计费,用历史流量曲线分别测算后取低者。

带宽跑满了怎么办?

先定位,再加带宽。用 iftop 看对端 IP、nethogs 看进程、Nginx 日志看 URL 排行,确认是正常业务增长还是盗链、爬虫、异常同步任务。确认是正常流量后,优先级是:上 CDN > 开压缩与缓存 > 优化资源体积 > 最后才加带宽。