所谓 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
我们买的公有云服务器的带宽一般是出网带宽上限(下行带宽),那么上行是不是就没限制了呢,不是的,一般在腾讯云:
公网的入网带宽是指流入云服务器实例的带宽。
- 用户购买的固定带宽大于10Mbps时,腾讯云会分配与购买的带宽相等的外网入方向带宽。
- 用户购买的固定带宽小于10Mbps时,腾讯云会分配10Mbps外网入方向带宽。
公网流量是根据下行字节数统计而来的流量数据,是应用层数据。在实际网络传输中,产生的网络流量要比纯应用层流量多5% - 15%,故腾讯云统计的流量可能会比用户在服务器自行统计的流量多10%左右。
TCP/IP 包头消耗:基于 TCP/IP 协议的 HTTP 请求,每一个包的大小最大是1500个字节,包含了 TCP 和 IP 协议的40个字节的包头,包头部分会产生流量,但是无法被应用层统计到,这部分的开销大致为3%左右。
TCP 重传:正常网络传输过程中,发送的网络包会有3% - 10%左右会被互联网丢掉,丢掉后服务器会对丢弃的部分进行重传,此部分流量应用层也无法统计,占比约为3% - 7%。