• No results found

Intel EP80579 Software for IP Telephony Applications on Intel QuickAssist Technology

N/A
N/A
Protected

Academic year: 2021

Share "Intel EP80579 Software for IP Telephony Applications on Intel QuickAssist Technology"

Copied!
16
0
0

Loading.... (view fulltext now)

Full text

(1)

Telephony Applications on Intel ® QuickAssist Technology

Linux* Tuning Guide

September 2008

(2)

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548- 4725, or by visiting Intel’s Web Site.

Any software source code reprinted in this document is furnished under a software license and may only be used or copied in accordance with the terms of that license.

Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. See http://www.intel.com/products/processor_number for details.

BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino logo, Core Inside, FlashFile, i960, InstantIP, Intel, Intel logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel. Leap ahead. logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and other countries.

*Other names and brands may be claimed as the property of others.

Copyright © 2008, Intel Corporation. All rights reserved.

(3)

Contents

1.0 Introduction ...5

2.0 Issues with Time Constraint Applications ...5

2.1 RxFreeQ Underflow Error...5

3.0 Scheduling Issues with Concurrent Processes/Services ...7

3.1 Default Cron Jobs ...7

3.1.1 Cron Job Conclusions ...8

3.2 Default Processes/Services ...9

4.0 Prevention Strategies ... 10

4.1 Tuning Script ... 10

4.1.1 Script Usage ... 10

4.2 Pre-Emptive Kernel... 10

4.2.1 Configuring and Building a pre-emptive Kernel ... 11

4.2.2 Kernel Configuration ... 11

4.2.3 Kernel Compilation ... 11

5.0 Conclusions ... 12

6.0 Key Terminology... 12

7.0 Tuning Script ... 12

Figures

1 Rx Data Path TDM I/O Unit <-> IA buffer Flows ...6

Tables

1 Default Cron Jobs List ...8

2 Unnecessary Linux Processes...9

(4)

Revision History

Abstract

The purpose of this document is to provide the user with a “tuning guide” for the Red Hat* Enterprise Linux* Edition version 5 (RHEL5) operating system, to allow the best possible performance from the Intel® EP80579 Integrated Processor. This tuning guide contains a set of instructions and a

description of how best to configure the RHEL5 OS. It pays particular attention to default processes running on the OS. It is assumed the reader is familiar with Intel® EP80579 Integrated Processor and in particular, the Intel® EP80579 Software for IP Telephony Applications on Intel® QuickAssist Technology that is used as an example in this paper.

Date Revision Description

September 2008 001 Initial release of this document.

(5)

1.0 Introduction

Red Hat* Enterprise Linux* version 5 (RHEL5) is a general purpose operating system (non real-time). The characteristics of a non real-time OS can lead to issues with a time constrained application because the application’s CPU time and scheduling cannot be guaranteed.

This paper describes the problems of running a time constrained application (using a voice application as an example) on a non real-time OS (RHLE5) on the Intel® EP80579 integrated processor. It also examines the cause of packet loss as a result of this issue and presents strategies to alleviate the problem. The paper also describes how to implement these strategies.

Note: The development platform used in this analysis was the Intel® EP80579 Integrated Processor with Intel® QuickAssist Technology Development Kit with 1G of RAM. The Intel® EP80579 integrated processor used was the 1.2 GHz model.

2.0 Issues with Time Constraint Applications

The main difficulty in running an application (which is required to meet real time constraints) on a non real-time OS like Linux* (which does not provide real time constraints) is the process scheduler. Linux, like every other time-sharing system, achieves the affect of parallel processing on a single core processor by switching the execution from one process to another in a very short time frame. Performance issues arise when time-sensitive processing, such as voice, is switched out of the processor for sufficiently long periods that it causes voice packets to be dropped.

Taking the Intel® EP80579 Software for IP Telephony Applications on Intel® QuickAssist Technology as an example, if another CPU intensive application is running concurrently with the EP80579 IP Telephony software, voice quality may be affected. This occurs as both processes compete for CPU time. Voice quality can be affected in the form of packet loss. Packet loss appears in the EP80579 IP Telephony software as an HSS access receive queue (RxFreeQ) underflow error. To understand the packet loss issues, we need to understand the operation of the HSS access layer software.

2.1 RxFreeQ Underflow Error

The data path interface between the TDM I/O Unit and the HSS access layer software consists of a number of buffer holding software queues allocated in DRAM.

Specifically, there are two services, Voice and HDLC. Each maintains two queues, as follows:

• a buffer receive queue (RxQ)

• a free buffers queue (RxFreeQ)

Consequently, the system contains the Voice RxQ, Voice RxFreeQ, HDLC RxQ and HDLC RxFreeQ queues. See Figure 1.

(6)

The per-service operation of the TDM I/O Unit is to take a buffer off the RxFreeQ and wait until a valid frame/packet has been received. It then populates the buffer with the contents of the received frame/packet and places the buffer on the RxQ for the appropriate service.

Figure 1. Rx Data Path TDM I/O Unit <-> IA buffer Flows

(7)

The TDM I/O Unit is a separate hardware device and it directly accesses DRAM, that is, it is not affected by the Linux scheduler.

The operation of the HSS access layer software is to place free buffers on the RxFreeQ for the TDM I/O Unit to use (a HSS access kernel client commences this operation using the icp_HssAccRxFreeReplenish() call). The HSS access layer software removes any buffers on the RxQ that were enqueued by the TDM I/O Unit and places them in another per-channel queue or “channel ring” (a HSS access kernel client initializes this operation using the icp_HssAccDataPathService() call). The kernel client then recovers the buffer on a per channel basis (the icp_HssAccReceive() call). Examples of kernel-level clients are the HSS Voice Driver and the HSS Data Driver.

The HSS access layer software runs on the IA core and depends on the Linux scheduler.

The RX_FREE_UNDERFLOW for a service error occurs when the TDM I/O Unit exhausts the RxFreeQ for that particular service; there are no entries on the RxFreeQ when the TDM I/O Unit attempts to obtain a buffer from it.

The underflow condition may occur if the system is not provisioned adequately with buffers. However, it may also occur despite adequate provisioning of free buffers due to the scheduling decisions of the Linux scheduler and the loading of the CPU by other processes/tasks on the system.

The Linux kernel may schedule a task that does not yield the processor or, the Linux scheduler itself may not allow the HSS access layer software enough CPU time to keep the RxFreeQ’s populated. If this is the case, the TDM I/O Unit will continue to remove free buffers until the RxFreeQ is empty. At that point, newly received frames/packets will be dropped by the TDM I/O Unit until such time as there are free buffers on the RxFreeQ - that will not occur until the Linux scheduler provides CPU time for the processes utilizing the HSS access layer software (HSS access clients).

3.0 Scheduling Issues with Concurrent Processes/

Services

As mentioned above, packet loss can occur due to CPU contention. To alleviate this, it is recommended to reduce the additional work load on the processor, such that only those processes and services that are necessary should be run. This reduces the chance of the EP80579 IP Telephony software not being scheduled within the Voice application’s time constraints. RHLE5, being a desktop-orientated distribution, enables many processes that may not be required in a typical voice application. This section describes how to identify and disable the applications and service that are not required.

A standard installation of RHLE5 contains several standard application installations on the system. Some of these applications are background processes and are started automatically upon boot. Others are scheduled to run at different times, such as daily updates. Several of these processes are CPU-intensive operations and as a result can cause an EP80579 IP Telephony software Underflow Error when then run. These processes have been identified and are listed below inTable 1 and Table 2.

3.1 Default Cron Jobs

As with any system, RHLE5 installs several default cron jobs that are scheduled to run at discrete intervals. A list of the common default cron jobs installed is given in Table 1.

The Linux cron daemon kicks off an application at various times. However, it was discovered that several of theses system cron jobs are CPU-intensive and are defined to run daily. As a result, Voice applications can be swapped out several times during the

(8)

period that these cron jobs are scheduled to run and lack the necessary CPU time required to finish packet processing, resulting in EP80579 IP Telephony software Underflow errors and a degradation in voice quality.

Table 1. Default Cron Jobs List

3.1.1 Cron Job Conclusions

The mlocate job was found to be the most CPU-intensive operation. This cron job always caused an HSS access Underflow Error. This is simply because there is a large amount of processing required to update the locate database. As seen from the example above, the amount of files and folders in the database can be very large.

Running an update on all of this information at one time is bound to hog the CPU.

Cron Job Name Description

