产能规划问题相关

把内容关起来

相关的几个问题:

性能分析问题(performance analysis question):

CPU速度为x MIPS时,500/s的HTTP请求,响应时间是多少?

也就是给出:

  • 一个有特定产量的计算机
  • 工作负载

输出:

  • 系统性能(响应时间,吞吐量)

单个任务的响应时间计算:

Response Time = Departure time - Arrival Time
Response Time = Waiting Time + Processing Time

(利用率)Utilisation: 系统在忙的时间比例

单服务器先进先出队列问题:

  • 只有一个收银台的超市
  • 单个处理器先进先出
  • 硬盘相关的先进先出任务

如果给定每个任务进入系统的时间和需要的处理时间,我们可以计算每个任务的等待时间,每个人物的响应时间(Response Time)

这一类问题可能需要知道的东西:

  • arrival rate
  • inter-arrival time statistical distribution
  • the time required to process the job

服务时间(Service Time)

在某个资源上处理一个请求所需的时间。

问题举例:

通过10kbps的连接发送一个1000byte的包,服务时间是1000*8/10000=0.8s

在硬盘上读取一个X byte的文件,所需时间是:

seek time + X / transfer rate

我们有:

Service Time = Overhead + Job size / Processing Rate

产能规划

一个产能规划问题可以通过解决一系列的性能分析问题而被解决

性能度量:

响应时间、等待时间、吞吐量

单服务器队列建模

对计算系统的建模

单服务队列仅考虑计算机系统中的一个组件,
可以是CPU,硬盘,或者是一个传输通道

一个请求可能需要多个资源,比如上述多个中的一个。

我们通过队列网络(Queueing Networks)来建模一个有很多资源的计算机系统。

两者的不同记录一下

但服务队列就是一堆任务进来,比如它们只需要使用CPU,然后给定它们来的时间和处理所需的时间,然后计算相关的度量。

队列网络则是比如现在一个计算机有一个CPU和硬盘,而不同的任务给定了到达的时间和所需要的CPU和硬盘的时间的序列,然后我们计算相关的度量。显然更复杂了。

开放队列网络和封闭队列网络

一个可以接受外部的请求,工作负载来自于arrival rate
另一个则是封闭的,不是很理解

开放队列网络可能在负载平衡的状态下吞吐率即为arrival rate
封闭队列网络的吞吐率取决于用户或者用户规模?

在开放队列网络里面的工作叫事务,在封闭队列网络里面叫任务。

计算两种网络需要不同的技术,然后像数据库这样的系统可能结合了两种不同的网络。

DBMS

即Database Server Management System

DBMS中设定了活动的事务的最大值,成为Multi-programming level。(MPL)

操作分析Operation Analysis(OA)

又提出了一个新的概念。

“Operational”指收集在每天的操作中收集性能数据

应用:

  • 使用这些数据来建立队列网络模型
  • 进行瓶颈分析
  • 进行改进分析

我们以一个单任务队列为例:

A指Arrival Requests,C指Completed,B只服务器的Busy状态,T指观察的这一段时间

Arrival Rate $\lambda=\frac{A}{T}$
Output Rate $X=\frac{C}{T}$
Utilisation $U=\frac{B}{T}$
每个完成的请求的平均服务时间=B/C

举个例子:

观察一分钟,那么T=1 min
CPU:

  • busy时间36s
  • 1790 requests arrived
  • 1800 requests completed
    可以计算:
  • MeanSTPC = B/C = 36s / 1800 = 0.02s
  • U = 36/60=60%
  • Arrival Rate = 1790/60 = 29.83 requests/s
  • Output Rate = 1800/60 = 30 requests/s

利用率法则

既然U=B/T
MSTPC S=B/C
OR X=C/T

我们可以得到
U=SX,即利用率等于每个完成的任务的平均服务时间*完成率

利用率法则是操作法则的一部分。

操作分析的应用

  • 不需要观察每一个数值,比如可以用B来推断U
  • 一致性检查,如果U!=SX,那一定有地方出问题了
  • 可以用于性能分析: 瓶颈分析,平均值分析

平衡总结?这标题可能不太对

OA makes the assumption that:

C=A
或者至少是接近的

这意味着系统是在平衡状态。

QNs里的操作分析

这个就比较复杂了。