Sunday, October 15, 2006

Linux Command To Confirm Bad Sector

Hard disk being one of the vital components in computer system. Unfortunately, hard disk is also being one of the most high risk and sensitive components that is prone to failures, owed to the fact of mechanical subsystem attached!

The Linux command badblocks could be used to run bad sector burn-in test on a new or suspected faulty hard disk. Just get a low end PC or server installed with Linux OS, attach the target hard disk to the IDE or SCSI bus, and run the badblocks command on the target hard disk. For example,

badblocks -svw -t random -p 3 /dev/sdb

get badblocks to perform three rounds of destructive write of random data to the second SCSI hard disk.

Be careful! The option switch -w performs destructive write. Never use this option switch on a partition with filesystem. Instead, use -n to perform non-destructive read-write on a partition with filesystem!

Related information:

  • Search more related info with Google Search engine built-in

Checklist To Tune DB2 Performance

DBA suggests few of the recommended database performance tuning tips for IBM DB2 database engine that is running on Linux server.

  • Linux kernel parameters tuning that applicable to DB2 version 8.1 and 8.2.

    Executing command sysctl -A to print out current kernel parameters setting. Some of the notable are

    • kernel.sem (Semaphore setting)
      Recommended Value : 250 256000 32 1024

    • kernel.msgmni (Maximum system-wide queues)
      Recommended Value : 1024

    • kernel.msgmax (Maximum size of messages in byte)
      Recommended Value : 65536

    • kernel.msgmnb (Default size of queue in byte)
      Recommended Value : 65536

    In order to retain these changes of kernel parameters on every system reboot, add the updated kernel parameters setting to /etc/sysctl.conf system file to do the great job.

  • DB2 database configurable parameters tuning.

    After connecting to database called my_test_db by executing db2 connect to my_test_db, running another DB2 command db2 autoconfigure apply none to get DB2 database engine calculate the best recommended value of DB2 database configurable parameters. Some of the notable are

    • LOGPRIMARY / LOGFILSIZ
      Larger log buffer required for OLTP workloads with high transaction rate.

    • CHNGPGS_THRESH
      For databases with heavy update transaction workloads, make sure there are enough clean pages in the buffer pool by setting the parameter value equal to or less than the best recommended value calculated by DB2 database engine.

    • LOCKLIST
      The amount of storage that is allocated to the lock list. Increase this value if lock escalations causing performance concerns, that logged as warnings in the db2diag.log file.

    • DBHEAP
      Database heap per database. Needs to be increased for larger buffer pools.

    • NUM_IOCLEANERS
      Large buffer pools require a higher number of asynchronous page cleaners.

  • Alternate page cleaning algorithm tuning.

    DB2 UDB ESE v8.2 introduces a new buffer pool page cleaning algorithm which is not turned on by default. It is necessary to test this new page cleaning algorithm with the database workload. To turn on this alternate page cleaning algorithm, executing DB2 command

    db2set DB2_USE_ALTERNATE_PAGE_CLEANING=YES
Related information:
  • Search more related info with Google Search engine built-in

Disable Linux Reboot On CTRL+ALT+DEL

Don't ever press CTRL+ALT+DEL key combination in a Linux server!

Windows guys used to press CTRL+ALT+DEL key combination follow by ENTER key to immediately lock the server running on Windows 2000 or Windows XP and above when they leave the server.

What is the default behaviour when pressing CTRL+ALT+DEL key combination in a Linux machine? Well, the default action of Linux in responding to CTRL+ALT+DEL key combination is to reboot the Linux machine immediately! Just press it once, not twice as in Windows Me, and Linux will not be kind to ask confirmation before it really rebooting itself!

Anyway, this Linux default behaviour in responding to CTRL+ALT+DEL key combination pressed could be tweaked, indeed. Edit the /etc/inittab system file, look for the line containing ctrlaltdel keyword, and then either

  1. Remark the line ca::ctrlaltdel:/sbin/shutdown -t3 -r now to disable Linux from responding to the CTRL+ALT+DEL key combination

               or

  2. Replace the /sbin/shutdown -t3 -r now with something else, such as

    dialog --clear --title "Information" --msgbox "Don't press CTRL+ALT+DEL key combination in Linux machine.\n\nTo reboot server, use init 6 or init 0 to shutdown Linux." 10 40;clear

    which use the dialog box command to alert users with a text-based GUI information dialog box.
