tag:blogger.com,1999:blog-6977755959349847093.post3108549188249919774..comments2024-03-01T21:53:15.921-08:00Comments on The Pith of Performance: Throughput-Delay CurvesNeil Guntherhttp://www.blogger.com/profile/11441377418482735926noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-6977755959349847093.post-63515671636291294422012-03-22T00:21:16.126-07:002012-03-22T00:21:16.126-07:00I am using RNG in Java. It is just that after look...I am using RNG in Java. It is just that after looking at http://perfdynamics.blogspot.in/2010/05/emulating-internet-traffic-in-load.html and http://perfdynamics.blogspot.in/2010/05/load-testing-think-time-distributions.html I realized I am missing the concepts. So I thought a book like Lyman Ott's introductory book might help.Mohan Radhakrishnanhttps://www.blogger.com/profile/08457140016320542845noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-58828377147202903092012-03-21T09:01:55.171-07:002012-03-21T09:01:55.171-07:00Mohan, If I understand your question, you don'...Mohan, If I understand your question, you don't need a statistics book to use an RNG (or pseudo-RNG, more accurately). That's really more about computational arithmetic than statistics.<br /><br />You can either use the inbuilt RNG that belongs to the computer language you are using, e.g., rand() in C and Perl, or you can roll your own.<br /><br />An example of the latter is given in the listing on p. 35 of my Perl::PDQ book. It's the subroutine called rand_num, which returns values in the range 0.0 to 1.0, but you could alter the range to be something more convenient.Neil Guntherhttps://www.blogger.com/profile/11441377418482735926noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-52726228407323025722012-03-21T02:28:09.783-07:002012-03-21T02:28:09.783-07:00This sentence should read
This kind of workload ...This sentence should read <br /><br />This kind of workload generation is what is *also* described in the PDQ book based on modeling and measurement ?Mohan Radhakrishnanhttps://www.blogger.com/profile/08457140016320542845noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-62589064504866397082012-03-21T00:02:16.833-07:002012-03-21T00:02:16.833-07:00>I would suggest that my books are >relevant...>I would suggest that my books are >relevant on either end of the >workload modeling process:<br />>* what are the perf objectives >going in<br />>* what info is the data trying to >tell you coming out<br /><br />Ok. Let's say I want to generate a uniform random distribution of values between two bounds and pipe it to a socket program. I think it involves some statistics ? This kind of workload generation is what is described in the PDQ book ? Initially I thought I should get a statistics book ? What are your thoughts ?<br /><br />I am just gathering a few ideas before buying some books.Mohan Radhakrishnanhttps://www.blogger.com/profile/08457140016320542845noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-25527410734406897582012-03-21T00:01:41.143-07:002012-03-21T00:01:41.143-07:00>I would suggest that my books are >relevant...>I would suggest that my books are >relevant on either end of the >workload modeling process:<br />>* what are the perf objectives >going in<br />>* what info is the data trying to >tell you coming out<br /><br />Ok. Let's say I want to generate a uniform random distribution of values between two bounds and pipe it to a socket program. I think it involves some statistics ? This kind of workload generation is what is described in the PDQ book ? Initially I thought I should get a statistics book ? What are your thoughts ?<br /><br />I am just gathering a few ideas before buying some books.Mohan Radhakrishnanhttps://www.blogger.com/profile/08457140016320542845noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-34849266263555139572012-03-05T12:24:39.372-08:002012-03-05T12:24:39.372-08:00This question is really about creating a *model* w...This question is really about creating a *model* workload or workloads. The answer is as conceptually difficult as specifying a TPC benchmark (viz., 100 page doc)<br /><br />It depends on:<br />* the app<br />* the test rig<br />* how all that compares with prod<br />* what are the performance test objectives<br />just to name a few.<br /><br />Some/many of these points are certainly covered in the Yahoo slides you pointed me at.<br /><br />I would suggest that my books are relevant on either end of the workload modeling process:<br />* what are the perf objectives going in<br />* what info is the data trying to tell you coming out<br /><br />I wouldn't agree with everything that is in those Y! slides either. For example, "performance" vs "scalability" is a misnomer, in my view.<br /><br />If we consider things from the USL perspective http://www.perfdynamics.com/Manifesto/USLscalability.html <br />* "performance" == scalability as a function of N processES (e.g., LR)<br />* "scalability" == scalability as a function of p processORS<br /><br />In other words, they are 2 sides of the same coin.Neil Guntherhttps://www.blogger.com/profile/11441377418482735926noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-16419998565028633032012-03-05T02:49:32.093-08:002012-03-05T02:49:32.093-08:00I have a plan to read your book because we want to...I have a plan to read your book because we want to generate workloads for netty NIO servers. I've searched the net too.<br /><br />Are there recommendations or reading material to plan and write workload generators ? Is it in your book ?<br />An example is https://github.com/brianfrankcooper/YCSB/wiki<br /><br />MohanMohan Radhakrishnanhttps://www.blogger.com/profile/08457140016320542845noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-32401940886822642472012-03-05T02:49:12.680-08:002012-03-05T02:49:12.680-08:00I have a plan to read your book because we want to...I have a plan to read your book because we want to generate workloads for netty NIO servers. I've searched the net too.<br /><br />Are there recommendations or reading material to plan and write workload generators ? Is it in your book ?<br />An example is https://github.com/brianfrankcooper/YCSB/wiki<br /><br />MohanMohan Radhakrishnanhttps://www.blogger.com/profile/08457140016320542845noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-18117141827172620252012-03-05T02:43:36.123-08:002012-03-05T02:43:36.123-08:00I have a plan to read your book because we want to...I have a plan to read your book because we want to generate workloads for netty NIO servers. I've searched the net too.<br /><br />Are there recommendations or reading material to plan and write workload generators ? Is it in your book ?<br />An example is https://github.com/brianfrankcooper/YCSB/wiki<br /><br />MohanMohan Radhakrishnanhttps://www.blogger.com/profile/08457140016320542845noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-34063329416813594132012-02-04T10:14:41.556-08:002012-02-04T10:14:41.556-08:00Baron, You are completely correct: the USL model (...Baron, You are completely correct: the USL model (inverted or otherwise) has nothing to do with the Erlang-C function (in the sense of M/M/m queue). This should be pretty obvious when you consider the software version of the USL. That involves a finite number N of processes or threads or whatever, whereas an M/M/m queue can have an unlimited (but not infinite) number of processes.<br /><br />Similarly, as you've observed, the "inverted" USL (don't forget Z) exhibits a "hockey stick" response-time curve. Here, "hockey stick" literally means the "handle" appears (asymptotically) to be <b>linear</b> with a finite positive slope.<br /><br />The corresponding limit for an M/M/m response-time curve has infinite slope.Neil Guntherhttps://www.blogger.com/profile/11441377418482735926noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-41662023293654005382012-02-04T09:49:29.296-08:002012-02-04T09:49:29.296-08:00Thanks, Meta.
From the 1st edn: "Some autho...Thanks, Meta. <br /><br />From the 1st edn: "Some authors e.g., p. 241 {Splaine} combine the throughput and response time data together in the same X versus R plot<br />(Fig. 2.22). These throughput-delay plots also have a convex shape. This type of representation may be compact but it also can be misleading because it resembles the response time in Fig. 2.17 for an unlimited request queue. This can act as a visual miscue. Moreover, it is not very useful from the standpoint of assessing performance bounds and optimal loads---topics we discuss in Chap. 5."<br /><br />So, I do cover the topic, but I was hoping that I had included the SPEC example as well. Seems not in either PPDQ1 or PPDQ2.<br /><br />The plots on pp. 103 ff. are not quite the same thing since the x-axis is normalized to 1 by virtue of Little's law. In other words, the x-axis there is X*S, which is not the same thing as X alone.Neil Guntherhttps://www.blogger.com/profile/11441377418482735926noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-69208883543436473092012-01-27T07:35:27.949-08:002012-01-27T07:35:27.949-08:00In you book, Analyzing Computer Systerm Performanc...In you book, Analyzing Computer Systerm Performance with Perl::PDQ, 1st ed., there is an XR plot on page 94. Page 103, 104 and 105 you have the rho-R/S plots.metasofthttps://www.blogger.com/profile/17149213781391733478noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-40903117376009794482012-01-25T18:20:14.826-08:002012-01-25T18:20:14.826-08:00I've been meaning to ask Neil what math is inv...I've been meaning to ask Neil what math is involved in the relationship between this and Erlang C. It's trivial to flip the USL on its head with Little's Law and come up with a plot of throughput versus response time, which looks a lot like the hockey stick curve you get from the Erlang C function. I've got some scripts that cobble all this together with Awk and gnuplot; I need to use R instead.<br /><br />But I assume (haven't even tried to verify) that the inverted USL and Erlang C are not the same thing. So if we took Erlang C and did a somersault, then what would we get for a scalability model? Anything useful and interesting?Baronhttps://www.blogger.com/profile/01621441847303652718noreply@blogger.comtag:blogger.com,1999:blog-6977755959349847093.post-32004742014070702292012-01-24T07:23:23.312-08:002012-01-24T07:23:23.312-08:00They are my favorite plots - I put a histogram on ...They are my favorite plots - I put a histogram on each axis and call it a Cockcroft Headroom Plot. R code is on perfcap.blogspot.com - search for chp<br /><br />I also got AppDynamics to add throughput vs response time plots to their product. More tools should have them...Adrian Cockcrofthttps://www.blogger.com/profile/14695336135416848505noreply@blogger.com