4.6 Performance monitoring

 <  Day Day Up  >  

Monitoring allows you to get more out of your operating system by helping you determine the types of applications and their behavior in the system. TLinux bundles a good monitoring tool natively within the operating system. A good starting point is to use standard tools such as ps, top, vmstat, sar and iostat. These applications are easy to use and provide administrators with a quick glance at system performance.

In addition, you can also use bundled tools like ksysguard, which can consolidate multiple systems and display it in a single window. Figure 4-11 on page 193 shows multiple LPARs that were added to the ksysguard window. It shows the average load of all the servers.

Figure 4-11. KDE's ksysguard showing multiple servers being monitored

graphics/04fig11.jpg

4.6.1 Performance monitoring with ganglia

Ganglia [1] is very popular in the Linux community for monitoring the performance and usage of large clusters, up to 2000 nodes. You can see ganglia working live from Berkeley University:

[1] http://ganglia. sourceforge .net/

http://monitor. millennium .berkeley.edu/

The performance data is extracted locally on each node by gmond, which is a monitoring daemon. One of the nodes, or a separate system, is used to collect the data with gmetad , which is the collector daemon that is then stored on a Web server. The data is stored in XML format with RRDtool [2] , which is a round- robin database tool that is used to accumulate the data for a given period of time, generally a few hours. To visualize the data, all you need to do is point a browser to the collector machine. All the scripting in this server is done in PHP.

[2] Tobi Oetiker, http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/

A single collector machine can visualize data from nodes running various operating systems and of various architectures. You can use ganglia to monitor a pSeries cluster and an xSeries cluster, both running Linux, for example.

In the following sections, we describe how to get the source code, make RPMs, and install the gmond and gmetad part. Then we describe the Web server setup and how to get going.

Downloading ganglia

The current stable version of ganglia at the time of writing is 2.5.5. Go to the following Web site and follow the instructions for downloading the ganglia-monitor- core -2.5.X.tar.gz file, as well as the Web front-end part ganglia-webfrontend-2.5.X-1.noarch.rpm:

http://ganglia.sourceforge.net/downloads.php

You can download a pre-build ganglia RPM for Linux on pSeries from the below site.

ftp://www.redbooks.ibm.com/redbooks/SG247014/

Compiling ganglia

The gmond and gmetad need to be compiled; the Web front-end is using PHP scripts, which we do not need to recompile as SLES8 bundles PHP. In this section, we show how to compile and build an RPM to ease the deployment of ganglia in your cluster. There are many references on the Web regarding RPM [3] . You need the gcc compiler installed.

[3] Edward C. Bailey, Maximum RPM http://www.rpm.org/max-rpm/

Building ganglia on SLES 8 is much easier than on RHAS 3, as the RRDtool is provided by SuSE. On RHAS 3, you must download and install it before compiling ganglia. Nevertheless, we describe both distributions. It is also perfectly valid to build on SLES 8 for deployment on RHAS 3 and vice versa. However, for the sake of simplicity, we assume you are building and deploying on the same distribution. Once you have built and installed your RPM, whichever the distribution, you can monitor a cluster with nodes from any distribution. You can also monitor nodes of different architecture.

To create RPMs, we strongly recommend using a regular account. If your user account is not already set to build RPMs, issue the commands shown in Example 4-17 on page 195.

Example 4-17. Be ready for building RPMs
 [leecy@p630]> mkdir ~/build [leecy@p630]> for i in RPMS SRPMS SPECS SOURCES BUILD do mkdir ~/build/$i done [leecy@p630]> echo "%_topdir /home/leecy/build" > ~/.rpmmacros 

The ganglia tarball contains a RPM spec file that works well, so we will extract it and use it. RPM spec files describe all the commands needed to:

  • Set up the source code before compiling

  • Compile the various binaries and libraries

  • Pack the necessary files in the RPM file

  • Install and configure the RM

  • Unconfigure and uninstall the RPM