Impress Linux users with text-based GUI dialog box control.

Related information:
  • The dialog box command is not a standard program installed by most Linux distribution. Find the dialog package from respective Linux distribution and install it.
  • Search more related info with Google Search engine built-in

Saturday, October 14, 2006

Booting Thin Client Diskless Workstation

Bootp, shorts for Bootstrap Protocol, is an UDP network protocol which is originally defined in RFC 951 to assign IP address for network clients. Bootp is well suitable to apply in diskless workstation, workstation without operating system installed, or simply called thin client.

Bootp is not DHCP! Although both of these two protocols sound similar at first thought, but they are technically different and could be co-exists in the same server or network segment.

Hospitality management system giant, Micros System Inc, makes good use of bootp in its high rank Point-Of-Sale system called Micros 8700 HMS.

When the diskless Micros PC Workstation power on, the bootp enabled network interface card will broadcast its MAC address to the network. When the bootp daemon running on the Micros host receives the broadcast packets, it will assign a valid IP address follow by transferring a DOS operating system image to the PC Workstation according to the MAC-IP-Image mapping maintained in the bootpd configuration file.

Once the image transferring (via tftp protocol) completed, the diskless PC Workstation starts to boot up with the OS image parking in memory segment that act as RAM-DISK. When the boot up completed, the Micros diskless PC workstation functions as if it is a normal desktop PC pre-installed with DOS OS.
Bootpd server and clients could be reside on different network segment by deploying bootp relay agent. To make thing simple or get it up and running right during initial roll out, put both bootpd server and client on the same network segment.

Checklist when thin client unable getting IP address:

  1. Replace a known good unit of thin client to rule out possibilities of

    • Faulty boot ROM embedded in NIC that is bootp enabled
    • Faulty Ethernet patch cable
    • faulty network access point or LAN point

  2. Bootp daemon is not running. In Linux/Unix, execute

    ps -ef | grep bootpd
                or
    lsof -i | grep 67

    to confirm bootp daemon is running and listening to legacy port number (as shown in /etc/services file)

  3. Incorrect MAC address to IP address mapping maintained in /etc/bootptab bootpd configuration file

  4. ARP cache conflict at bootpd server. Executing the command

    arp -a

    to list the bootpd server arp cache. Confirm that there is no ARP cache conflict. To delete the conflict, for example conflict on IP address 192.168.1.3, execute command

    arp -d 192.168.1.3

  5. Use cross-over patch cable or straight Ethernet cable and a hub to directly link up the bootpd server and client to form an simple isolate network. If it works in this simple network infrastructure, then get network experts sit in for assistant. There might be firewalls or routers that have blocked the UDP packets from reaching to bootpd server.
Related information:
  • Tftp protocol in brief

    • Host A sends an read request (RRQ) or write request (WRQ) packet to host B. The packet containing the filename and transfer mode.
    • Host B replies with an acknowledgement packet (ACK) to WRQ or directly with a DATA packet in case of RRQ. The reply also serves to inform host A of which port on host B the remaining packets should be sent to.
    • The source host sends numbered DATA packets to the destination host, all but the last containing a full-sized block of data. The destination host replies with numbered ACK packets for all DATA packets.
    • The final DATA packet must contain less than a full-sized block of data to signal that it is the last. If the size of the transferred file is an exact multiple of the block-size, the source sends a final DATA packet containing 0 bytes of data.

  • Search more related info with Google Search engine built-in

Thursday, October 12, 2006

Repair Corrupted Outlook PST OST File

PST, known as Microsoft Outlook personal folder file or email archive file, used to archive emails out from the mail box at server side to a local storage or network drive.

OST, known as Microsoft Outlook offline folder file, allows user to work with Microsoft Exchange mail box in an offline mode. For example, emails composed, Contacts or Calendar changes, etc, will be storing in the offline folder. These changes made in offline folder will be automatically synchronize with Microsoft Exchange Server once hook up to the network - emails composed will be sending out immediately and Contacts or Calendar changes are updated to server side objects.

Both the Microsoft Outlook PST and OST files are believed using MSDE database engine.

MSDE is a light-weight freeware version of Microsoft SQL Server database engine that Microsoft offers to attract database users (especially MS Access users, developers, students, educators, etc) to develop database projects using Microsoft SQL Server. The latest release of MSDE is called SQL Server Express edition.

MSDE built with limitation of accessing up to 2GB worth of data only. The same limitation occurs in MS Outlook PST and OST file as well!
Watch the size of PST and OST file! If they getting fatty, trim them down quickly to save archives of email from hitting the 2GB limitation or a file corruption will happened soon! The best practice is to create multiple PST or OST files to categorize email archives. For those email with attachment, it is easily reaching the 2GB limitation. So, more PST or OST files are needed to archive such emails with attachment!

Office 2000 and higher with latest patches installed is nice enough to alert users with an error message and disallow users from adding or receiving new email item, so to safeguard PST or OST file to become oversize and corrupted. Earlier versions of MS Outlook does not display any error or warning messages and allow users to oversize the PST or OST file until corruption!

Microsoft offers a tool called PST2GB to recover a MS Outlook PST file that is corrupted after storing over 2GB worth of data. Microsoft alleged that PST2GB is not a tool that is 100% work at all time! If PST2GB does work, it does not recover all of the data (the truncated data is missing).
PST2GB merely create a truncated copy of the PST file to under 2GB. The copy that is left after the PST2GB completes does not have all the original data because the PST2GB forcibly cuts a user defined amount of data (below 2GB) from the PST file.

In brief,
  1. Data or the emails archive after the truncation boundary will gone missing.
  2. There must be enough disk space, 2GB free disk space if as maximum as possible of recovery desired.
Steps to recover corrupted PST file as per Microsoft KB296088 (applied to MS Outlook 97 to MS Outlook 2002)

  1. Download the PST2GB from Microsoft Download Center

  2. Extract the downloaded file 2gb152.exe to an empty folder for these five files - Msstdfmt.dll, Msvbvm60.dll, Pst2gb.exe, Readme.rtf, Readme.txt

  3. Start the Pst2gb.exe program.

  4. Click Browse to select the oversize PST file and then click Open.

  5. Click Create, select the name and location of the truncated data file to be created, and then click Save.

  6. Enter the amount of the data that intended to truncate in the PST file. There is no absolute ideal figure for this but for the best results is using 20 to 25MB, more or less. If that works, repeat the process and truncate the original oversize PST file by only 15MB. If that works, then try the process with 5MB. If 25MB does not work, repeat the process and truncate the original PST by 35MB. If the process does not work, increase the amount until the process is successful.

  7. Run the Inbox Repair Tool scanpst.exe on the smaller PST file.

  8. Open the repaired PST file in Microsoft Outlook.

  9. (Recommended but optional) If the file opens, right-click the root folder of the PST, click Properties, and then click Compact Now to start the compression. For a file of this size, the compression may take approximately 4-8 hours.

  10. If the file does not open, discard the truncated PST file, and repeat the process with the original PST file. Truncate more data than in the first attempt, and try the process again.

If the following error message arise when trying to run the PST2GB Utility

Run-time Error '713': Class not Registered. You need the following file to be installed on your machine. MSSTDFMT.DLL

To resolve this error, follow these steps:
  1. Microsoft Windows 98, Microsoft Windows 98 SE, Microsoft Windows ME

    1. Copy the MSstdfmt.dll file to the C:\Windows\System folder.

    2. Open a command prompt, and then type the following command

      REGSVR32 C:\Windows\System\MSSTDFMT.DLL

  2. Microsoft Windows NT, Microsoft Windows 2000, and Microsoft Windows XP

    1. Copy the MSstdfmt.dll to the C:\<windir>\System32 folder.

    2. Open a command prompt and type the following command

      REGSVR32 C:\<windir>\System32\MSSTDFMT.DLL

      where <windir> is either the WINNT or the Windows directory.
Related information:

Wednesday, October 11, 2006

lsof Identify Resource Locked Process

Samba server comes with a handy utility called smbstatus to report users who are holding the shared resources.

Utilities used to find out processes that are locking system resources are among the most wanted system utilities for experienced users and system administrators. The lsof being one of such excellent utility that used to identify process or user that is locking system resource such as file or network socket.

For example, a system administrator could use the lsof -i to easily understand how the IBM MQ server communicate over the TCP/IP network with IBM Informix server. The lsof output, as in the diagram below, shows that the Informix oninit is listening to a user defined mnemonic port name stp which the IBM MQ server communicate with. The /etc/services system files is usually used to map a numeric port number to a descriptive port name defined by user.

