Negative value for Partition Free metric from Linux server
search cancel

Negative value for Partition Free metric from Linux server

book

Article ID: 134791

calendar_today

Updated On:

Products

CA Infrastructure Management CA Performance Management - Usage and Administration

Issue/Introduction

A Linux disk partition item was observed to have a negative value for the Free metric in Performance Management.

This disk is full and the value expected would be 0% Free with it being full.

Environment

All supported Performance Management releases

Cause

The Certification in use for this data is the one named SPIM Storage.

The Free metric at issue uses the following Expression to determine a value.

  • ((devTblks < 0) || (devCapacity < 0) || (devBsize < 0)) ? null : (devTblks * devBsize) - (((devTblks * devCapacity) / 100.0) * devBsize)

The MIB OIDs in the expression are as follows:
  • <Attribute name="devTblks" type="Long">
  • <Source>1.3.6.1.4.1.546.1.1.1.7.1.5</Source>

  • <Attribute name="devCapacity" type="Long">
  • <Source>1.3.6.1.4.1.546.1.1.1.7.1.14</Source>

  • <Attribute name="devBsize" type="Long">
  • <Source>1.3.6.1.4.1.546.1.1.1.7.1.4</Source>

Using values obtained from Detailed Poll Logging we see the following values received from the device. They are the same values that are used post delta processing in expression evaluation.

  • devTblks 1.3.6.1.4.1.546.1.1.1.7.1.5.1 = 4504259
  • devBsize 1.3.6.1.4.1.546.1.1.1.7.1.4.1 = 4096
  • devCapacity 1.3.6.1.4.1.546.1.1.1.7.1.14.1 = 101

Fill in the blanks on the expression we get:

  • ((4504259 < 0) || (101 < 0) || (4096 < 0)) ? null : (4504259 * 4096) - (((4504259 * 101) / 100.0) * 4096)

Do we have the data we need, or do we drop this value?

  • ((4504259 < 0) || (101 < 0) || (4096 < 0)) ? null

  1. devTblks @ 4504259 is not < 0
  2. devCapacity @ 101 is not < 0
  3. devBsize @ 4096 is not < 0

The expression does not evaluate to null and moves on to calculate the value. Calculating the expression we get:

  • (4504259 * 4096) - (((4504259 * 101) / 100.0) * 4096)
  • (18449444864) - (((4549301.59) * 4096)
  • (18449444864) - (18633939312.64) = -184494448.64

That aligns with the value after data processing inserted into the DB.

  • DCMResponseVariable [name={http://im.ca.com/normalizer}NormalizedPartitionsInfo.Free, value=-1.844944486399994E8 (Double) ]

The cause is the data coming back from the target device. Why is it negative?

The cause for the negative values is the data returned from the device.

The cause for the data returned from the device resulting in a negative is due to a full disk. In this case the system is now using this volume’s "reserved space". Usually, 8-10% of disk space is "reserved" (i.e. only the root  processes can allocate space once disk usage exceeds 90%). Once this happens, free space is often reported as a negative number.

The reserved space is being subtracted from what is available, leaving a “negative amount of space usable” by non-root users.

Resolution

To remove this error take one of the following actions.

  • Free up disk space
  • Expand the file system
  • Reduce the size of the reserved area