0anacron

anacron (0 is added so that it is the first job in the cron list to run) is a periodic command scheduler similar to the cron daemon itself. It is designed for systems that are not powered on continuously. In such systems, the cron daemon will not always get a chance to run scheduled tasks (as the system is powered down when they are scheduled to run). 0anacron assumes that the system is not running continuously, and so it can be used to control the execution of daily, monthly and so on, tasks on systems that do not run 24 hours a day. It will make sure that tasks are run as close to the scheduled time as possible.

0logwatch Logwatch is a customizable log analysis system. Logwatch parses through your system's logs for a given period of time and creates a report analyzing areas that you specify. See http://www.logwatch.org.

Cups Common UNIX Printing System. Cups provides a portable printing system for UNIX*

based systems. See http://www.cups.org.

logrotate Logrotate is a log administrator tool that allows the manipulation of log files on a system. The application allows the compression, rotation, removal and mailing of log files. See the “logrotate” man page for full details.

Makewhatis.Cron A Linux command to update the whatis database. This command searches through all the man pages contained in a given section of manpath and for each page, writes a line into the whatis database. See the “whatis” man page for details.

mlocate.cron

A cron job for the Linux “locate” command.

The “locate” command is used to find files or folders previously accessed by the user.

For example: “locate filename” will return the list of locations Linux was able to find (locate) the file under the specified file name. This is an alternative to the “find”

command. It works by running a background process to cache the location of files in your file system. The cron job is used to update the database and location of files on your system. Even on a moderate Linux system, there are several thousands of files, therefore there is a large amount of processing required to update the “locate”

database.

Information about the database can be acquired by typing “locate -S”, which gives data such as the following:

Database /var/lib/mlocate/mlocate.db:

16,754 directories 214,704 files

12,081,812 bytes in file names 4,251,708 bytes used to store database

prelink The main purpose of this program is to prelink ELF shared libraries and binaries to speed up start time on Linux systems. See the “prelink” man page for details.

RPM RPM Package Manager. Updates the list of rpm packages installed on a system. See the “rpm” man page for full details.

tmpwatch Tmpwatch recursively removes files and folders that have not been accessed for a give number of hours. Normally, it is used to clean up directories that are used for temporary holding space such as “/tmp”. See the “tmpwatch” man page for details.

(9)

If your application does not require this functionality, then it is highly recommended that the mlocate.Cron script is not scheduled to run when the EP80579 IP Telephony software is running.

If the cron jobs and the applications they run are not required by your voice

application, it is recommended that they be removed from the cronjob list by running the tunning script provided later in Section 4.1, “Tuning Script” on page 10. The tuning script disables all cron jobs listed in Table 1.

Caution: The anacron program could also schedule other processes to run at different intervals.

Since this application tracks what cron jobs need to be run (if they missed their scheduled run time), it could also cause an HSS access error. Note that this program can also run applications that are not listed in the cron jobs list. The anacron job is configured to start at boot time.

3.2 Default Processes/Services

One of the simplest things one can do to stop EP80579 IP Telephony software

underflow errors from occurring is to ensure that no other CPU-intensive processes run at the same time. There is a script provided in this document (see Section 4.1, “Tuning Script” on page 10) that “turns off” or stops unnecessary processes from running in the background. This script also stops some of the daily cron jobs.

Table 2 contains a list of the processes or services that are not essential to the running of the RHEL5 OS. These processes are however installed and turned on by default in a standard installation. Performance may be improved by stopping them. It is

recommended that these processes and services be stopped if they are not required by your application. To stop these processes the tuning script should be run.

Table 2. Unnecessary Linux Processes

Process Name Description

Acpid Allows power management on the system. It can query the battery and configuration status.

Atd Periodic Command scheduler. IT runs commands scheduled by the “at” program at their scheduled times.

Auditd Audit daemon. This daemon saves audit records generated by the kernel. It may be useful for servers or machines with multiple users.

Autofs Automount Service. One of the several auto-mounting on demand services, that is, it will automatically mount CDs and other file system-like devices.

Bluetooth Used for all bluetooth services.

Cups Common UNIX Printing System. Allows your machine to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

hidd Bluetooth HID (Human Interface Driver) server. Is used mainly for Bluetooth keyboards and mice.

smartd Monitors the hard drive and tries to predict failure.