We extract the spec file and save it to the right place after copying the tarball in the build/SOURCES/ directory, as shown in Example 4-18.

Example 4-18. Extract the spec file
 [leecy@p630]> cp ganglia-monitor-core-2.5.5.tar.gz ~/build/SOURCES/. [leecy@p630]> cd ~/build/SPECS [leecy@p630]> tar zxf ../SOURCES/ganglia-monitor-core-2.5.5.tar.gz [leecy@p630]> mv ganglia-monitor-core-2.5.5/ganglia.spec ./ [leecy@p630]> rm -rf ganglia-monitor-core-2.5.5 

If you run SLES 8, you can skip the next section.

Building RPM for RHAS 3

For RHAS 3, you need to install the rpm-build package. Unlike SLES 8, the command to install and query packages (rpm) is different from the command used to create packages (rpmbuild). It is on RHAS 3 CD3.

You need to download and compile the RRDtool before compiling ganglia. This one is not provided by Red Hat. The URL for downloading RRDtool is:

http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool.tar.gz

Building the rrdtool RPM is shown in Example 4-19 on page 196.

At the time of writing, the tcl RPM package in RHAS 3 lacks the header files to compile Tcl applications. We therefore have to edit the spec file and build without tcl support. This is not a problem for the operation of ganglia later on. There are four places to fix in the rrdtool.spec file:

  • Comment out BuildRequires: tcl around line 16

  • Change the configure command near line 44, replacing --with-tcllib=%{_libdir} with --without-tcllib

  • Add the following 4 lines around line 69 after the # remove .in/.am files comment line

    - rm -rf ${RPM_BUILD_ROOT}/usr/ contrib

    - rm -rf ${RPM_BUILD_ROOT}/usr/doc

    - rm -rf ${RPM_BUILD_ROOT}/usr/html

    - rm -rf ${RPM_BUILD_ROOT}/usr/examples

  • Add a line with %{_libdir}/librrd.la* after line 84 reading %{_libdir}/librrd.so*

We are now ready to build and install the RRDtool packages as shown in Example 4-19.

Example 4-19. Build the RRDtool RPM
 [leecy@p630]> cp rrdtool.tar.gz ~/build/SOURCES/rrdtool-1.0.45.tar.gz [leecy@p630]> cd ~/build/SPECS [leecy@p630]> tar zxf ../SOURCES/rrdtool-1.0.45.tar.gz [leecy@p630]> mv rrdtool-1.0.45/rrdtool.spec ./ [leecy@p630]> rm -rf rrdtool-1.0.45/ [leecy@p630]> touch ../SOURCES/MRTG-HOWTO # fix a missing file ... [leecy@p630]> vi rrdtool.spec # hack the spec file to build without tcl as desribed above [leecy@p630]> rpmbuild -ba --target ppc rrdtool.spec [leecy@p630]> su - # switch to root to install the RPMs [root@p630]> rpm -i --nodeps ~leecy/build/RPMS/ppc/rrdtool-*.rpm [root@p630]> ^D [leecy@p630] 

Now we move back to the RPMization of ganglia. Fortunately, once the RRDtool is installed, no changes are required.

Example 4-20. Building ganglia for RHAS 3
 [leecy@p630]> rpmbuild -ba --target ppc ganglia.spec [leecy@p630]> su - # switch to root to install the RPMs [root@p630]> rpm -i --nodeps ~leecy/build/RPMS/ppc/ganglia-monitor-g*.rpm Starting GANGLIA gmond: [ OK ] Starting GANGLIA gmetad: [ OK ] [root@p630]> ^D [leecy@p630] 

If you run RHAS 3, you can skip the next section.

Building ganglia for SLES 8

You must install the rrdtool RPM from the SLES 8 distribution. Some changes need to be applied to the ganglia spec file and the two startup scripts for gmond and gmetad to make them fit SLES 8. They are currently very Red Hat-specific.

A valid ganglia.spec file is listed in Example 4-21. It replaces the Red Hat init scripts directory with the LSB-compliant one and allows for a patch (Patch0) to modify the startup scripts so that they fit SLES 8. Another solution would be to use the skeleton given in SLES 8 under /etc/init.d skeleton to build the two startup scripts for gmond and gmetad.

Example 4-21. ganglia.spec file for use with SLES 8
 # # $Id: ganglia.spec.in,v 1.12 2003/10/29 20:40:03 sacerdoti Exp $ # # ganglia.spec. Generated from ganglia.spec.in by configure. # Summary: Ganglia Cluster Toolkit http://ganglia.sourceforge.net/ Name: ganglia-monitor-core Version: 2.5.5 Release: 1 Copyright: BSD Vendor: Ganglia Development Team <ganglia-developers@lists.sourceforge.net> Group: System Environment/Base Source: %{name}-%{version}.tar.gz Patch0: %{name}-%{version}-sles.patch Buildroot: /tmp/%{name}-%{version}-buildroot Prefix: /usr %description Ganglia is a scalable, real-time monitoring and execution environment with all execution requests and statistics expressed in an open well-defined XML format. %package gmetad Summary: Ganglia Meta daemon http://ganglia.sourceforge.net/ Group: System Environment/Base Obsoletes: ganglia-monitor-core %description gmetad Ganglia is a scalable, real-time monitoring and execution environment with all execution requests and statistics expressed in an open well-defined XML format. This gmetad daemon can aggregate monitoring data from several clusters to form a monitoring grid. It also keeps metric history using the RRD tool. %package gmond Summary: Ganglia Monitor daemon http://ganglia.sourceforge.net/ Group: System Environment/Base Obsoletes: ganglia-monitor-core %description gmond Ganglia is a scalable, real-time monitoring and execution environment with all execution requests and statistics expressed in an open well-defined XML format. This gmond daemon provides the ganglia service within a single cluster or Multicast domain. %package lib Summary: Ganglia Toolkit Library http://ganglia.sourceforge.net/ Group: System Environment/Base %description lib The Ganglia Monitoring Core library provides a set of functions that programmers can use to build scalable cluster or grid applications ## ## PREP ## %prep %setup %patch0 -p 1 ## ## BUILD ## %build ./configure --with-gmetad --prefix=/usr make ## ## PRE ## %pre ## ## POST GMETA ## %post gmetad /sbin/chkconfig --add gmetad if [ "" == "1" ]; then    # Installing new package - start gmond    /etc/init.d/gmetad start elif [ "" > "1" ]; then    # Upgrading ganglia package - restart gmond    /etc/init.d/gmetad restart fi ## ## POST GMON ## %post gmond /sbin/chkconfig --add gmond if [ "" == "1" ]; then    # Installing new package - start gmond    /etc/init.d/gmond start elif [ "" > "1" ]; then    # Upgrading ganglia package - restart gmond    /etc/init.d/gmond restart fi ## ## PREUN GMETA ## %preun gmetad if [ "" = 0 ] then    /etc/init.d/gmetad stop    /sbin/chkconfig --del gmetad fi ## ## PREUN GMON ## %preun gmond if [ "" = 0 ] then    /etc/init.d/gmond stop    /sbin/chkconfig --del gmond fi ## ## INSTALL ## %install %__mkdir -p $RPM_BUILD_ROOT/etc/init.d %__mkdir -p $RPM_BUILD_ROOT/usr/include/ganglia %__mkdir -p $RPM_BUILD_ROOT/var/lib/ganglia/rrds %__cp -f %{_builddir}/%{name}-%{version}/gmond/gmond.init $RPM_BUILD_ROOT/etc/init.d/gmond %__cp -f %{_builddir}/%{name}-%{version}/gmetad/gmetad.init $RPM_BUILD_ROOT/etc/init.d/gmetad %__cp -f %{_builddir}/%{name}-%{version}/gmond/gmond.conf $RPM_BUILD_ROOT/etc/gmond.conf %__cp -f %{_builddir}/%{name}-%{version}/gmetad/gmetad.conf $RPM_BUILD_ROOT/etc/gmetad.conf %__make install prefix=$RPM_BUILD_ROOT/usr ## ## FILES GMETA ## %files gmetad %defattr(-,root,root) %attr(0755,nobody,nobody)/var/lib/ganglia/rrds /usr/sbin/gmetad /etc/init.d/gmetad %config(noreplace) /etc/gmetad.conf ## ## FILES GMON ## %files gmond %defattr(-,root,root) %attr(0500,root,root)/usr/bin/gmetric %attr(0555,root,root)/usr/bin/gstat /usr/sbin/gmond /etc/init.d/gmond %config(noreplace) /etc/gmond.conf %files lib /usr/include/ganglia.h /usr/include/ganglia /usr/lib/libganglia* ## ## CLEAN ## %clean %__rm -rf $RPM_BUILD_ROOT ## ## CHANGELOG ## %changelog * Mon Oct 14 2002 Federico Sacerdoti <fds@sdsc.edu> - Split package into -gmetad and -gmond subpackages for clarity,   and separation of purpose/functionality. * Thu Sep 19 2002 Federico Sacerdoti <fds@sdsc.edu> - Added config files, made /var/lib/ganglia for RRD storage. * Mon Mar 11 2002 Matt Massie <massie@cs.berkeley.edu> - Added support for libganglia, added Prefix: for RPM relocation * Wed Feb 27 2002 Matt Massie <massie@cs.berkeley.edu> - Merge gmetric and gmond together into one RPM. Fix some small bugs. * Fri Nov 2 2001 Matt Massie <massie@cs.berkeley.edu> - initial release 

