服务吞吐量

吞吐量

流量指标可以指系统层面的网络和磁盘 IO,服务层面的 QpS、PV 和 UV 等数据。流量和突增或突减都可能预示着系统可能出现问题(攻击事件、系统故障等)。以下为流量主要关注的方面:

  • 基础监控:磁盘和网卡 IO;
  • 业务监控:核心功能流量,例如通过 QpS/PV/UV 等通常能够代表 Web 服务的流量,而 ElasticSearch 的流量可用索引创建速率、搜索速率表示。

我们通常说的网站流量(traffic)就是指网站的访问量,是用来描述访问一个网站的用户数量以及用户所浏览的网页数量等指标,常用的统计指标包括网站的独立用户数量、总用户数量(含重复访问者)、网页浏览数量、每个用户的页面浏览数量、用户在网站的平均停留时间等。

网站访问量的衡量标准一个是 IP,另一个是 PV,常以日为标准,即日独立 IP 和 PV 来计算.

  • 访问数(IP):即 Internet Protocol,指独立 IP 数。00:00-24:00 内相同 IP 地址只被计算一次。
  • 综合浏览量(PV):即 Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。

二者的联系与区别:PV 高不一定代表来访者多;PV 与来访者的数量成正比,但是 PV 并不直接决定页面的真实来访者数量。比如一个网站就你一个人进来,通过不断的刷新页面,也可以制造出非常高的 PV。IP 是一个反映网络虚拟地址对象的概念,独立用户是一个反映实际使用者的概念,每个独立用户相对于每个 IP,更加准确地对应一个实际的浏览者。使用独立用户作为统计量,可以更加准确的了解单位时间内实际上有多少个访问者来到了相应的页面。

一个独立 IP 可以产生多个 PV,所以 PV 个数>=IP 个数。

  • PV(Page View)值:是指一定时间范围内所有浏览该网站的访问者请求的页面数量之合。(例如:该网站一天有 500 个访问者,每个访问者浏览的页面数量平均为 8 页,则每天的 PV 是 500×8=4000)
  • Hits 值:是指对每个页面元素的请求数量。(一个页面中任何一个图片或者 flash 文件都算是一个页面元素)
  • 日浏览字节数:即日流量,是指一天内,访问者请求的所有页面元素的字节数之和。

访问量指标

  • PV 即 page view,页面浏览量 用户每一次对网站中的每个页面访问均被记录 1 次。用户对同一页面的多次刷新,访问量累计。
  • UV 即 Unique visitor,独立访客 通过客户端的 cookies 实现。即同一页面,客户端多次点击只计算一次,访问量不累计。
  • IP 即 Internet Protocol,本意本是指网络协议,在数据统计这块指通过 ip 的访问量。即同一页面,客户端使用同一个 IP 访问多次只计算一次,访问量不累计。

QPS & TPS & RPS

TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS 包括一条消息入和一条消息出,加上一次用户数据库访问。(业务 TPS = CAPS × 每个呼叫平均 TPS)。TPS 是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的 TPS 值。

QPS:每秒查询率 QPS 是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。

对应 fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。

  • 并发连接数(The number of concurrent connections):某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
  • 并发用户数(The number of concurrent users,Concurrency Level):要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

QPS(Queries Per Second)每秒能处理查询数目。是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。QPS 是每秒钟处理完请求的次数。这里的请求不是指一个查询或者数据库查询,是包括一个业务逻辑的整个流程,也就是说每秒钟响应的请求次数。

TPS(Transactions Per Second)指每秒处理的事务数目;事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。TPS 的过程包括:客户端请求服务端、服务端内部处理、服务端返回客户端,客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。

RPS(Requests Per Second) | 吞吐率: 服务器并发处理能力的量化描述,单位是 reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

饱和度

饱和度可以理解为服务的利用率,可以代表系统承受的压力。所以饱和度与流量息息相关,流量的上升一般也会导致饱和度的上升。通常情况下,每种业务系统都应该有各自的饱和度指标。在很多业务系统中,消息队列长度是一个比较重要的饱和度指标,除此之外 CPU、内存、磁盘、网络等系统资源利用率也可以作为饱和度的一种体现方式。

基础监控自然包含 CPU、内存、磁盘和网络利用率、内存堆栈利用率、文件句柄数、TCP 连接数等;业务监控:

  • 基础功能单元使用率,大多数系统对其基础的功能单元都有其处理能力的上限,接近或达到该上限时可能会导致服务的错误、延迟增大。例如 HDFS 的 Block 数量上升会导致 NameNode 堆内存使用率上升,Kafka 的 Topics 和 Partitions 的数量、Zookeeper 的 node 数的上升都会对系统产生压力。

  • 消息队列长度,不少系统采用消息队列存放待处理数据,所以消息队列长度在一定程度上可以代表系统的繁忙程度。如 ElasticSearch、HDFS 等都有队列长度相关指标可供采集。

Links

下一页