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

SyMON and SE get upgraded

Find out what's changed in these helpful utilities

SunWorld
February  1999
[Next story]
[Table of Contents]
[Search]
Subscribe to SunWorld, it's free!

Abstract
In December 1998, Sun released SyMON 2.0, a complete rewrite and update of its system monitoring product, which includes a version of the rule set that Adrian developed as its health monitor. This month Adrian examines the new release and also discusses the beta version of SE 3.1, the next update to the SE toolkit.

Plus: Adrian takes a quick look at RAPS, Resolute Software's performance monitoring tool for distributed, multitier enterprise applications. (2,000 words)



Mail this
article to
a friend
Q: What do you think of SyMON 2.0, and what is its relation to the SE toolkit?

A: The SE toolkit is an experimental tool that both Rich Pettit and I use to rapidly prototype new ideas and get feedback on them. A few other users also develop code in SE, and many people just use it as a system monitor. We then take those ideas and productize them. I have been working with the SyMON development team, who took the "virtual adrian" rule set and made it into an optionally loadable health monitor module in SyMON 2.0.

SyMON 2.0
SyMON was developed by the server software division at Sun Computer Systems to act as a user interface to the hardware features it created. It is also a powerful and extensible system and network monitoring platform, which has caught the eye of other groups at Sun as a platform that can be extended to manage other products. SyMON 1.x was a Motif-based system monitor for a single machine. SyMON 2.0 is a Java-based monitor with multiple user consoles that can monitor multiple systems using the secure extensions to SNMPv2 to communicate over the network. (See Resources to download SyMON 2.0.)

SyMON 1.x was included for free with Solaris as part of the Sun Computer Systems server bundle. SyMON 2.0 will also be free when it is used to monitor and control a single server, or manage any number of generic SNMP devices. However,to unlock its capability to manage more than one server at a time, you will be required to purchase an extra license.

Currently, SyMON 2.0 supports Solaris 2.5.1, 2.6, and Solaris 7 running on the sun4d and sun4u architectures. This includes the old SPARCcenter 2000 and SPARCserver 1000, and all UltraSPARC-based systems. It will not monitor sun4m-based SPARCstation 5, 10, or 20 systems. And when it runs on an E10000, SyMON sees each hardware domain as a separate system, rather than an integrated whole. The next version of SyMON 2 will have complete support for the E10000.

The following figure details the complete architecture of SyMON 2.0.


SyMON 2.0 architecture

SyMON 2.0 has a dynamically extensible agent; you can request it to load a new module at runtime, and this module will then be automatically loaded the next time the SyMON 2.0 agent starts up. One of the optional modules is the health monitor, so I'll run through a series of screen shots to show you how to load it.

The initial SyMON screen displays a login authorization process. Once you complete this process, SyMON displays a network-wide view. You can configure multiple administrative domains, but for the sake of simplicity, I'll just show what you can do with the free single-system license.

To load the health monitor module, start SyMON with the default domain, select the system and popup a menu; then select the Load Module option from the menu. As shown below, a single red alert is present because one of the filesystems on this machine is 98 percent full.


SyMON Load Module menu

Next, scroll down and locate the Health Monitor module. If it is not already loaded, select this option and click OK.


Loading the Health Monitor module

All alerts will be counted on the central domain alert indicator. You could click on the alerts to display a global list of alerts (and then drill down to the system that caused the alert), but we'll take a different approach: we'll look at a detailed view of the system by selecting the Details menu option from Load Module (see above image). When you select this option, a second window opens that is specific to the system being monitored.


Host details window

The Browser tab of the host details window shows the modules that are loaded. Under local applications (which opens up if you click on the bullet next to it) you will find the Heath Monitor module, and inside that you find the eight rules that are implemented based on virtual_adrian. Each rule shows a few variables; for instance, the RAM rule displayed in figure above shows that the current scan rate is zero, so the rule value is a white box. If the scan rate went too high, this box would turn red, and the red state would propagate up the hierarchy. There is a lot more to SyMON; for instance, it can set simple alarms on any metric and graph them over time. I'm working with the SyMON team to extend the health monitor further in the future.


Advertisements

SE 3.1 beta release
This beta release of SE includes the addons and fixes that I have described in this column over the last year, including the process and workload monitoring scripts, and the updated kernel mutex monitoring rule. SE 3.1 beta also supports the IDE drives used on the Ultra 5 and Ultra 10 properly, and figures out the right kstat names based on the Solaris release and patches installed. I've updated the main SE Web page to include the option of downloading beta releases, so I encourage you to take a look (see Resources).

We no longer have any systems running Solaris 2.5 or 2.5.1 to test on (not to mention that we want to spend more time writing new code to add features and less time testing old and less interesting systems), so this beta release and the forthcoming final release of SE 3.1 will support only Solaris 2.6 and Solaris 7. However, SE 3.1 adds support for 64-bit Solaris 7 on SPARCv9 to the regular SPARC and Intel 32-bit support.

If you are still running Solaris 2.5.1, I encourage you to upgrade. We introduced a number of interesting performance-related features in Solaris 2.6. If you can't upgrade because it is a "production machine," you probably shouldn't be running an unsupported experimental tool like SE; try out SyMON 2.0 instead.

