Skip to main content

Not quite ready for Twitter

It might be helpful to set a few expectations up front to Readers of this blog about what kind of blogging you can expect from me, with the added caveat that I believe such expectations are made to be broken...
As an adjunct to my day job as a software developer, I have written & published numerous articles on topics related to computer performance over the years. Since about 1996, I have been focused on Windows, so I was mainly writing and publishing articles on Windows performance and scalability topics. (If you are interested, many of these early articles are available on the DemandTech web site here: http://demandtech.com/knowledge_perspectives.html. More concise answers written in response to FAQs are published here: http://faq.demandtech.com/.)  In the past, I often published similar material in industry newsletters, trade magazines, and in the official publications of the Computer Measurement Group, a professional association that I joined in 1983 and remained active in for years.  
With a colleague, Dr. Odysseus Pentakalos, I eventually organized these Windows articles into a book called Windows 2000 Performance Guide, published in 2002 by O’Reilly. (My editor at O’Reilly was responsible for the title, not me. That may have been the name of the book the publisher wished Odysseus and I had written.) I decided to write the book mainly because I discovered a shortage of solid, reliable guidance on performance topics for Microsoft Windows developers and system administrators as I began working to develop performance tools for that platform.
Later, and with the support and cooperation of the Microsoft Windows Server Performance team, I updated that original book to create a volume available in the official Windows Server 2003 Resource Kit, also entitled a Performance Guide, published in 2005 by Microsoft Press. Because the Win2K3 book was written with the active assistance of Microsoft and the material I wrote was vetted by members of the development staff, the 2nd book is certainly the more authoritative one of the two. It also benefitted from feedback I received from Readers of the 1st book and from attendees of a seminar I taught on Windows performance that covered much of the same ground as the books.
Today, that book on Windows Server 2003 performance (internally, Windows Server 2003 is Windows NT version 5.2) unquestionably needs updating to reflect changes to the Windows operating system since 2003. Advances in computer hardware over the interim also contribute to the need for a new edition. For instance, there is very little information in either of those books for systems professionals interested in the performance implications of
·         multi-core processors,
·         solid state disks,
·         virtualization,
·         cloud computing,
and a wide range of other “hot” topics of more recent vintage. Nor is there very much solid information in those books for computer professionals responsible for the scalability and performance of large scale web sites running on Windows Servers using technology associated with ASP.NET, Microsoft SQL Server, and the .NET Framework in general.
As it happens, these are some of the topics in computer performance that I have been actively investigating in the past 5-6 years or so since the publication of the Win2K3 book. I plan to use this blog to consolidate some of the material I have written since the Win2K3 book that I view as “work in progress” towards a next edition of the Windows Performance Guide, filling in some of the major gaps I mentioned earlier. I will also publish newer material based on current topics of interest to me.
Anticipating a question that arises frequently from fans of my two Windows Performance Guide books, I would like to explain that a complete and up-to-date revision requires both a willing publisher and enough spare cycles on my part to execute. Since I expect a willing publisher would not be too difficult to find, to be totally honest, what is lacking on my part is the time to execute on a thorough revision. The process of assembling and polishing a book for print is both grueling & time-consuming. Realistically, I don’t see it happening. So the best I can offer in the interim is this blog, where I will post on topics that are either missing from the book or need serious revisions in light of subsequent changes to the hardware and/or software.
A blog works for me. The phenomenon of self-publishing using the Internet is something I have gotten interested in, too, setting up and contributing to a team blog during my recent 4-year stint working at the Developer Division at Microsoft, and occasionally ghostwriting  an entry for one of the executives there to publish. You are not likely to discover a book that I might write in the check-out line of your local bookstore -- assuming you have a local book store; the rewards of writing such a book are certainly not financial. Visually, the blogging format is often less than adequate for the type of writing I do – I am hoping the latest version of Blogspot is more flexible.
I suppose I am not the normal blogger, attuned to the short attention span that characterizes most content on the web. If you care to check out at the team blog I started at Microsoft (for a representative example, see http://blogs.msdn.com/b/ddperf/archive/2008/06/10/mainstream-numa-and-the-tcp-ip-stack-part-i.aspx) , you should get a good flavor of my blogging style. You can see that, as a writer, I am not quite ready for Twitter. I am more likely to publish a longer piece with considerable research behind it once every two months or so than something short and pithy three times a week. Whenever I have something substantial of chapter length ready to go, I will likely chop it into pieces of more convenient size for publishing it on the web and blog about it in installments.

Comments

Popular posts from this blog

Hyper-V Architecture: Intercepts, interrupts and Hypercalls

Intercepts, interrupts and Hypercalls Three interfaces exist that allow for interaction and communication between the hypervisor, the Root partition and the guest partitions: intercepts, interrupts, and the direct Hypercall interface. These interfaces are necessary for the virtualization scheme to function properly, and their usage accounts for much of the overhead virtualization adds to the system. Hyper-V measures and reports on the rate these different interfaces are used, which is, of course, workload dependent. Frankly, the measurements that show the rate that the hypervisor processes interrupts and Hypercalls is seldom of interest outside the Microsoft developers working on Hyper-V performance itself. But these measurements do provide insight into the Hyper-V architecture and can help us understand how the performance of the applications running on guest machines is impacted due to virtualization. Figure 3 is a graph showing these three major sources of virtualization overhead...

Memory Ballooning in Hyper-V

The previous post in this series discussed the various Hyper-V Dynamic Memory configuration options. Ballooning Removing memory from a guest machine while it is running is a bit more complicated than adding memory to it, which makes use of a hardware interface that the Windows OS supports. One factor that makes removing memory from a guest machine difficult is that the Hyper-V hypervisor does not gather the kind of memory usage data that would enable it to select guest machine pages that are good candidates for removal. The hypervisor’s virtual memory capabilities are limited to maintaining the second level page tables needed to translate Guest Virtual addresses to valid machine memory addresses. Because the hypervisor does not maintain any memory usage information that could be used, for example, to identify which of a guest machine’s physical memory pages have been accessed recently, when Guest Physical memory needs to be removed from a partition, it uses ballooning, which transfe...

High Resolution Clocks and Timers for Performance Measurement in Windows.

Within the discipline of software performance engineering (SPE), application response time monitoring refers to the capability of instrumenting application requests, transactions and other vital interaction scenarios in order to measure their response times. There is no single, more important performance measurement than application response time, especially in the degree which the consistency and length of application response time events reflect the user experience and relate to customer satisfaction. All the esoteric measurements of hardware utilization that Perfmon revels in pale by comparison. Of course, performance engineers usually still want to be able to break down application response time into its component parts, one of which is CPU usage. Other than the Concurrency Visualizer that is packaged with the Visual Studio Profiler that was discussed  in the previous post , there are few professional-grade, application response time monitoring and profi...