mdps是“每秒百万数据包数”的缩写,它衡量的是服务器网卡和CPU处理小数据包的能力,和带宽是两码事,但直接影响你带宽能不能跑满。
很多朋友查服务器配置时看到“1.2mdps”或者“5mdps”一头雾水,以为这是某种带宽单位,其实它是Million Data Packets per Second,翻译过来就是每秒能处理多少个百万级的数据包,打个比方,带宽是一条高速公路的宽度,mdps就是这条路上收费员一秒能放行多少辆车,路再宽,收费员手速跟不上,车照样堵在入口。
下面从几个角度把这事儿拆开聊,看完你就知道该关注什么了。
服务器带宽和mdps有什么区别
先明确一点,带宽的单位是Mbps或者Gbps,统计的是每秒传输的比特数,不管数据包大小,只算总量,mdps统计的是每秒处理的数据包个数,和数据包大小强相关,和你电脑CPU处理网络中断的能力强相关。
带宽是水管,mdps是搬运工
假设你家宽带有千兆,等于自来水公司给你接了根大水管,每秒能流1000升水,但这个水得有人一桶一桶往屋里搬,mdps就是搬运工每秒能搬多少桶,搬60升的小桶和搬80升的大桶,搬运工的工作量完全不同,但水管的流量上限没变。
服务器处理网络数据包的时候,每个包都有固定开销,比如检查包头、校验、分发到对应进程,就算包很小,这些步骤一个都不能少,所以很多云服务器标称万兆网卡,但实际小包转发率可能只有千兆网卡的水平,这就是为什么速度测试软件测出来带宽正常,可一跑高并发请求,业务就卡成PPT。
包转发率的计算方式
行业共识认为,判断一台服务器的网络处理能力,不能只看网卡速率,得看它的包转发率,以太网的标准最小数据包是64字节,加上前导码和帧间隙,理论上跑满万兆口需要约14.88mdps,但实际物理机达到这个数非常难,因为CPU还要干别的活儿。
很多入门级服务器的标称值在0.5mdps到1.5mdps之间,这是什么概念?一个包含SYN Flood攻击的流量,每秒可能有几十万个数据包,这台服务器光处理网络包就快满载了,业务自然崩,而高端物理机或者带智能网卡的服务器,能做到5mdps甚至10mdps以上,小包攻击基本无感。
为什么你买的百兆带宽跑不满
经常有站长抱怨,买了100Mbps带宽的服务器,实际传输文件最多只能跑到40Mbps,先用排除法,磁盘速度没问题,CPU负载不高,那问题多半出在包处理上,文件传输协议通常把数据分成较小的块,尤其是数据库同步或者Web服务,大量小包在服务器和客户端之间来回确认,每个包都要过一遍CPU,包转发率不够,带宽就被浪费了。

酷番云和简米云的轻量服务器常用队列数量较少、主频受限的CPU,遇到这种场景就是“有心无力”,这种情况不是运营商偷带宽,是服务器自己的网络处理链路太弱。
游戏服务器mdps要求多高
游戏服务器是mdps最敏感的场景之一,因为游戏通信的核心就是海量小包,一个60Hz的射击游戏,每个玩家每秒向服务器发送60个状态更新包,每个包只有几百字节,200个在线玩家就是每秒12000个包,还没算上服务器广播回给所有玩家的数据,连普通家用路由器都能处理这个量级,但服务器上跑着业务逻辑、数据库读写、日志写入,CPU已经很忙了。
不同场景的参考数值
用几个具体场景来说话:
- 小型Minecraft服务器(20人):每秒几百到几千个包,任何服务器的mdps都够
- 大型多人在线游戏(千人同图):每秒几十万个包,需要至少1mdps以上的包处理能力
- 金融高频交易网关:每秒数万个订单小包,延迟要求极高,参考2mdps以上
- 视频直播转码推流:视频流是大包,但对保持连接的信令包也有要求,一般1mdps够用
如果你租的服务器标注了“网络优化型”或者“高包转发率”,通常这类实例会分配独立的队列和更高级别的网卡虚拟化技术,价格比同配置普通实例贵一些,但游戏体验明显更稳。
别拿吞吐量当包转发率
有些服务器商宣传“万兆网卡”,没用,因为网卡只是硬件链路,真正决定小包转发速率的是CPU中断处理能力和网卡驱动多队列优化,拿Iperf3测UDP吞吐量很容易跑满,但换成每秒发送大量64字节的小包测试,数值立刻掉下来,业内专家指出,选购高并发服务器时,直接问服务商要实测的pps数据,别只看带宽标注。
怎么看一台服务器的mdps够不够
在没有专业测试工具的情况下,也可以从配置信息里大致判断,或者登录服务器做几个简单的实测。
看CPU型号和网卡队列
这个方向比较直观。
- 网卡队列数:Intel X710系列和Mellanox ConnectX系列通常支持多队列,每个队列由独立的CPU核心处理中断,支持8个队列的网卡,明显优于只有2个队列的入门网卡
- CPU主频和核心数:网络中断处理是CPU密集型工作,主频4.0GHz以上的核心处理单个包更快
- 是否开启RSS(Receive Side Scaling):Linux系统里用
ethtool -l eth0可以查看网卡队列数量