The Linux lsof utility used to find out process or user that locks a system resource such as file or network socket

  1. Execute lsof -i TCP to report all processes that are accessing the TCP sockets found on the system

  2. Execute lsof -i tcp:8080 to find out what process is holding TCP port 8080.

  3. Execute lsof without any command options to list system wide resources that are using by processes running in the system.

  4. Execute lsof -p 456 to show all resources that are being held by process id 456

  5. Some programs might running on the Linux system by more than one instance. In this case, type lsof -c ProgramName instead of lsof -p PID to get a broader scope of view. For example, lsof -c squid to find out what are the resources held by all squid processes running on the system.

  6. Execute lsof -u keith to confirm resources that are being held by user id keith

  7. Execute lsof /home/keith/secretfile to find out what are the processes that are locking the specify file /home/keith/secretfile
Related information:
  • Another utility called fuser has similar features as of lsof utility. Executing fuser -m /media/cdrom will report all process id that are holding the specify resource.

    Each of the process id suffix with an ASCII character code which represent the resource access type. These resource access type codes are not standardize among various Linux distributions. To be safe and accurate, always consult the fuser man page to confirm the code definitions.

    To check out what process ID is using TCP port 8080, execute the fuser as fuser -n tcp 8080 or fuser 8080/tcp

  • The native network related Linux command netstat is a good tool to find out what program or command is binding to a TCP and UDP port. For example, there are Bind, Djbdns, etc, used to bind with port 53 for DNS protocol. By executing netstat command as

    netstat -tulap

    will shows both the program and process id that bind to the network port. The diagram below shows the commands output of lsof vs netstat.

    netstat vs lsof

    Both of the commands displaying pseudo port name instead of numeric port number, where the mapping of pseudo port name and numeric port number is defined in /etc/services file.

    The netstat command, however, able to display numeric port and IP address with -n option switch. For example, rewrite the command as netstat -tulapn

    Note! Both netstat -tulap and lsof -i MUST be executed with root user account privileges, else nothing as those in the diagram above will be seen.

  • Search more related info with Google Search engine built-in

Tuesday, October 10, 2006

MD5 Shell Scripts Find Duplicate Files

The shell scripts wrap the default md5sum program found on most Linux system to prepare a report of unique and duplicate files in a given directory.

The lengthy source code could be shorten if removing the DupUniRpt function which merely used to prepare an easy to read report that showing both the filename and number of duplicate and unique files.

By removing the DupUniRpt function call and function coding, do remember to add the line

cat $FM5L

right after the DupUniRpt function call in the if-else statement. The $FM5L is a semi-raw report file that groups duplicate and unique files together.

The wDupUniRpt.sh contain the same source code of DupUniRpt function source code, which could be used to prepare that easy to read report based on the semi-raw report file. This shell scripts created merely for easy debugging purpose.

Both these shell scripts have been tested successfully with as much as possible scenarios. The source code might be able to further enhanced for efficiency or bugs fixing if any. Any suggestive comments are greatly appreciated.

Related information:

  • wmd5.sh to report both filename and number of duplicate and unique files in a given directory
  • wDupUniRpt.sh used to report redundant and unique records in an ASCII file of sorted records.
  • MD5 checksum used to find redundant files
  • Search more related info with Google Search engine built-in

Tuesday, September 26, 2006

Understand And Configure Linux Printer System

Starting Redhat 7.3, Redhat Linux support two type of printing system known. These two subsystem are known as LPRng and CUPS respectively.

  1. LPRng printing system, Redhat default printer subsystem, provides printconf as printer manager utility to configure /etc/printcap configuration file, printer spooler, etc.

    While at command prompt, executing printconf-tui (Redhat 7.3) or redhat-config-printer-tui (Redhat 8.0) to bring up command line version of LPRng printing manager.

    For the graphical version, click on the Main Menu => System Settings => Printing or type redhat-config-printer or printconf-gui at a XTerm or Gnome terminal shell prompt to bring up the same GUI program.

  2. CUPS, shorts for Common UNIX Printing System, is an Internet Printing Protocol-compliant system for UNIX and Linux. CUPS printer subsystem uses the printer manager utility called lpadmin to configure /etc/printcap configuration file, printer spooler, etc. If CUPS is not the default printer subsystem, launch the Printer System Switcher application by executing the command redhat-switch-printer and set CUPS as the new default printer subsystem.

    To allow only a few selected users to use a printer called inkjet-graphic, execute the command lpadmin -p inkjet-graphic -u allow:keith,jazz,alice and these setting will be updated to /etc/cups/printers.conf configuration file.