A patch named ganglia-monitor-core-2.5.5-sles.patch must reside under the build/SOURCES directory. Its contents are listed in Example 4-22.

Example 4-22. Patch for the startup scripts
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init     2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 ****   #   GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions   RETVAL=0 --- 6,12 ----   #   GMOND=/usr/sbin/gmond ! . /etc/rc.status   RETVAL=0 *************** *** 15,22 ****         echo -n "Starting GANGLIA gmond: "         [ -f $GMOND ]  exit 1 !       daemon $GMOND         RETVAL=$?         echo         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond         ;; --- 15,23 ----         echo -n "Starting GANGLIA gmond: "         [ -f $GMOND ]  exit 1 !       startproc $GMOND         RETVAL=$? +       rc_status -v echo         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond         ;; *************** *** 25,30 **** --- 26,32 ----         echo -n "Shutting down GANGLIA gmond: "         killproc gmond         RETVAL=$? +       rc_status -v         echo         [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond         ;; *************** *** 35,42 ****         RETVAL=$?         ;;     status) !       status gmond !       RETVAL=$?         ;;     *)         echo "Usage: 
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init 2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 **** # GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions RETVAL=0 --- 6,12 ---- # GMOND=/usr/sbin/gmond ! . /etc/rc.status RETVAL=0 *************** *** 15,22 **** echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! daemon $GMOND RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; --- 15,23 ---- echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! startproc $GMOND RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; *************** *** 25,30 **** --- 26,32 ---- echo -n "Shutting down GANGLIA gmond: " killproc gmond RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond ;; *************** *** 35,42 **** RETVAL=$? ;; status) ! status gmond ! RETVAL=$? ;; *) echo "Usage: $0 {startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage: $0 {startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL 
{startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage:
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init 2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 **** # GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions RETVAL=0 --- 6,12 ---- # GMOND=/usr/sbin/gmond ! . /etc/rc.status RETVAL=0 *************** *** 15,22 **** echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! daemon $GMOND RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; --- 15,23 ---- echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! startproc $GMOND RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; *************** *** 25,30 **** --- 26,32 ---- echo -n "Shutting down GANGLIA gmond: " killproc gmond RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond ;; *************** *** 35,42 **** RETVAL=$? ;; status) ! status gmond ! RETVAL=$? ;; *) echo "Usage: $0 {startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage: $0 {startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL 
{startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ] exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) !
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init 2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 **** # GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions RETVAL=0 --- 6,12 ---- # GMOND=/usr/sbin/gmond ! . /etc/rc.status RETVAL=0 *************** *** 15,22 **** echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! daemon $GMOND RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; --- 15,23 ---- echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! startproc $GMOND RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; *************** *** 25,30 **** --- 26,32 ---- echo -n "Shutting down GANGLIA gmond: " killproc gmond RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond ;; *************** *** 35,42 **** RETVAL=$? ;; status) ! status gmond ! RETVAL=$? ;; *) echo "Usage: $0 {startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage: $0 {startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL 
stop !
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init 2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 **** # GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions RETVAL=0 --- 6,12 ---- # GMOND=/usr/sbin/gmond ! . /etc/rc.status RETVAL=0 *************** *** 15,22 **** echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! daemon $GMOND RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; --- 15,23 ---- echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! startproc $GMOND RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; *************** *** 25,30 **** --- 26,32 ---- echo -n "Shutting down GANGLIA gmond: " killproc gmond RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond ;; *************** *** 35,42 **** RETVAL=$? ;; status) ! status gmond ! RETVAL=$? ;; *) echo "Usage: $0 {startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage: $0 {startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL 
start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage:
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init 2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 **** # GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions RETVAL=0 --- 6,12 ---- # GMOND=/usr/sbin/gmond ! . /etc/rc.status RETVAL=0 *************** *** 15,22 **** echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! daemon $GMOND RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; --- 15,23 ---- echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! startproc $GMOND RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; *************** *** 25,30 **** --- 26,32 ---- echo -n "Shutting down GANGLIA gmond: " killproc gmond RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond ;; *************** *** 35,42 **** RETVAL=$? ;; status) ! status gmond ! RETVAL=$? ;; *) echo "Usage: $0 {startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage: $0 {startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL 
{startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ] exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) !
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init 2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 **** # GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions RETVAL=0 --- 6,12 ---- # GMOND=/usr/sbin/gmond ! . /etc/rc.status RETVAL=0 *************** *** 15,22 **** echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! daemon $GMOND RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; --- 15,23 ---- echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! startproc $GMOND RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; *************** *** 25,30 **** --- 26,32 ---- echo -n "Shutting down GANGLIA gmond: " killproc gmond RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond ;; *************** *** 35,42 **** RETVAL=$? ;; status) ! status gmond ! RETVAL=$? ;; *) echo "Usage: $0 {startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage: $0 {startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL 
stop !
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init 2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 **** # GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions RETVAL=0 --- 6,12 ---- # GMOND=/usr/sbin/gmond ! . /etc/rc.status RETVAL=0 *************** *** 15,22 **** echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! daemon $GMOND RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; --- 15,23 ---- echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! startproc $GMOND RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; *************** *** 25,30 **** --- 26,32 ---- echo -n "Shutting down GANGLIA gmond: " killproc gmond RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond ;; *************** *** 35,42 **** RETVAL=$? ;; status) ! status gmond ! RETVAL=$? ;; *) echo "Usage: $0 {startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage: $0 {startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL 
start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage:
 *** ganglia-monitor-core-2.5.5/gmond/gmond.init 2003-04-09 20:37:38.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmond/gmond.init 2003-10-15 18:28:54.000000000 -0400 *************** *** 6,12 **** # GMOND=/usr/sbin/gmond ! . /etc/rc.d/init.d/functions RETVAL=0 --- 6,12 ---- # GMOND=/usr/sbin/gmond ! . /etc/rc.status RETVAL=0 *************** *** 15,22 **** echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! daemon $GMOND RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; --- 15,23 ---- echo -n "Starting GANGLIA gmond: " [ -f $GMOND ]  exit 1 ! startproc $GMOND RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond ;; *************** *** 25,30 **** --- 26,32 ---- echo -n "Shutting down GANGLIA gmond: " killproc gmond RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmond ;; *************** *** 35,42 **** RETVAL=$? ;; status) ! status gmond ! RETVAL=$? ;; *) echo "Usage: $0 {startstoprestartstatus}" --- 37,47 ---- RETVAL=$? ;; status) ! echo -n "Checking for gmond: " ! checkproc $GMOND; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ;; *) echo "Usage: $0 {startstoprestartstatus}" *** ganglia-monitor-core-2.5.5/gmetad/gmetad.init 2003-04-09 20:37:37.000000000 -0400 --- ganglia-monitor-core-2.5.5_new/gmetad/gmetad.init 2003-10-15 18:27:26.000000000 -0400 *************** *** 1,12 **** #!/bin/sh ! # $Id: gmetad.init,v 1.2 2002/10/18 21:57:58 sacerdoti Exp $ # ! # chkconfig: 2345 20 80 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.d/init.d/functions RETVAL=0 --- 1,12 ---- #!/bin/sh ! # $Id: gmetad.init,v 1.2 2003/03/07 20:38:30 sacerdoti Exp $ # ! # chkconfig: 2345 70 40 # description: gmetad startup script # GMETAD=/usr/sbin/gmetad ! . /etc/rc.status RETVAL=0 *************** *** 15,46 **** echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! daemon $GMETAD RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! status gmetad ! RETVAL=$? ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL --- 15,51 ---- echo -n "Starting GANGLIA gmetad: " [ -f $GMETAD ]  exit 1 ! startproc $GMETAD RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad ! ;; stop) echo -n "Shutting down GANGLIA gmetad: " killproc gmetad RETVAL=$? + rc_status -v echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/gmetad ! ;; restartreload) ! $0 stop ! $0 start ! RETVAL=$? ! ;; status) ! echo -n "Checking for gmetad: " ! checkproc $GMETAD; RETVAL=$? ! if test $RETVAL = 0; then echo "OK" ! else echo "No process" ! fi ! ;; *) ! echo "Usage: $0 {startstoprestartstatus}" ! exit 1 esac exit $RETVAL 
{startstoprestartstatus}" ! exit 1 esac exit $RETVAL

