所谓 QPS,query per second

每秒查询率QPS是对一个特定的服务器在规定时间内所处理请求量的标准。原先是针对数据库的一个衡量标准,渐渐被引用到了应用服务器的性能衡量上。

QPS = 并发量 / 平均响应时间

并发量 = QPS * 平均响应时间

那怎么通过性能监控图来推算出大致的QPS呢?下面我们来看下这张图(一分钟统计一次),

在单区游戏服导量高峰,3500在线,外网入流量带宽为20M左右(数据量为20M/8=2.5M),数据包请求量为46k,平均每个消息体大小为50bytes,

QPS=2.5*1024*1024/50=52429,为什么数据包的大小会比QPS小一些,因为TPS底层会把小包合粘合起来,大包拆分出来发送。

UDP 包的大小就应该是 1500 - IP头(20) - UDP头(8) = 1472(Bytes)
TCP 包的大小就应该是 1500 - IP头(20) - TCP头(20) = 1460 (Bytes)

最小的大小为 65 bytes

谈谈游戏服务器单区QPS的计算_IP

我们买的公有云服务器的带宽一般是出网带宽上限(下行带宽),那么上行是不是就没限制了呢,不是的,一般在腾讯云:

公网的入网带宽是指流入云服务器实例的带宽。

  • 用户购买的固定带宽大于10Mbps时,腾讯云会分配与购买的带宽相等的外网入方向带宽。
  • 用户购买的固定带宽小于10Mbps时,腾讯云会分配10Mbps外网入方向带宽。

 

公网流量是根据下行字节数统计而来的流量数据,是应用层数据。在实际网络传输中,产生的网络流量要比纯应用层流量多5% - 15%,故腾讯云统计的流量可能会比用户在服务器自行统计的流量多10%左右。
TCP/IP 包头消耗:基于 TCP/IP 协议的 HTTP 请求,每一个包的大小最大是1500个字节,包含了 TCP 和 IP 协议的40个字节的包头,包头部分会产生流量,但是无法被应用层统计到,这部分的开销大致为3%左右。
TCP 重传:正常网络传输过程中,发送的网络包会有3% - 10%左右会被互联网丢掉,丢掉后服务器会对丢弃的部分进行重传,此部分流量应用层也无法统计,占比约为3% - 7%。