New features of SE 3.1
Q: What is the RAPS product that Rich Pettit works on as his "day job?"
A: Rich Pettit left Sun a year or two ago and joined Resolute Software to work on the Resolute Application Performance System, or RAPS: a performance monitoring product for distributed, multitier enterprise applications. Rich wants you to take a look at RAPS, and as an incentive, he has written a really useful SE toolkit script, toptool, that is like a combination of top and proctool. Of course, like all SE scripts, this one is provided as source and can easily be modified. Here's a screenshot of toptool.se, which requires SE 3.1. To download toptool.se , visit Resolute's Web site and click on the toptool icon.

Screenshot of toptool.se. Click for full-size image: 54 KB.

SE 3.1 includes an extended language that adds dynamically resizeable arrays to make it easier to handle systems that undergo dynamic reconfiguration. You begin by declaring an array with no size specifier, then you tell it the size you want it to be later using the "new" keyword. You can then resize it, preserving any contents that still fit in the new array by using the "renew" keyword.

Here is a short example of the dynamic array feature with a debug trace output so you can see what happens. The only restriction is that dynamic arrays cannot be part of a structure or the public part of a class definition, because it's too hard to work out how big the resulting structure would be. The SE 3.1 beta currently doesn't use this feature, but we are adding it to the examples and classes for the final release.

main() {
	int data[];
	int x;

	data = new int[10];
	x = sizeof(data);
	data[0] = x;
	data = renew data[20];
	x = sizeof(data);
	data[1] = data[0] + x;
}

% se -d new.se
data = new int[<10>]
x = sizeof(data<0xf44d0>)
data[0] = x<40>
data = renew(data<0xf44d0>, <20>)
x = sizeof(data<0xf4558>)
data[1] = data[0]<40> + x<80>
%

Rich Pettit also changed SE so that it silently ignores any missing kernel data items that change their names or disappear. (An extra compile time option, -z, allows the old intolerant behavior for testing; just in case one of the things you were using went away and you want to see why you are now getting zero returned.)

This change will save us from a barrage of e-mail asking things like "what does 'drop vanished' mean?" It means that the variable drop was not there when SE was expecting it. But because none of the example scripts ever used "drop," we don't really care.

Rich also added a configuration file in /opt/RICHPse/etc/se-defines that parses the patches installed on the system into #define values that can be used to make conditional changes. The default contents of this file are shown below.

# possible lines:
#
# patch PATCHID REVISIION DEFINE
# driver DRIVERNAME REGEXP DEFINE
# force CONSTANT VALUE
# disk DISKNAME
#
# examples:
#
# patch 105742 1  -DMULTICAST_PATCH=1
# driver tri TRI.*4.[0-9] -DOLD_FDDI
# force MAX_IF 15
# disk nfs
#

patch 105742 1  -DMULTICAST_PATCH=1
patch 105795 1  -DMULTICAST_PATCH=1
patch 103903 3  -DLE_PATCH=1
patch 104212 4  -DHME_PATCH=1
patch 104212 10 -DHME_PATCH_IFSPEED=1
patch 105795 3  -DHME_PATCH_IFSPEED=1
patch 103582 12 -DROBUST_LISTENQ=1

The latest full set of command line options is now:

% se -flags

se - Version 3.1 (beta) (01:16 PM 01/20/99) for sparc SunOS 5.7

Usage:	/opt/RICHPse/bin/se.sparc.5.7
	[-dnsvwz]
	[-ccore-file] [-kkernel-file] [-ppaging-file]
	[-Iinclude-directory] [-Ddefine] [-Uundefine]
	[-o- | -ooutput-file]
	[script-name | -] [script-args]

	-d  Run in debug mode
	-n  Run without the pre-processor
	-s  Syntax check only
	-v  Display the version
	-w  Suppress warning messages
	-z  Complain about vanished members

	-ccore-file              Specify core file for kvm variables
	-kkernel-file           Specify kernel file for kvm variables
	-ppaging-file           Specify paging file for kvm variables

	-Iinclude-directory  Add an include directory to the search path
	-Ddefine                 Define a symbol for the pre-processor
	-Uundefine             Undefine a symbol for the pre-processor

	-o-                         Regenerate a minimal script to stdout
	-ooutput-file           Regenerate a minimal script to output-file

	-         Input is stdin followed (optionally) by script flags
	-t tag  Names the program when stdin is used

We will continue to add details of the changes at the SE Web site. Check the Web site if you come across anything suspicious (it may be a known problem) and send us feedback to se-feedback@chessie.eng.sun.com.

Wrap up
Because we build SE in our "spare" time, it takes a long time to get a new version out. And, unfortunately, we are always too busy to do all the things we'd like to do with it. If all you wanted was a good set of health monitoring rules, you now have the alternative of running a fully supported product, SyMON 2.0, which is also free. And although it is a far more complex and resource-intensive tool than SE, it has a lot more capabilities and a lot of investment is going into improving and extending it in the future.

You should also look at other tools -- like RAPS -- that include features not provided by SyMON 2.0. I describe a selection of these tools in Chapter 2 of my book, Sun Performance and Tuning (2nd edition).


Click on our Sponsors to help Support SunWorld


Resources

Additional resources
Performance information www.sun.com
Other SunWorld resources

About the author
Adrian Cockcroft joined Sun Microsystems in 1988, and currently works as a performance specialist for the Server Division of Sun. He wrote Sun Performance and Tuning: SPARC and Solaris and Sun Performance and Tuning : Java and the Internet, both published by Sun Microsystems Press Books. Reach Adrian at adrian.cockcroft@sunworld.com.

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
 
 
 
    

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

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

If you have technical problems with this magazine, contact webmaster@sunworld.com

URL: http://www.sunworld.com/swol-02-1999/swol-02-perf.html
Last modified: