Francisco Heron de Carvalho Junior
![[Graphics:Images/OpenQueue_gr_1.gif]](Images/OpenQueue_gr_1.gif)
X = external arival rate, system throughput = service time per visit to the ith device
= number of visits to the ith device
M = number of devices (not including terminals)
= mean number of jobs at ith device
R = response time of the ith device
R = system response time = utilization of the ith device
= mean number of jobs in the system
Figure 1 shown below represents a queueing model of a server consisting of a CPU and two disks, A and B. Measurements on a distributed system with six clients making requests to the file server produced the following data:
![[Graphics:Images/OpenQueue_gr_9.gif]](Images/OpenQueue_gr_9.gif)
Based on these observations, we can compute the service demands and visit ratios as follows:
![[Graphics:Images/OpenQueue_gr_10.gif]](Images/OpenQueue_gr_10.gif)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
We now have all the input parameters required to analyse the system.
![[Graphics:Images/OpenQueue_gr_18.gif]](Images/OpenQueue_gr_18.gif)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
The model can be used to answer some of the typical questions. For example, we might want to quantify the impact of the following changes:
1. Increase the number of clients to B
2. Use a cache for disk B with a hit rate of 50%, although it increases the CPU overhead by 30% and the disk B service time (per I/O) by 10%.
3. Have a lower cost server with only one disk (disk A) and direct all I/O requests to it.
The first question can be answered if we assume that the new clients make requests similar to those measured. The request arrival rate will go up by a factor of . Since the arrival rate was three requests per second, with more clients it will become four requests per second. The new analysis is as follows:
![[Graphics:Images/OpenQueue_gr_37.gif]](Images/OpenQueue_gr_37.gif)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![[Graphics:Images/OpenQueue_gr_45.gif]](Images/OpenQueue_gr_45.gif)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Thus, if the number of clients is increased from 6 to 8, the server response time will degrade by a factor of
![[Graphics:Images/OpenQueue_gr_63.gif]](Images/OpenQueue_gr_63.gif)
The second question requires changing ,
and
as follows:
![[Graphics:Images/OpenQueue_gr_68.gif]](Images/OpenQueue_gr_68.gif)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
The analysis of the changed systems is as follows
![[Graphics:Images/OpenQueue_gr_76.gif]](Images/OpenQueue_gr_76.gif)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Thus, if we use a cache for disk B, the server response time will improve by a factor of
![[Graphics:Images/OpenQueue_gr_94.gif]](Images/OpenQueue_gr_94.gif)
The third question requires adjusting and
. We assume that there is enough space on disk A to be able to accomodate all files on both disks The analysis is as follows:
![[Graphics:Images/OpenQueue_gr_98.gif]](Images/OpenQueue_gr_98.gif)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![[Graphics:Images/OpenQueue_gr_106.gif]](Images/OpenQueue_gr_106.gif)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![[Graphics:Images/OpenQueue_gr_124.gif]](Images/OpenQueue_gr_124.gif)
![[Graphics:Images/OpenQueue_gr_127.gif]](Images/OpenQueue_gr_127.gif)
![[Graphics:Images/OpenQueue_gr_134.gif]](Images/OpenQueue_gr_134.gif)
![[Graphics:Images/OpenQueue_gr_135.gif]](Images/OpenQueue_gr_135.gif)
![[Graphics:Images/OpenQueue_gr_138.gif]](Images/OpenQueue_gr_138.gif)
![[Graphics:Images/OpenQueue_gr_140.gif]](Images/OpenQueue_gr_140.gif)
![[Graphics:Images/OpenQueue_gr_148.gif]](Images/OpenQueue_gr_148.gif)
![[Graphics:Images/OpenQueue_gr_149.gif]](Images/OpenQueue_gr_149.gif)
![[Graphics:Images/OpenQueue_gr_152.gif]](Images/OpenQueue_gr_152.gif)
![[Graphics:Images/OpenQueue_gr_159.gif]](Images/OpenQueue_gr_159.gif)
![[Graphics:Images/OpenQueue_gr_160.gif]](Images/OpenQueue_gr_160.gif)
![[Graphics:Images/OpenQueue_gr_163.gif]](Images/OpenQueue_gr_163.gif)
![[Graphics:Images/OpenQueue_gr_165.gif]](Images/OpenQueue_gr_165.gif)
![[Graphics:Images/OpenQueue_gr_173.gif]](Images/OpenQueue_gr_173.gif)
![[Graphics:Images/OpenQueue_gr_174.gif]](Images/OpenQueue_gr_174.gif)
![[Graphics:Images/OpenQueue_gr_177.gif]](Images/OpenQueue_gr_177.gif)
![[Graphics:Images/OpenQueue_gr_184.gif]](Images/OpenQueue_gr_184.gif)
![[Graphics:Images/OpenQueue_gr_185.gif]](Images/OpenQueue_gr_185.gif)
![[Graphics:Images/OpenQueue_gr_188.gif]](Images/OpenQueue_gr_188.gif)
![[Graphics:Images/OpenQueue_gr_190.gif]](Images/OpenQueue_gr_190.gif)
![[Graphics:Images/OpenQueue_gr_198.gif]](Images/OpenQueue_gr_198.gif)
![[Graphics:Images/OpenQueue_gr_199.gif]](Images/OpenQueue_gr_199.gif)
![[Graphics:Images/OpenQueue_gr_202.gif]](Images/OpenQueue_gr_202.gif)
![[Graphics:Images/OpenQueue_gr_203.gif]](Images/OpenQueue_gr_203.gif)
![[Graphics:Images/OpenQueue_gr_218.gif]](Images/OpenQueue_gr_218.gif)
![[Graphics:Images/OpenQueue_gr_219.gif]](Images/OpenQueue_gr_219.gif)
![[Graphics:Images/OpenQueue_gr_222.gif]](Images/OpenQueue_gr_222.gif)
![[Graphics:Images/OpenQueue_gr_224.gif]](Images/OpenQueue_gr_224.gif)
![[Graphics:Images/OpenQueue_gr_238.gif]](Images/OpenQueue_gr_238.gif)
![[Graphics:Images/OpenQueue_gr_239.gif]](Images/OpenQueue_gr_239.gif)