The Pith of Performance
Possibly pithy insights into computer performance analysis and capacity planning based on the Guerrilla series of books and training classes provided by Performance Dynamics Company.
Friday, February 14, 2025
The Sommerfeld-Dirac Paradox Reexamined
Does the Efficiency Compute Frontier Represent New Physics?
Tuesday, July 23, 2024
Resolving the Dirac-Sommerfeld Paradox via the Path to Quantum Computers
This topic goes back to my M.Sc. thesis, when my supervisor, Prof. Christie Eliezer (2nd from left in the photo), who was one of Dirac's very few research students, told me about the Dirac-Sommerfeld paradox. He thought it might be pertinent to my thesis.
Being a physics "genius", I didn't pursue it because I assumed it had been resolved by more modern developments like, Quantum Field Theory — a subject that neither Eliezer nor I knew much about. I was wrong. Very wrong!
Monday, June 24, 2024
Extended Microbenchmarks for Modern Disk Drives
While reading it I had some thoughts that turned out to be too long for tweeting a response. So, here I am revisiting my traditional blog, mostly for the formatted space it provides, but also to remind myself that it still lives!
The Article
The article contains a massive amount of very admirable work (~1 year of effort, including benchmark code development) that is exceptionally well written, considering all the details that are covered. I didn't come across any typos or misspellings, either. There are actually TWO articles in one: an extensive summary analysis (not an Executive Summary) and an equally long Appendix containing the detailed measurements obtained from each disk model that was benchmarked.Quite apart from my subsequent remarks below, the inferences about internal disk structure drawn from the microbenched timing-data are quite remarkable. And the beautiful plots generated from those data (e.g., mapping thousands of sector defects) are something to behold. Understandably, HDD manufacturers are not keen to include such plots in their marketing collateral.
The author states the following as his prime motivations for developing the extended microbenchmark algorithms.
"I had initially set out to detect the number of platters in a disk without opening up a disk, but in modern disks this simple-sounding task requires measuring several other properties before inferring the count of recording surfaces."Although a truly laudible effort, that is largely driven by scientific "curiosity", I can't help but wonder if the author is straining at a gnat."Many of the prior works had practical applications in mind (as opposed to pure curiosity), and were willing to trade measurement speed for a small loss in accuracy. Although [my microbenchmark] algorithms are not fundamentally different, prior work likely avoided exploring these because these measurements can take many hours and there is little practical benefit for applications such as performance modelling or improving data layouts in filesystems."
With a bit of perseverance, I could find several corresponding drive specs online. And, although manufactuers never lie (smirk) the search terms can vary widely.
Platters = disks = discs...Applying the author's terminology:
Surfaces = heads = actuators...
- The number of discrete platters has to be an integer.
- The number of surfaces is an even integer (each platter having two sides).
Example Geometries
The following disk models were compared against their respective manufacturer specs that I was able to find online.- Tosh X300 5GB has 5 platters and therefore 10 surfaces (1 Gig per platter).
- Seagate ST1 5GB has 1 platter and therefore 2 surfaces.
- WD S25, however, has 2 platters but only 3 surfaces. How can that be?
The author infers the same number of WD S25 used surfaces (3) based on his benching data which, in itself, is quite remarkable. On the other hand, this same information is generally included in the disk manufacturer specs (or similar docs). Worst case, you could actually contact the manufacturer and they would very likely tell you; especially if they thought they could sell you some disks.
Bitter Pill
However, even when you determine all these interesting extended disk metrics (measured, calculated or specified), you are no better off when it comes to using that information for better storage performance — as the author admits (see quote above) — or predicting future HDD internal geometries. Just like with modern multicore microprocessors,- control (especially that related to performance) has progressively been taken away from you and placed inside a silicon module. You can't blue-wire that. Similarly for HDD packaging.
- manufacturers tend to implement the cheapest solutions not the best performing solutions, which you can't correct. See WD S25 above. Similarly for HDD controller logic.
Computer manufacturers of all stripes are in business to make a profit and to avoid being eaten by the competition. They will do whatever it takes (good, bad or ugly), whenever it's deemed necessary, to maintain or improve their market position. An unfortunate casuality of this ongoing commercial warfare is that any painstakingly acquired scientific analysis can become an historical footnote overnight.
Performance Modeling
On the topic of performance modeling of disks (to which the author also alludes), his article is a good reminder of the mind-boggling complexity of data layout in modern disks. And that's essentially just the static picture. Along with that goes the complex dynamics of local request-chain caching and optimization.In that vein, it's a fool's errand to try and model individual modern disks. In principle, you would need to construct a simulation model to handle all the potential transient behaviors. But that, in turn, requires deciphering the embedded controller algorithms, which are not only highly complex but proprietary. You'll never figure them out and no manufacturer will ever reveal them. So, a performance simulation is actually a non-starter.
On a more positive note, there is a surprisingly counterintuitive technique for constructing accurate performance models of collective disks, like SANs, using the PDQ (Pretty Damn Quick) performance analyzer. That's something I demonstrate in my Guerrilla Capacity and Performance (GCAP) classes.
Related Posts
- Henry Wong's microbenchmark code written in C++
- ATTO Disk Benchmark (2019) — not cited by Henry Wong but I saw it used in other disk microbenchmark reports.
- The SSD World Will End in 2024
- Green Disk Sizing
- Disk Storage Myth Busters
- All competitive benchmarking is institutionalized cheating (Gaphorism 1.21)
Tuesday, April 20, 2021
PDQ Online Workshop, May 17-21, 2021
All modern computer systems, no matter how complex, can be thought of as a directed graph of individual buffers that hold requests until to be serviced at a shared computational resource, e.g., a CPU or disk. Since a buffer is just a queue, any computer infrastructure, from your laptop up to Facebook.com, can be represented as a directed graph of queues.
The directed arcs or arrows in such a graph correspond to workflows between different queues. In the parlance of queueing theory, a directed graph of queues is called a queueing network model. PDQ is a tool for predicting performance metrics such as, waiting time, throughput, optimal user-load.Two major benefits of using PDQ are:
- confirmation that monitored performance metrics have their expected values
- predict performance for circumstances that lie beyond current measurements
Thursday, November 26, 2020
PDQ 7.0 is Not a Turkey
New Featues
- The introduction of the STREAMING solution method for OPEN queueing networks. (cf. CANON, which can still be used).
- The CreateMultiNode() function is now defined for CLOSED queueing networks and distinguished via the MSC device type (cf. MSO for OPEN networks).
- The format of Report() has been modified to make the various types of queueing network parameters clearer.
- See the R Help pages in RStudio for details.
- Run the demo(package="pdq") command in the R console to review a variety of PDQ 7 models.
Maintenance Changes
The migration of Python from 2 to 3 has introduced maintenance complications for PDQ. Python 3 may eventually be accommodated in future PDQ releases. Perl maintenance has ended with PDQ release 6.2, which to remain compatible with the Perl::PDQ book (2011).Sunday, November 8, 2020
PDQ Online Workshop, Nov 30-Dec 5, 2020
- free open source software package
- with an online user manual
As shown in the above diagram, any modern computer system can be thought of as a directed graph of individual buffers where requests wait to be serviced at some kind of shared computational resource, e.g., a CPU or disk. Since a buffer is just a queue, any computer infrastructure, from a laptop to Facebook, can be represented as a directed graph of queues. The directed arcs or arrows correspond to workflows between the different queues. In the parlance of queueing theory, a directed graph of queues is called a queueing network model. PDQ is a tool for calculating the performance metrics, e.g., waiting time, throughput, optimal load, of such network models.
Some example PQD applications include models of:
- Cloud applications
- Packet networks
- HTTP + VM + DB apps
- PAXOS-type distributed apps
- confirmation that monitored performance metrics have their expected values
- predict performance for circumstances that lie beyond current load-testing
- All sessions are INTERACTIVE using Skype (not canned videos)
- Online sessions are usually 4 hours in duration
- A typical timespan is 2pm to 6pm CET each business day
- A nominal 5-10 minute bio break at 4pm CET
- Attendees are encouraged to bring there own PDQ projects or data to start one
- Find out more about the workshop.
- Here is the REGISTRATION page.