xfs X Font Server. Used by X Windows to support a graphical desktop.

yum-updates Yellow Dog Linux. Updates software packages.

Rhnsd

A process that queries the Red Hat Network for updates and information. By default it runs every 4 hours, this setting can be changed by doing the following:

• Open up the following file: /etc/sysconfig/rhn/rhnsd

• Change the value of "INTERVAL" to whatever is required, the value is in minutes, for example, setting "INTERVAL=100080" means that updates will be checked for once a week.

† indicates a process that is more likely to cause an HSS access underflow error.

(10)

Note: All of the entries in Table 2 are contained in the script (see Section 4.1).

4.0 Prevention Strategies

4.1 Tuning Script

To improve the Linux OS, and to attempt to prevent the EP80579 IP Telephony software underflow error, it is necessary to stop as many unnecessary processes from running.

The tuning script provided in this guide is a simple Perl script that stops many of these processes that run as default on a standard Linux installation. The processes listed above are stopped by the tuning script. The script stops and removes the processes from the boot up script so that they no longer load after a reboot.

The script also stops several of the daily cron jobs from the cron daemon. These are removed from the daily cron list.

4.1.1 Script Usage

The tuning script has four modes of operation:

• on

Stops all processes and services in Table 2, these process and services are not enabled again after a re-boot.

Also removes the mlocate cron job from the cron dameon.

• off

Enables all the processes and services in Table 2, these process and services are enabled again after a re-boot.

Also adds the mlocate cron to the cron dameon.

• start

Enables all the processes and services in Table 2, these process and services are enabled again after a re-boot.

• stop

Disables all the processes and services in Table 2, these process and services are enabled again after a re-boot.

Adding/Removing Processes and Cron Jobs to the Script:

There are two arrays listed in the tuning script, @process and @cronjobs. These arrays contain the names of the processes/services and cron jobs to be removed. By editing these arrays, adding or removing names of processes, you can remove or add processes that will be stopped or started by the script.

4.2 Pre-Emptive Kernel

The Linux kernel is non pre-emptive by default. A non pre-emptive kernel can add to latency issues. This is because once a process is running in kernel mode, it has full control over the CPU and does not have to relinquish the CPU for any other process until it has completed its task. This is true also even if a higher priority process is requesting CPU time. This is essentially the same problem as identified above when discussing the Linux scheduler. When the HSS access layer software is finished running in kernel mode (completion of a system call, read or write for example) another process may enter kernel mode and take the CPU. When the HSS access layer software requests CPU time and it cannot get it, the EP80579 IP Telephony software underflow

(11)

error can occur. In a non pre-emptive kernel, even if the priority of the HSS access layer software is set to highest available on the system, it is still not be allowed access to the CPU until the current process is finished its task or relinquishes the CPU.

In a pre-emptive kernel build, the kernel allows a process running in kernel mode to be pre-empted. This means that if a higher priority process needs to run, it runs no matter what the current process is. With a pre-emptive kernel build, the EP80579 IP Telephony software underflow error is less likely to occur in some situations where other

processes that are pre-emptible attempt to the compete for CPU cycles.

It is recommended that the priority of the user application be set to high (and its

“niceness” value too). This will help the user application gain as much CPU time as possible. However, it was noted that an increased priority level used without a pre- emptive kernel did not lead to significant performance improvement.

4.2.1 Configuring and Building a pre-emptive Kernel

The following subsections provide instructions on building a pre-emptive kernel.

4.2.2 Kernel Configuration

1. Download the RHEL kernel source and install to:

/usr/src/redhat/BUILD/kernel-2.6.8.18/linux-2.6.18.i386

Note: Please see the Getting Started Guide for instructions on installing the Linux kernel source.

2. Remove any existing .config file, and copy the default .config file from /boot/config- 2.6.18-8.el5 to .config, this keeps your current kernel configuration.

3. Run “make menuconfig” to change the configuration to enable a pre-emptive kernel.

Note: To run “make menuconfig”, you must first have installed ncurse-devel-5.5- 24.20060715.i386.rpm.

4. Within the ncurses interface, navigate to “General Setup” and then to “Local Version”. Enter “preEmp” or equivalent to identify this kernel as the new pre- emptive kernel build.

5. Within the ncurses interface, navigate to “Processor type and features” and then

“Preemption Model”. This brings up three choices, select “Pre-emptive Kernel (Low- Latency Desktop)”.

6. Exit the ncurses interface using the ESCAPE button. When prompted to save the configuration, select “Yes”.

4.2.3 Kernel Compilation

1. From the Kernel source directory, run the following;

make modules_prepare make modules

2. The Kernel modules are now built, to compile the Kernel run:

make bzImage

(12)

3. To install the compiled Kernel and Modules run:

make modules_install mkae install

4. The new Kernel is now installed. To set it to be the default Kernel to be booted, edit the “/boot/grub/grub.conf” file and change “default=x” value to the corresponding Kernel number identifying the new pre-emptive kernel build. The entries are counted top-down from zero.

5.0 Conclusions

The EP80579 IP Telephony software underflow error occurs when the EP80579 IP Telephony software does not get scheduled in the Linux OS within the time constraints for the voice application. As mentioned above, there are several strategies that can be applied to try and prevent the EP80579 IP Telephony software underflow error.

The first strategy is to remove all unnecessary processes and services from running concurrently with the EP80579 IP Telephony software. It is recommended to stop all processes that are not required by the voice application. This includes utilities ran from the crontab daemon.

Another strategy is to run a Pre-Emptive Kernel configuration. The Pre-Emptive Kernel configuration allows a high priority application such as a voice application to pre-empt another process if it is competing for CPU cycles.

The overall strategy is to reduce the work load on the CPU so as to allow the EP80579 IP Telephony software to be scheduled within the voice applications time constraints.

6.0 Key Terminology

7.0 Tuning Script

##############################################################################

#

# This file is provided under a dual BSD/GPLv2 license. When using or

# redistributing this file, you may do so under either license.

# # GPL LICENSE SUMMARY

# # Copyright(c) 2007,2008 Intel Corporation. All rights reserved.

# # This program is free software; you can redistribute it and/or modify

# it under the terms of version 2 of the GNU General Public License as

# published by the Free Software Foundation.

# # This program is distributed in the hope that it will be useful, but

# WITHOUT ANY WARRANTY; without even the implied warranty of

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

# General Public License for more details.

#

OS Operating System

HSS High Speed Serial

(13)

# along with this program; if not, write to the Free Software

# Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.

# The full GNU General Public License is included in this distribution

# in the file called LICENSE.GPL.

# # Contact Information:

# Intel Corporation

#

# BSD LICENSE

#

# Copyright(c) 2007,2008 Intel Corporation. All rights reserved.

# All rights reserved.

# # Redistribution and use in source and binary forms, with or without

# modification, are permitted provided that the following conditions

# are met:

# # * Redistributions of source code must retain the above copyright

# notice, this list of conditions and the following disclaimer.

# * Redistributions in binary form must reproduce the above copyright

# notice, this list of conditions and the following disclaimer in

# the documentation and/or other materials provided with the

# distribution.

# * Neither the name of Intel Corporation nor the names of its

# contributors may be used to endorse or promote products derived

# from this software without specific prior written permission.

# # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT

# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,

# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

################################################################################

my $param = $ARGV[0];

$count;

$redhat_updates_file = ">"."/etc/sysconfig/rhn/rhnsd";

$runLv3_dir = "/etc/rc3.d/";

$runLv5_dir = "/etc/rc5.d/";

$bootScripts_dir = "/etc/init.d/";

@process = ("cups","smartd","yum-updatesd","atd","auditd","autofs","hidd","xfs");

#anacron needs stopped at boot time

$anacron = "anacron";

#acpid needs to be started at boot time

$acpid = "acpid";

$cron_dir = "/etc/cron.daily/";

$backupCron_dir = "/etc/cron.backup/";

@cronjobs = ("mlocate.cron");

if($param eq "off") { stop();

remove();

rhnsd_update();

(14)

}

elsif($param eq "on") {

insert();

undo_rhnsd_update();

cron_return();

}

elsif($param eq "stop") { stop();

}

elsif($param eq "start") {

start();

} else

{ usage();

}

sub remove

{ print "Removing services from the boot-up list\n";

for ($count=0; $count<(scalar(@process)) ; $count++)

{ system("chkconfig --levels 123456 $process[$count] off");

}

system("chkconfig --levels 123456 $anacron off");

system("chkconfig --levels 123456 $acpid off");

}