With these changes, building and installing proceeds as shown in Example 4-23.

Example 4-23. Building rpm using the spec file
 [leecy@p630]> rpm -ba --target ppc ganglia.spec [leecy@p630]> su - # switch to root to install the RPMs [root@p630]> rpm -i --nodeps ~leecy/build/RPMS/ppc/ganglia-monitor-g*.rpm [root@p630]> ^D [leecy@p630] 

Under SLES 8, the two services are not started automatically.

Installing the Web front-end

You need to set up a PHP-enabled Web server somewhere on your network. On this system, you have to install the front-end RPM downloaded in "Downloading ganglia" on page 194.

This file installs under /var/www, which will soon become the "old" location for the server's data. SLES 8 implements today the proposed LSB standard location, /srv/var/www. After installing under SLES8, you will have to move the /var/www/html/ganglia directory under /srv.

The next step is to create the space in /var to hold the monitoring data. Make sure you create the /var/lib/ganglia/rrds directory.

On this collector system, you can install the gmond RPM and you must install the gmetad RPM that will receive the monitoring data from all the nodes.

Starting ganglia

Start the Web browser and point to the ganglia directory of your Web site. The ganglia Web page on your Web site might look similar to Figure 4-12 on page 206.

Figure 4-12. Ganglia summary page

graphics/04fig12.gif

Using ganglia

The summary screen shown in Figure 4-12 condenses the cluster information on one page. You can zoom in on one specific node by following the Grid -> unspecified -> Choose a node path .

In our example, shown in Figure 4-13 on page 207, lpar6 is a RHAS 3 node.

Figure 4-13. Zooming into a node

graphics/04fig13.gif

Check the documentation for more configuration options. The two files that you may wish to change are the /etc/gmond.conf on all the nodes and the /etc/gmetad.conf on the collector node.

4.6.2 Basic tuning tips for Linux

Linux sports a dynamic kernel that allows you to modify and change many of the parameters without rebooting the system. Most of these parameters are located n the /proc file systems. There are two ways to change it, by using cat and view , and by using the command sysctl . We describe these methods in more detail here.

You can use cat to view, and use echo to change the variable.

To disable IP forwarding:

  # echo "1" > /proc/sys/net/ipv4/ip_forward  

The command sysctl provides a simple interface to all the tunable parameters in the /proc file systems.

  # sysctl -w net.ipv4.ip_forward="1"  

Because most of the default kernel parameters for system performance are geared toward workstation workload rather than file server or large computation workload, there are tuning parameters that you can use to tune Linux for better performance. Following are some of the sample tuning parameters that can be applied into Linux. For a complete listing, use sysctl or the YaST2 utility.

