Friday, May 05, 2006

Unix Performance Monitoring

http://www.wilsonmar.com/1perfmon.htm#UnixMon
http://perso.wanadoo.fr/sebastien.godard/documentation.html
http://www.princeton.edu/~psg/unix/Solaris/troubleshoot/diskio.html
http://www.circle4.com/jaqui/papers/webunuk.html

cron Process scheduling

nice/renice Change priorities

setpri Set priorities

netstat Network statistics

nfsstat NFS statistics

time/timex Process CPU Utilization

uptime System Load Average

ps Process Statistics

iostat BSD tool for I/O

sar Bulk System Activity

vmstat BSD tool for V. Memory

gprof Call Graph profiling

prof Process Profiling

trace Used to get more depth

Other commands that will be useful include lsvg, lspv, lslv, lsps and lsdev. Each of these will be discussed later along with a general problem solving approach. It is important to note that the results and options for all of these commands may differ depending on the platform they are being run on. Most of the options discussed below are those for AIX and some of the tools are specific to AIX such as:

tprof CPU Usage

svmon Memory Usage

filemon Filesystem, LV .. activity

netpmon Network resources



    Set screen Linux Status Commands

  • uptime provides an instantaneous summary such as

    11:42pm up 18 days, 8:45, 5 users, load average: 0.01, 0.03, 0.07

    For the current time, the Number of days up since last boot, the number of users currently logged in, and the load average for the last 1, 5, and 15 minute intervals.

    The load average (LA) is the average number of processes (the sum of the run queue length and the number of jobs currently running) that are ready to run, but are waiting for access to a busy CPU. Averages from 0 to 1.0 are acceptable for a single CPU. As a general rule of thumb, a machine is being overworked if load averages consistently exceed three times the number of CPUs.

  • top provides load average with auto refresh and additional data (sorted by %CPU):

    68 processes: 67 sleeping, 1 running, 0 zombie, 0 stopped
    CPU states: 12.2% user, 1.6% system, 0.0% nice, 86.1% idle

    Solaris comes with the prstat command to provide this info. Graphical versions of this include gtop within Gnome and the KDE Process Monitor.

    Linux Load Average Not Your Average Average by Neil J. Gunther

    For memory usage, press M.
    For CPU info, press P.
    To stop display, enter q.

    The 'SIZE' field is the total virtual memory size of each process, including all code, data, stack, mapped files, libraries etc.

  • procinfo -fn30 is used to gather system data from the /proc directory every 30 seconds.

    • Last Boot time
    • Load Average
      • average number of jobs running
      • number of runnable processes
      • total number of processes
      • PID of the last process run (idem)
    • Swap info
    • Memory resources
    • Number of disks
    • IRQ info
    • Installed modules (with the -a or -m option)
    • File Systems (with the -a or -m option)

  • xos provides a constantly updated colorful summary view of various components.

  • ps -a lists processes by ID.

    Option f shows child processes.
    For each Unique Process ID (PID):
    SIZE = Virtual image size; KB of text+data+stack
    RSS = Resident set size; kilobytes of program in memory
    SHARE = Amount of shared memory used by the task.
    TTY = Controlling tty
    STAT = Status of each process:

      S = Sleeping
      R = Running
      D = uninterruptible sleep
      T = stopped or traced
      Z = zombie process
      Second field = W if the process has no resident pages.
      Third field = N if the process has a positive nice value

    Shell script commands, pipes and other commands.

    To filter only processes of the current user:

      ps aufx | grep $USER

    To scroll up and down:

      ps -a | less

Syntax:

ps [-a] [-A] [-c] [-d] [-e] [-f] [-j] [-l] [-L] [-P] [-y] [ -g grplist ] [ -n namelist ] [-o format ] [ -p proclist ] [ -s sidlist ] [ -t term] [ -u uidlist ] [ -U uidlist ] [ -G gidlist ]



0 Comments:

Post a Comment

<< Home