登录服务器执行命令,能获取不少信息。
# 查看网卡队列数 ethtool -l eth0 # 查看网卡实际协商速率 ethtool eth0 | grep Speed # 查看每秒处理的数据包数(实时) sar -n DEV 1
sar -n DEV 1输出的rxpck/s就是每秒接收的数据包数,如果这个数字长期接近带宽满载理论值,说明你的服务器正在满负荷处理小包,加带宽解决不了问题,得换更高mdps的实例才行。
用pktgen做包转发率实测
如果你有物理机或者独立服务器,可以用Linux内核自带的pktgen模块做压力测试,这是可验证的实操方法,歧视步骤不复杂。
# 加载pktgen模块 modprobe pktgen # 进入pktgen控制目录 cd /proc/net/pktgen/
配置流程是在kpktgend_0里添加网卡,设置包大小为64字节,然后用pgset命令设置发送速率,测试的时候用sar或者top观察CPU软中断占用,如果CPU软中断占用接近100%,而发包数远低于网卡标称的线速,这台机器就是CPU密集型网络瓶颈。
大部分云计算厂商不提供底层包转发率工具,这时可以用iperf3 -u配合指定带宽,或者直接用hping3做小包压测,测出来的数据不至于太精确,但能判断机器在高并发小包场景下的表现。
云服务器和物理机的差距
云服务器的网络路径更长,经过虚拟交换机、宿主机安全组、OVS流表等环节,物理机直接面对物理网卡,云服务器是共享宿主机网络资源的,如果你要跑高mdps的业务,云服务器要选“裸金属”或者“高性能计算型”实例,这类实例不经过虚拟化层,性能接近物理机。
国内头部云厂商的高主频计算型实例,官方标注的包转发率通常在2mdps到5mdps之间,物理机用DPDK技术能跑到10mdps以上,但这已经是专业运维领域的内容了。
买服务器时怎么匹配mdps和带宽
你买服务器的时候,一般会纠结带宽买多少兆、流量买多少GB,很少有人问mdps,但真正线上一出问题,80%的情况都是包转发率先扛不住了,根据业务选配置,下面这套思路比较实用。
先定业务再挑硬件
以网站站群为例,一个日均几万次访问的普通企业站,带宽10Mbps就够,mdps几乎不需要关心,但你要做API接口服务,每秒上千次请求,即使每个请求只返回几十KB的数据,产生的小包数量一样可观,这时候选服务器就得看包转发率。
具体实操判断标准:
- 业务单个请求的返回体小于10KB,且吞吐量要求高:优先看mdps
- 业务主要传输视频、安装包等大文件:带宽比mdps更关键
- 同时在线连接数超过1万个:两者都重要,因为维持大量长连接也需要处理周期性心跳包

地域和价格的影响
如果是面向海外用户的服务,选择美国服务器或者香港服务器时,通常更看重带宽大小和线路质量,美国服务器的大带宽配置便宜,但相当一部分低价机房用的CPU型号较老,支持的中断队列少,mdps表现拉跨,香港服务器带宽贵,多数机器给的是按流量计费,包转发率反而做得比较扎实,因为商家知道用户就是奔着低延迟去的。
价格方面,同样配置下,高mdps的服务器一般贵30%到一倍,比如一台普通4核8G服务器月付200元,标注高包转发率的同配置可能要350元,这点差价对于正经业务来说不算什么,毕竟换机器和迁移成本更高。
如果你预算有限,又需要高mdps,还有一个路子:自建物理机放机房托管,一台二手E5服务器配合Intel X540网卡,实际包转发率能做到1.5mdps左右,整机成本也就是云服务器半年的价格,但你得自己搞定硬件故障和网络运维,时间成本也得算进去。
关于mdps和带宽的常见问题
Q1: mdps数值越高越好吗?
不完全是,mdps高意味着服务器网络处理能力强,但你要为这个能力付费,一台能跑5mdps的服务器,如果长期只跑0.1mdps的负载,纯属浪费,平衡点在标称mdps是你业务峰值包速率的3到5倍比较合适,预留一些余量应对突发流量。
Q2: 小网站需要关注mdps吗?
不需要,日访问量在几万以内的网站,数据包数量非常有限,服务器CPU完全能应对,网站卡顿的原因通常是带宽不足、后端数据库慢、PHP进程数耗尽,和mdps关系不大,这类场景把带宽买够,配置升级优先选内存就对了。
Q3: 服务器mdps不够能自己提升吗?
可以做有限度的优化,Linux系统里调大网络缓冲区队列长度,开启网卡多队列和RSS,把中断绑定到特定CPU核心,关闭无关服务减少CPU占用,这些操作能将现有硬件的包转发率提升20%到50%,但硬件上限在那,真的遇到大流量攻击或者极端高并发,只能升级硬件或更换更高规格的云实例。
服务器的带宽和mdps,一个是管道的粗细,一个是管道口分拣包裹的速度,带宽不够,大流量直接卡死,mdps不够,流量不大但全是小包,处理器照样累垮,明白自己业务属于哪种类型,自然就知道配置单上该看什么了。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/817094.html


评论列表(2条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是或者部分,给了我很多新的思路。感谢分享这么好的内容!
@日灵1988:这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于或者的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!