sub insert

{ print "Adding services to boot-up list\n";

for ($count=0; $count<(scalar(@process)) ; $count++)

{ system("chkconfig --levels 123456 $process[$count] on");

}

system("chkconfig --levels 123456 $anacron on");

system("chkconfig --levels 123456 $acpid on");

}

sub stop {

print "Stopping the services\n";

for ($count=0; $count<(scalar(@process)) ; $count++)

(15)

system("service ".$process[$count]." stop");

}

system("service ".$acpid." stop");

}

sub start

{ print "Starting the services\n";

for ($count=0; $count<(scalar(@process)) ; $count++) {

system("service ".$process[$count]." start");

}

system("service ".$anacron." start");

}

sub rhnsd_update

{ print "Changing rhnsd to check for an update yearly\n";

# changes rhnsd to check for an update yearly

open (FILEHANDLE,$redhat_updates_file) or die ("Error Opening File");

print FILEHANDLE "INTERVAL=5204160";

close(FILEHANDLE);

}

sub undo_rhnsd_update

{ print "Changing rhnsd to check for an update every 4 hours\n";

# changes rhnsd to check for an update every 4 hours

open (FILEHANDLE,$redhat_updates_file) or die ("Error Opening File");

print FILEHANDLE "INTERVAL=240";

close(FILEHANDLE);

}

sub cron_remove {

if ((-d $backupCron_dir)==false) {

print "Creating backup directory \n";

system("mkdir ".$backupCron_dir."");

}

print "Moving selected cron jobs to backup folder (".$backupCron_dir.")\n";

for ($count=0; $count<(scalar(@cronjobs)) ; $count++) { system("mv ".$cron_dir."".$cronjobs[$count]."

".$backupCron_dir."".$cronjobs[$count]."");

} }

sub cron_return {

if ((-d $backupCron_dir)==false) {

print "Backup folder does not exist \n";

}

print "Returning selected cron job from backup folder \n";

for ($count=0; $count<(scalar(@cronjobs)) ; $count++) {

(16)

".$cron_dir."".$cronjobs[$count]."");

} }

sub usage {

print "---\n";

print "Usage : \n";

print "---\n";

print "# ./tuning_script.pl stop\n";

print " - Will stop the services for the current session.\n";

print " - The next time the machine boots the services will be running again.\n";

print "\n";

print "# ./tuning_script.pl start\n";

print " - Starts the services running again.\n";

print "\n";

print "# ./tuning_script.pl on\n";

print " - Will permanently stop the services.\n";

print " - The next time the machine boots the services will still not be running.\n";

print " - Changes rhnsd to check for an update yearly.\n";

print " - Stops certain cron jobs from running by moving them to a backup folder.\n";

print "\n";

print "# ./tuning_script.pl off\n";

print " - Enables the services to be started at boot time again.\n";

print " - Changes rhnsd to check for an update every 4 hours.\n";

print " - Returns removed cron jobs to their original location.\n";

}

§ §

References

Related documents

The intelligent software brain of the Allied Telesyn VoIP system, the Sphericall Manager enables VoIP call control, advanced telephony and video features to the enterprise

components such as mission, purpose, and core values. 31) quote one CEO as lamenting I ve come to believe that we need a vision to guide us, but I can t seem to get my hands on what

• Simple migration of existing telephony infrastructure to VoIP • High reliability • Advanced Telephony applications (Computer Telephony Integration, Unified Messaging,

The Cisco CallManager IP Telephony Solution combined with the newly released Survivable/Standby Remote Site Telephony (SRS Telephony) feature in the Cisco IOS ® software

His approach puts unique human cognition center stage: the driving forces of economic evolution are, he argued, human intentionality, beliefs, cognitive learning, and

In a 12 days outdoor microcosm experiment, we tested the combined effects of decreased salinity (from 6 to 3) and elevated CO 2 concentrations (380 and 960 µatm) on a natural

Given a statistical model consisting of a set of observed data, a set of unobserved latent data or missing values , and a vector of unknown parameters , along with a

• Delivery of voice services over an IP network • Includes IP telephony, LAN telephony, Toll bypass • Subsut of convergence.. • Datal voice/video over a multiservice IP, ATM,