File system tuning

In Linux, the bdflush file in the /proc directory governs when the bdflush should be activated to clear cache dirty pages.

 # echo "100 5000 640 2560 150 30000 5000 1884 2" > /proc/sys/vm/bdflush 

For heavy I/O in a file server and Web server environment, you can also disable the atime. atime basically stores the information of when is the last time the file has been accessed. You can update your /etc/fstab to reflect this.

 #  cat  /etc/fstab  /dev/sda3       /       reiserfs        defaults 1 1 /dev/system/home        /home   reiserfs        defaults 1 2 /dev/system/usr /usr    reiserfs        defaults 1 2 /dev/system/var /var    reiserfs        defaults 1 2  /dev/system/web /web    reiserfs        noatime,defaults 1 2  /dev/sda2        swap   swap    pri=42 0 0 devpts          /dev/pts devpts  mode=0620,gid=5 0 0 proc            /proc   proc    defaults 0 0 /dev/cdrom      /media/cdrom    auto    ro,noauto,user,exec 0 0 

Rather than changing the whole file system to reflect this change, use the command chattr to tag or mark individual files that do not need to store the access time.

  # chattr -R +A /usr/local/apache/logs/httpd.logs  
Network tuning

To reduce the amount of work done at the TCP stack to check on every packet, you can basically disable by echo "0" to the file:

  # echo "0" > /proc/sys/net/ipv4/tcp_sack   # echo "0" > /proc/sys/net/ipv4/tcp_timestamps  

Or you can use the command "sysctl -w <kernel_parameter="choice">" .

Often we see clients that do not properly close the TCP connections and so the server keeps the connections open, and may wind up with a large number of open connections. The Linux TCP stack will probe the TCP connections after a given amount of time of inactivity (by default, it is two hours). You can change this wait time as follows :

  # echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time  

If needed, you can also change the tcp_keepalive_intvl and tcp_keepalive_probes to determine the length of time to wait before the next probe occurs.

Powertweak

The Powertweak tool from SuSE, shown in Figure 4-14, allows you to tweak many of the system parameters, including those mentioned. After you click the option you wish to tweak, the right-hand panel will explain what the option is for. Most tweaking takes effect immediately.

Figure 4-14. YaST2 powertweak

graphics/04fig14.gif

Tip

Any tuning done using the command sysctl is only good for the session, so if you want the changes to be permanent, create a file called /etc/sysctl.conf and put in the tuning parameters. The file will be read each time Linux boots up.


 <  Day Day Up  >  


Quintero - Deploying Linux on IBM E-Server Pseries Clusters
Quintero - Deploying Linux on IBM E-Server Pseries Clusters
ISBN: N/A
EAN: N/A
Year: 2003
Pages: 108

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net