At last! The updated SE release has arrived
Learn all about the latest improvements
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)
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 (http://www.sun.com/sunworldonline/swol-03-1996/swol-03-perf.html) introduces the
percollator.se 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
nx.se that summarizes network activity.
nx.se script prints out
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
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 netstat.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
nocanputs, and defers, and has a much
higher collision threshold.
percollator.se 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
definitions are now more dynamic, so it is possible to add support
for new devices and metrics without rebuilding the SE interpreter.
siostat.se 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
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.
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 firstname.lastname@example.org 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.
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.
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 email@example.com.
If you have technical problems with this magazine, contact firstname.lastname@example.org