- Mathematical modeling correction - 1 Update
- cmsg cancel <nck9is$7mu$7@dont-email.me> - 1 Update
Ramine <ramine@1.1>: Mar 19 03:38PM -0700 Hello...... I have corrected something in my mathematical modeling, i have substracted the Client node from the network, since the Client users download the files in parallel... Please reread my corrected mathematical calculations... Here is the mathematical modeling of a queuing network that is an ecommerce website and its calculations: So, since the network of the those ecommerce websites consist of queues interconnected in Tandem like this: A -> M/G/c database servers queue -> M/M/1 Network queue -> A The characteristic of the M/M/1 Network queue is: Download speed of 60 Mbps Upload speed up to 30 Mbps; or 12 Mbps in certain areas I have choosen this, look here: http://affaires.videotron.com/web/small-medium-companies/internet-services/internet-access/fibre-hybrid-60 Upload speed of 30 Mbps is equal to 3.75 Mbytes per second. The mean size of the the files transfered is: 100 Kbytes Adding the protocol overhead of 20% to the mean size of the files gives 100 Kbytes * 120% = 120 Kbytes And from the empirical tests on my harddisk , the service rates on each server of the M/M/c queue (c: is the number of servers) of the different database transactions of the ecommerce website such us read,write, delete is: 10266 read transactions per second 2053200 write transactions per second 3422 delete transactions per second. and the percentage of the different transactions of the read,write and delete, is: The read transactions are 70% and the write transactions are 20% and the delete transations are 10% So the first moment that is the mean delay of the service of the M/G/c queue of the database servers is: M1 = 0.70 * (1/10266) + 0.20 * (1/2053200) + 0.10 * (1/3422) so, M1 = 0. 0001 So the service rate of the each server in the M/G/c queue of the database servers queue is: 1/M1 = 10000 transactions per second. And the service rate in the M/M/1 Network queue is: 32 transactions per second So now we have all the necessary numbers to do our calculation, so since the Knee of the M/M/1 Network queue is at 50%, so this will give 32 transactions per second * 50% = 16 transactions per second. So here is all the network: A -> M/G/c database servers queue -> M/M/1 Network queue -> A So the arrival rate A must not go beyond the Knee of the Network queue that is 16 transactions per second , this is equal to 1382400 transactions per day, , and the mean waiting time of the overall Network of queues that is in tandem is equal to: The mean waiting time of the M/M/c database servers queue is: D = Phi^c / Mu*(1 - Phi^c) [2] Phi: is the utilization and Mu: is the the service rate in server queue. Phi = U(Density of circulation) / c (number of servers in the M/M/c queue) This is equal then to: Phi = (16 /10000) / c =0.0016 /c , so let's take that c, the number of database servers is 2, so, this is equal to 0.0016 /2 = 0.0008 So, D = 0.0008^2 / (10000*(1- 0.0008^2)) = 0.000000000064 seconds The mean response time R = D + 1/Mu = 0.000000000064 + 1/10000 = 0.0001 second and the mean waiting time of the M/M/1 Network queue is: D = (Phi/Mu) / (1- Phi) and Phi = Lambda / Mu Lambda is the arrival rate A and Mu is the service rate of the M/M/1 queue. this is equal to: Phi = 16 / 32 = 0.5 D = (0.5/32) / (1-0.5) = 0.03 seconds. The mean response time R = D + 1/Mu = 0.03 + 1/32 = 0.06 second So the total mean response time of the Network is: 0.0001 second of the database servers queue + 0.06 second of the Network queue, so the total mean response time of the network of queues in Tandem is equal to: 0.06 seconds. So the calculations are good. - I have updated my simulation of my queuing model simulation of an M/M/c queue to version 1.03 , now it works with both Delphi XE and Freepascal compilers , M means markovian and c is the number of servers. Here it is: https://sites.google.com/site/aminer68/m-m-n-queuing-model-simulation-with-object-pascal To do a simulation , just open the file called MMn.pas and you have to change the following: InterArrivals:=TExponentialDistribution.Create(420623,1.0/3.0); ServiceTimes:=TExponentialDistribution.Create(220623,1.0/4.0); The above 1.0/3.0 is the mean delay of the Exponential distribution of the arrivals, you can change it for something else. and 1.0/4.0 is the mean delay of the Exponential distribution of the service of each server of the M/M/c queue, you can change it for something else. And with this simulation you can do easily the simulation of an ecommerce website as i showed you before. - I have come to an interesting post... Now i hope you have read my previous post titled: "And here is how to do a simulation of the ecommerce websites" Why i have done this mathematical calculations ? To show you what permit exactly mathematical queuing theory , it permit to do a better QoS , and of course that's easy to understand, but it permit also like in the Amdahl law of parallel computing to model the ecommerce websites and to know how much the ecommerce websites can handle of throughput and loads by taking into account the Knee of the Network queue , and it allows us to change theorically the characteristics of the M/G/c queue of the database servers and the Network queue to be able to do calculations before adding empirically more servers or more bandwidth , so that's optimization and that's good for your pocket. But i have come to an interesting post...because this modeling of an ecommerce website with mathematical Queuing theory or simulation is not sufficient, because it's necessary also to know how to limit the number of connected internet users on the webserver to be able to control the waiting time of the internet users to not go beyond a not acceptable waiting time, and it's important to give more priority to the write transactions because that's critical for your pocket, because it makes a company make more money, so my idea to realize this requirement, is to use a FIFO synchonization semaphore for each kind of database transactions such us read , write and delete , and you have to do a calculation of the time that the internet users are waiting by computing it, if the time go beyond an acceptable waiting time you will simply not process those internet users and tell them to try to reexecute there transactions again after a certain time... so, this requirement and my solution that i have added is the right tool to make a better QoS and to make your ecommerce website succeed. - Here is the book that i have read about capacity planning with mathematical queuing theory, you have to read it: Performance by Design: Computer Capacity Planning By Example http://www.amazon.com/Performance-Design-Computer-Capacity-Planning/dp/0130906735 But the researcher in this book is using Queuing with Multiple-Class Models to model an ecommerce website, but i have not used his method because i have modeled the M/G/c database servers with an hyper-exponential service and i have approximate it with an M/M/c queue , please take a look at my two previous posts that have been corrected and that are titled: "Here is the mathematical calculations of a queuing network" and " I have come to an interesting post" To understand more my mathematical modeling of ecommerce websites etc. - The previous calculations are correct... Now can we ask ourselves an important question.. What is the very important thing that this mathematical modeling of a queuing network of an ecommerce website that i have done have showed us ? Here is my answer: You have to know that this mathematical modeling that i have done is very important, because it shows also a very important thing, that the arrival rate is is limited by the Network download bandwidth , since the arrival rate must not go beyond the Knee of 50% of the M/M/1 queue of the Network queue , so the Network of the ecommerce website that i have modeled is limited by the Network download bandwidth, since an operational law of queuing theory states that: The rate of the jobs leaving any stable node must equal its arrival rate. - An important mathematical deduction... I will clear something on my mathematical calculations Since i have mathematically modeled a queuing network in Tandem of ecommerce websites.. I have to tell you something important.. Here is the network of the ecommerce websites: A -> M/G/c database servers queue -> M/M/1 Network queue -> A So as you have noticed the queues are interconnected in Tandem, so this is good, but notice with me that the last queue that is the M/M/1 Network queue is usually slower than the M/G/c database servers queue that has an hyper-exponential service, so my mathematical calculations have showed that the arrival rate A to the network is limited by the slowest queue that is in my example the M/M/1 Network queue, so since the M/G/c data servers queue is the fastest, so no need to optimize and to speed more the M/G/c data servers queue by adding more servers , and that is a very important thing to know, because this mathematical deduction is infered from an operational law of queuing theory states that: The rate of the jobs leaving any stable node must equal its arrival rate and it is infered from the the Knee of the M/M/1 queue that is equal to 50%, so the best way to optimize and to speed this network is by adding more bandwidth on the slowest queue node like the Network node, so be smart and don't forget this advise. - Here my other important mathematical deduction If you read this book that i have read: Performance by Design: Computer Capacity Planning By Example http://www.amazon.com/Performance-Design-Computer-Capacity-Planning/dp/0130906735 I have said the researcher in this book is using Queuing with Multiple-Class Models to model an ecommerce website, but i have not used his method because i have modeled the M/G/c database servers with anhyper-exponential service and i have approximate it with an M/M/c queue(c: is the number of servers), other than that this book don't learn you as i have learned you that the network of the ecommerce website is limited by the slowest node.. Other than that: I have just read the following page, look at the the USL (Universal Law of Computational Scalability) of Dr. Gunther, he wrote this: (See: http://en.wikipedia.org/wiki/Neil_J._Gunther ) -------------- The relative capacity C(N) of a computational platform is given by: C(N) = N ------------------------------------------ 1 + a (N - 1) + ß N (N - 1) where N represents either the number of physical processors in the hardware configuration or the number of users driving the software application. The parameters a and ß represent respectively the levels of contention (e.g., queueing for shared resources) and coherency delay (i.e., latency for data to become consistent) in the system. The ß parameter also quantifies the retrograde throughput seen in many stress tests but not accounted for in either Amdahl's law or event-based simulations. ---------- His website: http://www.perfdynamics.com/ If you read carefully , you will see that Dr. Gunther is using this model to predict scalability after he simulates a relatively small number of vusers in LoadRunner ( because of licensing costs, it's cost-effective) and after that he finds the coefficients of the 2nd-degree polynomial (quadratic equation) and then transform those coefficients back to the USL parameters using the a = b - a and ß = a. And then he is extrapolating with the USL model to higher loads to predict scalability. Now my question follows: Suppose we have obtained a small number of measured load-points with Loadrunner or others tools, and we calculated the USL equation to predict scalability of a webserver , how the USL model can predict if the scalability/performance is limited by the network bandwidth and not the server ? I think USL can not predict this. So USL don't have the power of the Queuing theory that allows us to deduce more facts that are important such us the network is limited by the slowest node as i have learned you on my previous posts. Thank you, Amine Moulay Ramdane. |
bleachbot <bleachbot@httrack.com>: Mar 19 08:37PM +0100 |
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page. To unsubscribe from this group and stop receiving emails from it send an email to comp.programming.threads+unsubscribe@googlegroups.com. |
No comments:
Post a Comment