Note! The printer manager utility, printconf or lpadmin, saves any printer configurations made to the /etc/printcap setting file. If there is a need to make any printer configurations outside the printer manager utility, add them to the /etc/printcap.local file. The /etc/printcap file will be deleted whenever the printer manager executing or a server reboot.
Steps to add new printer is almost the same among printer manager utilities. In brief, these are the key points to get it works:
  1. Give a descriptive queue name to distinguish the new printer with other printers or network resources, such as keith_laser, boss_laser, tenfloor_inkjet, etc.
  2. Choose the appropriate printer queue type, such as LOCAL queue type for local physical attached printer, JETDIRECT for jetdirect printer, etc.
  3. If there is option to select the Printer Device, rescan the devices for the correct device, or create a custom device. This will be the /dev entry that represents the interface between the device driver and the printer itself. In most instances, the device will be named /dev/lp0.
  4. Choose a Printer Driver by selecting one from the extensive list. Drivers marked with an asterisk (*) are recommended drivers. If to configure remote printer or printer that does not have a corresponding driver in the list, the safest choice would be Postscript Printer. For JetDirect printers, Raw Print Queue is recommended.
To enable local printer sharing for remote host:
  1. In local host which the printer attached, edit the /etc/lpd.perms configuration file to add in one line that will read ACCEPT SERVICE=X REMOTEHOST=</etc/host.lpd and make sure it should added before the line containing REJECT SERVICE=X NOT SERVER.
  2. In the local host as well, edit the /etc/host.lpd printer access control file add in the full qualify DNS host name or IP address, one record per line, of hosts that are allowed to share the printer attached.
  3. At the remote host, add the network printer as adding local printer except one has to choose a Unix Printer queue type and type the print server hostname and port (usually 631).
Related information:
  1. LinuxPrinting.org is a database of documents about printing, along with a database of nearly 1000 printers compatible with Linux printing facilities.
  2. Linux printing how-to from the Linux Documentation Project.
  3. Search more related info with Google Search engine built-in

Monday, September 25, 2006

Redhat Enterprise Linux System File Permission

Redhat Enterprise Linux device file permission could not be changed simply by using the chmod command. Instead, the device file permission is set by udev hotplug subsystem which is included in almost every 2.6 kernel based Linux distribution that is shipping.

