Click on our Sponsors to help Support SunWorld
Performance Q & A by Adrian Cockcroft

At last! The updated SE release has arrived

Learn all about the latest improvements

December  1997
[Next story]
[Table of Contents]
Subscribe to SunWorld, it's free!

After a very long wait, the updated SE release is finally ready to be let loose on the world. There are a lot of detailed improvements, but no major new tools. Additional support for Solaris 2.6 and a TCP monitoring rule are the highlights. (1,000 words)

Mail this
article to
a friend
Q Where is that new release of SE that runs on Solaris 2.6, and what about an updated book?

A We have a new version, SE3.0. It's a major rewrite with many new features and includes Solaris 2.5, 2.5.1, and 2.6 support for SPARC and x86 (no older releases any more) and many more network interface types. I've just about finished the new book as well. It contains the SE3.0 documentation and uses SE examples throughout the book. It is about 500 pages (twice the amount of the old book) and should be in bookshops early in the new year under the title: Sun Performance and Tuning: Java and the Internet, by Adrian Cockcroft and Richard Pettit, Sun Press/PTR Prentice Hall. Note the new, topical subtitle.

If you don't know what SE is, the rest of this column will make little sense. See the original descriptions of the previous release to get up to speed:

describe the basic toolkit.

The March 1996 Performance Q&A column ( introduces the Web server performance collator.


TCP monitoring with SE
The main new feature is a TCP rule that watches for retransmissions, listen queue problems, port scanners, connect attempt failures, and duplicate data. The rule is included in all the monitoring tools, virtual_adrian, zoom, percollator, etc. There is also a TCP class, containing useful data to be printed out and a convenient utility called that summarizes network activity.

The script prints out netstat and TCP class information. NoCP means nocanput, which is a packet discarded due to lack of IP level buffering on input. It can cause a TCP connection's need to retransmit the packet from the other end. Defr is defers -- this is an Ethernet metric that counts the rate at which output packets are delayed before transmission. The second interface shown is a PPP modem connection.

% se
Current tcp RtoMin is 200, interval 5, start Mon May 19 01:10:40 1997
Name  Ipkt/s Opkt/s  Err/s  Coll% NoCP/s Defr/s  tcpIn  tcpOut Conn/s %Retran
le0      0.0    0.0   0.20   0.00   0.00   0.00      0       0   0.00    0.00
ipdptp0  0.0    0.0   0.00   0.00   0.00   0.00

There has been a major upgrade to the network rule. It now watches for errors, nocanputs, and defers, and has a much higher collision threshold.

The script includes several new metrics: the TCP rule and an option for monitoring proxy caching Web servers or servers that log connect time for clients. See past Performance Q&A columns (in Resources below) for details on the proxy cache option, TCP monitoring, etc.

Solaris 2.6 and new hardware support
Support for Solaris 2.6 includes selectively filtering out the partition, tape, and NFS data from the iostat class and disk rule. The rule makes sure it only has disks that contain partitions to look at. The changes in TCP that are in 2.6 and were backported to 2.5.1 are taken care of; SE now looks for some key patches to see if they are installed and sets preprocessor #defines to cope with the changes. We also support new devices such as the Gigabit Ethernet interface, ftSPARC Ethernet, and disk devices. We dropped support for old OS releases. It's been well tested on a Tadpole 3XP (microSPARC), SPARCstation 10 (SuperSPARC), Ultra 2, E450, and E4000, and has been run on an E10000, but not during dynamic reconfiguration. If too many new disks "magically appear" the scripts will ignore them (or crash if they hit an array bounds limit that we forgot to check for). The kstat definitions are now more dynamic, so it is possible to add support for new devices and metrics without rebuilding the SE interpreter.

The new script I described in my article on clarifying disk measurements is included and has become the standard format for virtual_adrian's disk complaints.

Language changes and compatibility issues
SE3.0 is an incompatible upgrade to the language specification. If you have your own custom scripts they will need some changes to the code and the APIs. Most of the changes are to make it more C-like. The call to time() now takes an argument. You have to use time(0). The addr() function is replaced by an ampersand (&) operator, although there is still no real pointer support. Some of the C interface APIs are a bit cleaner.

Many of the classes have also been upgraded. In particular the p_iostat_class now includes full disk name and partition information, so the path_to_inst class is no longer needed. The code takes longer to start up, but is much more efficient at runtime when you have a large number of disks. The set of #includes at the head of each script is slightly different to previous releases.

Wrap up
That's all I have time for this month. I've been very busy trying to finish the book and debug the SE3.0 release at the same time. We've been testing the code for a while internally at Sun, and the interpreter seems very stable. There are still some rough edges and things I'd like to update further, but we needed to get a release out. Remember that you have the source to the scripts. If you find a problem you may be able to fix it yourself. Any problems, suggested fixes, or queries about SE should go to the alias only, which gets to myself and Rich Pettit and is logged for posterity.

Disclaimer -- SE is an unsupported experimental toolkit that is designed to make it easy to rapidly generate prototypes and try out new ideas. It is not a production quality performance management product. Vendors of such products are welcome to use the ideas expressed in the SE toolkit to improve their products' ability to manage Solaris-based systems.

Acknowledgments -- Rich Pettit no longer works at Sun but has still found time to update SE. Please pay him back for his time and effort by taking a look at his real product, the Resolute Software RAPS -- Realtime Application Performance System. Mike Bennett wrote the tcp_monitor GUI and several of the TCP rules. Thanks to the TCP group at SunSoft for feedback on the rules, which should be considered experimental at this stage.

Click on our Sponsors to help Support SunWorld


Other Cockcroft columns at

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

What did you think of this article?
-Very worth reading
-Worth reading
-Not worth reading
-Too long
-Just right
-Too short
-Too technical
-Just right
-Not technical enough

[Table of Contents]
Subscribe to SunWorld, it's free!
[Next story]
Sun's Site

[(c) Copyright  Web Publishing Inc., and IDG Communication company]

If you have technical problems with this magazine, contact

Last modified: