Home / Performance issues / What is GUDS ? When/How to Run on Solaris Host ?

What is GUDS ? When/How to Run on Solaris Host ?

There is no operating systems in the world without performance issues. Issue may happen due to poor system design or poor application configuration. As an Unix administrator, we will be always responsible to identify issues on the system and only Unix admin can identify it.But not all the time,Unix administrators  can fix the issues and sometimes they need a help from Operating systems vendors. If it comes to Solaris, Oracle has ksh script(GUDS) to collect the necessary information to identify system performance issues.The guds script  is very useful when the system is facing intermediate issues or performance issues. Here we will see when to use  and how to use guds scripts on Solaris hosts.

You can download the latest guds script from oracle support website if you have valid login account.Here is the latest one for you.

For best analysis ,we need to run guds script when the issue persist and  system runs normally.So that oracle engineer can compare the guds data.In this way ,we can easily figure out the intermediate issues on the system.

Here the guds script options.

# ./guds_3_1 -h
Usage: guds_3_1 [-ghlpqrRStTvZ] [-b cpuid] [-c count] [-d description] [-D dir] [-H hours] [-i interval] [-L lockstat_interval] [-n iterations] [-s SR#] [-w wait] [-x "extra command"] [-X level] -b : Bind guds to the processor cpuid
-c : Count value for commands that require it
(vmstat, prstat, iostat, mpstat, sar, ...)
-d : A one line statement describing the state of the system during this capture
-D : Change the default directory from /var/tmp/guds to
-g : If specified, skip collecting static configuration data
-h : Display this help text
-H : Run the script for the given number of hours, else for the given number
of iterations if hours is zero
-i : Interval value for commands that require it
(vmstat, prstat, iostat, mpstat, sar, ...)
-l : If specified and level >= 2, collect lockstat -H data
-L : Specify the interval during which lockstat is gathering data
(default: 2 seconds)
-n : The number of iterations the script will do to collect data
-p : If specified and on SPARC, collect trapstat data
-q : Run in non interactive mode
-r : If specified, collect prstat cpu,rss,size, and zones data if able
-R : If specified, allow script to run when uid is not root
-s : The SR # used to create the directory where the data are going to be stored
-S : If specified, mask all IP addresses in the data
-T : Emit timestamps for commands that loop
(vmstat, mpstat, prstat, iostat)
-v : Print the GUDS Version
-w : Wait time (default: 0 seconds) between each iterations
If set to 0, then the next iteration will start when the previous finishes
-x : Run this extra command during each iteration
Output saved in xtra.out - Errors saved in xtra.err
-X : Run the extended set of commands depending on specified level
level 0 : nothing
level 1 : lockstat for contention events
level 2 : trapstat, lockstat profiling, threadlist, TNF tracing (default)
level 3 : kmastat, kmausers, memstat (they can take a long time to complete
on systems with a lot of memory)
Increasing extended level can affect system performance.
-Z : If specified, allow script to run in a non-global zone

Here is some of the options which i have used in recent times for various issues.
When the issue is persist ,run the below command to collect the data and run the same command when the system is running normally with different description.
# guds_3_1 -q -c10 -i5 -n5 -w0 -sx-xxxxxx -d “Issue Present” -x “sar -g 5 5”
# guds_3_1 -q -c10 -i5 -n5 -w0 -sx-xxxxxx -d “Without Issue” -x “sar -g 5 5”

 -s: The Oracle SR number

Sometimes  system may have problem with high kernel usage.In these cases ,you need to run guds script with different options like the below one.
#guds_3_0 -q -c20 -i10 -H2 -w0 -X2 -s3-12345678 -d ‘High kernel Usage’ 
X- Extended Level of data collections.
level 0 : nothing
level 1 : lockstat for contention events
level 2 : L1 + lockstat profiling, threadlist,TNF tracing (default)
level 3 : L2 + kmastat, kmausers, memstat

These guds script will run normally up to 40 to 50 minutes according to extended level,Iterations,Interval and count you have selected.It also depends on number of local zones which are running on the global zone.It may required 1GB free space on the filesystem to gather the data according to the options which we have given.

If you don’t know the right commands ,you can ask oracle engineer to provide the exact command and run it .

Once the data collection has been done ,you can upload the file to oracle using ftp or https web portal.Here you can see the method of uploading data using ftp.

Thank you for reading this article.


  1. Is there a guds version for linux??

  2. How is GUDS different to OSwatcher? Which one is touted as being the one to run?