The configuration file /etc/udev/permissions.d/50-udev.permissions defines the permission of each devices present in the Linux system. For example,

  • To change the raw devices file permission, search for the line that read as raw/*:root:disk:0660
  • To change tape drive file permission, search for the line that read as st*:root:disk:0660
The default permission defined is 0660. Simply change the 4 digits code as usual to an expected permission, say 0666 instead of 0660.

Related information:
  • Search more related info with Google Search engine built-in

System And Network Monitoring Freeware

Nagios is the answer!

Nagios is the a GNU GPL software that could used to monitor diverse servers and networking devices. Although the Nagios server running only in Linux and UNIX variants there are Windows based Nagios client that could used to monitor Windows server as well.
It is licensed under the terms of the GNU General Public License Version 2 as published by the Free Software Foundation.

Nagios is a powerful system and network monitoring application. It monitors hosts and services specified, alerting administrators when threshold triggered, and when they recover to healthy state.

Nagios is only available in Linux or UNIX variants. Although, it could helps to monitor Windows servers as well via the Windows version of Nagios client.

Nagios features:

  1. Monitors network services such as SMTP, POP3, HTTP, NNTP, PING, etc.
  2. Monitors server resources such as processor load, disk usage, etc.
  3. Simple plugin design that allows users to easily customize own service checks.
  4. Parallelized service checks.
  5. Ability to define network devices hierarchy using "parent" hosts, allowing detection of and distinction between network devices that are down and those that are unreachable.
  6. Notifications to contacts of email, pager, or user-defined method, when service or host status change.
  7. Ability to define event handlers to be run during service or host events for proactive problem resolution.
  8. Automatic log file rotation.
  9. Support for implementing redundant monitoring hosts.
  10. Optional web interface for viewing current network status, notification and problem history, log file, etc.
Related information:

Internet Explorer Turns FTP Browser

FTP is a legacy file transfer protocol that has been widely used since the day of networked computing.

Other than using the serious typing of command line FTP client, such as the standard FTP client offers by all Windows system, Internet Explorer able to serve as GUI FTP browser too!

Follow these simple steps to turn IE into a graphical FTP client:

  1. Click the Tools menu from Internet Explorer,
  2. Click on Internet Options,
  3. Click the Advanced tab,
  4. Check the check box labeled as "Enable Folder View For FTP Sites",
  5. Check the check box labeled as "Use Passive FTP". Set this option only if the PC is behind a firewall.
  6. Click OK button to complete the setting.
  7. Now, IE is ready to serve as graphical FTP browser. For example, type ftp://keith@188.8.1.10 in the IE address bar and press ENTER to instruct IE connect to FTP server 188.8.1.10 using FTP user account keith. Enter the password when prompt.
  8. Click OK and wait. After successful authentication, an interface similar to Windows Explorer shown. Copy files or folders as usual!
Related information:
  • Search more related info with Google Search engine built-in

Saturday, September 23, 2006

Tweaking Windows Recovery Console

The Windows Recovery Console is designed to help system administrators recover Windows-based computer that fails to start up properly. It is available only in command prompt. Hence the name "Console" attached. It looks like the Windows 9x boot disk, but Windows Recovery Console is more powerful and features rich than the old Windows boot disk.

Basically, Windows Recovery Console allow system administrators to:

  1. Copy, rename, replace, and access to operating system files and folders
  2. Enable or disable Windows services for next system bootup
  3. Repair the file system boot sector or the Master Boot Record (MBR)
  4. Create and format partitions
By default setup, Windows Recovery Console with Administrator account logon allows access to only
  1. the root folder
  2. the %SystemRoot% folder and sub folders of the Windows installation
  3. the Cmdcons folder
  4. the removable media drives such as the CD-ROM drive or the DVD-ROM drive
Trying access to folders other than those listed above will rejected with an "Access Denied" error message. Besides that, Windows Recovery Console disallow copy files from local hard disk to removable storage such as floppy disk. However, Windows Recovery Console allow copy files from removable storage to local hard disk or copy files from one hard disk to another hard disk.

Although, limitations imposed on default setup that stated above could be resolved by
  1. First, enable setting in Local Security Policy.

    1. Click on Start button,
    2. Click on Run menu,
    3. Type gpedit.msc and click OK button,
    4. Click on Computer Configuration, Windows Setting, Security Setting, Local Policies, Security Options,
    5. Look for "Recovery Console: Allow floppy copy and access to all drives and all folders" policy on the right pane and double-click it,
    6. Select Enabled,
    7. Click OK

    Note! As a security measures, it might be wise to double-click on "Recovery Console: Allow automatic administrative logon" policy too and disable it.

  2. Second and last, boot up to Windows Recovery Console, logon with Administrator login account, and execute these two commands:

    1. set AllowRemovableMedia = true
    2. set AllowAllPaths = true

    3. It might be useful to turn on these two features too:

    4. set AllowWildCards = true to allow wildcard support for some commands such as del.
    5. set NoCopyPrompt = true to disable prompt when overwriting an existing file.
Related information:
  • Install Windows Recovery Console
  • Search more related info with Google Search engine built-in

Tuesday, September 19, 2006

Restart Disabled Windows Services

What could be done besides rebooting Windows server when a particular Windows service become unavailable to start, stop, pause, resume, or restart?

Restarting a Windows service, particular a poorly coded third party Windows service, may turns out to become unable to start, stop, pause, resume, or restart, after the service timeout and fail to startup successfully again. All these five common actions or tasks are dimmed and become unavailable. Restart the Windows server is not the only way, and might not advisable too, to resolve the problem.

Try this before deciding to reboot the Windows server:

Resolve Windows service which dimmed all its associated actions, i.e. start, stop, pause, resume, restart

  1. Right-click on the Windows service,

  2. Select property,

  3. Set the Startup type to Disabled,

  4. Click OK,

  5. Set to Startup type again to either Manual or Automatic,

  6. Click OK again,

  7. Now, this particular Windows service might able to perform one of the five common actions again. Restart the Windows server if these do not work perfectly too.

Fine Tuning Nagios Performance

Fine tuning Nagios for optimum performanceThese optimization tips are suggested by Nagios official documentation. It might be useful to fine tune Nagios for optimum performance and effective monitoring service.

  1. Enabling aggregated status updates with the aggregate_status_updates option to greatly reduce the load on the monitoring host especially when monitoring a large number of services. The downside of this approach is getting delay notification on status change.

  2. If standard status log is used instead of aggregated status updates, consider putting the directory where the status log is stored on a ramdisk. Ramdisk helps to speed thing up by saving a lot of interrupts and disk thrashing.

  3. Use max_concurrent_checks option to restrict the number of maximum concurrently executing service checks. Nagios is overloaded if the extinfo CGI showing high latency values, say more than 10 seconds, for the majority of service checks.

  4. The overhead needed to process the results of passive service checks is much lower than that of normal active checks. Passive service checks are only really useful if there are some external applications doing some type of monitoring.

  5. Compiled plugin (C/C++) runs more efficient and faster than interpreted script (Perl, etc) plugins. If really want to use Perl plugins, consider compiling them into true executable using perlcc utility which is part of the standard Perl distribution or compiling Nagios with an embedded Perl interpreter.

    In order to compile in the embedded Perl interpreter, set the --enable-embedded-perl option in the configuration script before compiling Nagios. In addition, use the --with-perlcache option to enable embedded interpreter caching the compiled Perl scripts for later reuse.

  6. The check_ping plugin used to check host states will performs much faster if break up the checks. This is due to the fact that Nagios judges the status of a host after executing the plugin once.

    Hence, it would be much faster to set the max_attempts value to 10 and only send out 1 ICMP packet each time, instead of specifying a max_attempts value of 1 in the host definition and having the check_ping plugin send 10 ICMP packets to the host.

    However, the pitfalls of this arrangement will happens when the hosts are slow to respond may be assumed to be down. Another option would be to use a faster plugin check_fping as the host_check_command instead of check_ping.

  7. Do not schedule regular checks of hosts unless absolutely necessary. Set the value to 0 for check_interval directive in the host definition to disable regular checks of a host. Use a longer check interval if really need to have regularly scheduled host checks.

  8. Disable the use_aggressive_host_checking option to speed up host checks. The trade off is that host recoveries can be missed under certain circumstances.

  9. Set the command_check_interval variable to -1 if running a lot of external commands, i.e passive checks in a distributed setup, will cause Nagios to check for external commands as often as possible. This is important because most systems have small pipe buffer sizes (4KB). If Nagios doesn't read the data from the pipe fast enough, applications that write to the external command file (the NSCA daemon) will block and wait until there is enough free space in the pipe to write their data.

  10. System configuration / hardware setup directly affecting how the operating system (and Nagios application) performs. CPU and memory speed are obviously factors that affect system performance, but disk access is biggest bottleneck. Don't store plugins, status log, etc on slow storage medium such as old IDE drives or NFS mounts. Always opt to use UltraSCSI drives or fast IDE drives whenever possible.

    Note! Many Linux installations do not attempt to optimize IDE disk access. Use hdparam to change the IDE hard disk access parameters to gain speedy features of the new IDE drives.

Sunday, September 17, 2006

Tweaking Windows Server LargeSystemCache

LargeSystemCache determines whether Windows 2000 Server should maintains a standard size or a large size file system cache, and influences how often the system writes changed pages back to hard disk.

Increasing the size of the file system cache generally improves server performance, but it reduces physical memory space available to applications and services. In addition, writing system data less frequently minimizes use of the kernel disk subsystem, but the changed pages occupy memory that might otherwise be used by applications.

LargeSystemCache is DWORD registry data type that could be located at registry path

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

Setting LargeSystemCache to 1 (system default)

Establishes a large system cache working set that can expand to physical memory, minus 4 MB, if needed. The system allows changed pages to remain in physical memory until the number of available pages drops to approximately 250. This setting is recommended for most computers running Windows 2000 Server as file server on large networks.

Setting LargeSystemCache to 0

Establishes a standard size file system cache of approximately 8 MB. The system allows changed pages to remain in physical memory until the number of available pages drops to approximately 1,000. This setting is recommended for servers running applications that do their own memory caching, such as Microsoft SQL Server, and for applications that perform best with ample memory, such as Internet Information Services web server.

Other than access to registry via regedit.exe and edit directly, alternative method to tweak LargeSystemCache is by

  1. accessing to the Server Optimization tab in Network And Dial-up Connections,
  2. right-click My Network Places,
  3. click Properties,
  4. right-click Local Area Connection,
  5. click Properties,
  6. click File And Printer Sharing For Microsoft Networks,
  7. and then click the Properties button,
  8. to set the LargeSystemCache to 0, select the Maximize Data Throughput For Network Applications option,
  9. to set the LargeSystemCache to 1, select Maximize Data Throughput For File Sharing.
The default setup of Windows 2000 Server initialize LargeSystemCache to 1 which is ideal when running as file server. However, setting LargeSystemCache to 1 can degrade service performance. As such, it is not appropriate when running as application servers such as Web server, SQL server, Exchange server. In this case, reset LargeSystemCache to 0 by selecting the Maximize Data Throughput For Network Applications option in Network And Dial-up Connections.

Thursday, September 14, 2006

DisablePagingExecutive Boost Windows Performance

Tweaking Windows core performance by editing registry key called DisablePagingExecutive only if

  1. plenty of memory installed, e.g. 1 GB RAM or more
  2. most of the memory being unused or idle on most of the time (wasting resource!), and
  3. Windows 2000 and above (Windows XP, Windows 2003) is running.
DisablePagingExecutive is a DWORD data type that could be located at registry path

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

The initial setup of Windows XP default DisablePagingExecutive value to zero. Setting this value to 1 to enable Windows core to fully utilize the huge memory installed. Tweaking this registry key benefits driver debugging too as all of the code and data are always memory resident. It also improves Windows system core performance by preventing high frequency of disk read in order to get code and data out from hard disk to memory for processing!

Related information:
  • Search more related info with Google Search engine built-in

Friday, September 01, 2006

DOS Auto Complete Path And Filename

Enable MS-DOS faster change path and auto-complete filename are the main attractions to use Windows command line utilities!

The fastest and easiest way to change path in MS-DOS or open MS-DOS prompt at indicated path dynamically is by adding tweaked MS-DOS shortcut to Windows context menu. Coupled with MS-DOS's filename auto-completion, it is easier to use various Windows command line utilities such as compiling program source code with command line compilers of C, .Net, Java, etc.

Enlarge picture...
Enlarge picture...
MS-DOS of Windows XP featured with filename auto-completion. Just press TAB key and the MS-DOS will automatically lists the file's name in the current directory. If initial character(s) is typed then only follow by pressing TAB key, it will only lists out those file's name with matching initial characters. MS-DOS of Windows 2000 able to auto complete filename by pressing TAB key too. Although, this feature is not turned on by default!

Turn on Windows 2000 MS-DOS's filename auto-completion feature:

  1. Click the Windows's Start button,
  2. Click the Run menu,
  3. Type regedit.exe in the Open field to call up Windows Registry Editor,
  4. Go to HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  5. Set the value of CompletionChar to 9.
  6. Done. Open MS-DOS, or better known as Command Prompt, to test the result. Now, the MS-DOS should automatically lists the filename each time pressing the TAB key. If initial character(s) is typed then only follow by pressing TAB key, the MS-DOS should automatically lists only file's name that matches with the initial character(s) given. Note, pressing SHIFT+TAB will tell the MS-DOS listing backward.
Add tweaked MS-DOS shortcut to Windows context menu:

Enlarge picture...
  1. Open My Computer or Windows Explorer,
  2. Click the Tools menu,
  3. Select Folder Options,
  4. Click on File Types tab,
  5. Search for "Folder" file type and highlight it,
  6. Click the Advanced button,
  7. Click the New button,
  8. Type a meaningful name, say Open DOS, in the Action field,
  9. Type C:\WINNT\system32\CMD.EXE /k cd %1 in the Application Used To Perform Action field below the Action field,
  10. Click OK button all the way to complete the procedures.
  11. To test the result, right click on any folder in local or network drives (not network folders which are not mapped as network drive). The Windows context menu should has new command shortcut named as Open Dos (the name given in previous step). Click on the Open DOS, the MS-DOS windows (titled as Command Prompt) opened up with the DOS current directory as the folder being right-clicked!