Craving more information on Solaris? Look no further
Get insights on the configuration and performance of Sun systems and on Unix internals. We recommend books and white papers -- including one considered required reading for Sun's own systems engineers
This month's column highlights some recommended reading for those of you who are interested in how to configure different types of server systems or want to know more about how Solaris works. (1,700 words)
Q: Are you working on an update for your Sun Performance and Tuning book? What other books do you recommend for people interested in Sun performance, and have any good white papers been released recently?
A: I do hope to update my book, but have not yet found time to start work. In the meantime, I hope that these columns serve to keep you up to date, and this month I'll review a few recent books and white papers that I think you will find useful.
Required reading: Configuration and Capacity Planning for Solaris Servers
At the time I wrote my own book, Sun Performance and Tuning, I included a short section on configuration recipes, and a reference to another book that was being written on the subject. It's been a long wait, but my colleague Brian Wong has now finished writing his book, Configuration and Capacity Planning for Solaris Servers, published by SunSoft Press/PTR Prentice Hall. The book includes the results of many years of actual measurements of the performance characteristics of just about every type of system and I/O device. For example, when someone recently wanted to know how much CPU power an HSI/S card running X.25 at two megabits per second would consume, I found that the answer was in this book -- 11 percent of a 75-MHz SuperSPARC or 3 percent or a 167-MHz UltraSPARC.
Brian's book gives you information and techniques that will let you go from an end-user or customer's description of a problem to be solved, to a system configuration that is appropriately sized to handle the expected workload. It has already become required reading for Sun's systems engineers, and the initial print run sold out within two weeks! There is some overlap with my own book, but I focus more on understanding the behavior and tuning an existing system. In effect, Brian's book will help you choose the right configuration to install, and my book (and these SunWorld articles) will help you manage its performance once it's up and running.
Configuration and Capacity Planning for Solaris Servers contains three distinct sections. It starts off with a general methodology for sizing the performance and capacity of systems. It then looks at common types of servers in detail, including worked examples. There are chapters on NFS servers, database servers (including an excellent analysis of the TPC benchmarks), Internet servers (including http, e-mail, ftp, news servers, and firewalls), and time-shared systems.
The third section is reference material on system architecture. It includes a full description of the architectures of SPARC-based servers, including the recent UltraSPARC-based enterprise server range. Unfortunately the book went to press before the E10000 was announced, so it could not be included. There is a large section on storage architectures -- over a hundred pages on disks and tapes. This contains in-depth analysis of SCSI and RAID configuration and performance and detailed performance measurements for all of Sun's storage products including the RSM 2000 hardware RAID5 unit that was recently announced (this was sneaked in at the last minute). The section on backup architecture takes into account recent experience with very high-performance tape drives from StorageTEK, as well as the more familiar Exabyte and DLT products from Sun. The final architecture section covers Solaris 2, with details on the virtual memory system and filesystems.
Naturally, I'm biased, in that I've been working alongside Brian for the past four years. However this is an important book, and if you like the kind of information I provide in this column, then you will need to read and inwardly digest all 428 pages!
Keying on Unix Internals: The New Frontiers
There are several books on the internal operation of the Unix operating system, but many of them are out of date or fail to recognize the diversity of implementations. After all, Unix has developed as a set of interface standards that allow considerable freedom for innovation in the underlying implementation. What I like about Unix Internals: The New Frontiers, is that it is reasonably up to date -- published in 1996 and covering Solaris 2.5 -- and it also provides a comparative overview of several major versions of Unix, including Solaris 2, System V Release 4.2, Mach 3.0, HP-UX, IBM's AIX, and Digital's OSF/1.
The book looks at each major subsystem in the kernel, examines the challenges that occur, and then considers how each implementation addresses problems. There is extensive coverage of two features that have been added to Unix relatively recently, support for multiprocessing and threads. For threaded applications to work effectively, a threaded kernel is required. For high-performance servers, large-scale multiprocessor systems have pushed the limits of kernel support for multiprocessors. Many kernel algorithms that work perfectly well on a uniprocessor or small-scale multiprocessor fail to scale efficiently on high-end systems. The solutions implemented by Mach 3.0 and Solaris 2.5 in particular seem to me to come out well in these comparisons.
From my perspective, I have seen the work that goes into Solaris 2, and it has made a huge difference having a real 20-processor system to work on since 1992. Some major Unix implementations are only just beginning to think about going beyond 8 to 12 CPUs. Sun has been working in the 20 to 64 CPU area for some time, and currently dominates the TPC database benchmark tables with single system results that often beat results for multi-node clusters from other vendors.
Sizing up Java
I wrote the Java Server Sizing Guide white paper for the launch of the JavaStation in October 1996, but it seems to have become buried in all the other white papers, and I keep running into people who didn't know it existed. The paper is not only an overview of sizing servers for Java-based clients, it also contains a summary of my thoughts on general-purpose Web server performance that you may find interesting. There is an HTML version of the white paper in the Java Enterprise Computing section of www.sun.com. (see Resources below.)
For those of you who have already seen the paper, I'd like to update you on progress since last October. At that time it was hard to build a real workload for sizing, as applications were not ready, and users were still thinking of ways to use the JavaStation. At that time I planned a more in-depth study of Java server sizing to take place during the first half of 1997, and this is well under way.
A colleague is working full time on this project, and so far we have figured out a promising way of capturing and replaying Java-based workloads. We use a Java testing system called JavaStar from SunTest to control a copy of HotJava, then run a lot of copies of this using scripts on a large Solaris server to simulate JavaStations.
We have no results completed yet, but intend to publish an updated sizing guide in the June timeframe.
What's cookin' in Sun Developer News?
There are a lot of good articles in the newsletter, which is available online nowadays. In particular there are two that give more information on some subjects that I have covered in recent months. An article on optimizing compiler options for UltraSPARC explains some extra options that I didn't cover and has performance results for different versions of the compiler.
There is also a good introduction to the Doors high-speed interprocess communication library, which becomes a published (although still experimental) interface in Solaris 2.6, after being introduced "under the hood" in Solaris 2.5.
I know I was supposed to discuss how free memory is used and how it can be tuned in this column. My apologies -- it has been a very busy time, and I have not been able to work out the virtual memory details I mentioned last month. There's always next time....
About the author
Adrian Cockcroft joined Sun in 1988, and currently works as a performance specialist for the Server Division of SMCC. He wrote Sun Performance and Tuning: SPARC and Solaris, published by SunSoft Press PTR Prentice Hall. Reach Adrian at firstname.lastname@example.org.
If you have technical problems with this magazine, contact email@example.com