/**
  * Physical memory information and Swap Space information
  *
  * @return void
  */
 protected function memory()
 {
     if (PHP_OS == 'FreeBSD' || PHP_OS == 'OpenBSD') {
         // vmstat on fbsd 4.4 or greater outputs kbytes not hw.pagesize
         // I should probably add some version checking here, but for now
         // we only support fbsd 4.4
         $pagesize = 1024;
     } else {
         $pagesize = $this->grabkey('hw.pagesize');
     }
     if (CommonFunctions::executeProgram('vmstat', '', $vmstat, PSI_DEBUG)) {
         $lines = preg_split("/\n/", $vmstat, -1, PREG_SPLIT_NO_EMPTY);
         $ar_buf = preg_split("/\\s+/", trim($lines[2]), 19);
         if (PHP_OS == 'NetBSD' || PHP_OS == 'DragonFly') {
             $this->sys->setMemFree($ar_buf[4] * 1024);
         } else {
             $this->sys->setMemFree($ar_buf[4] * $pagesize);
         }
         $this->sys->setMemTotal($this->grabkey('hw.physmem'));
         $this->sys->setMemUsed($this->sys->getMemTotal() - $this->sys->getMemFree());
         if ((PHP_OS == 'OpenBSD' || PHP_OS == 'NetBSD') && CommonFunctions::executeProgram('swapctl', '-l -k', $swapstat, PSI_DEBUG) || CommonFunctions::executeProgram('swapinfo', '-k', $swapstat, PSI_DEBUG)) {
             $lines = preg_split("/\n/", $swapstat, -1, PREG_SPLIT_NO_EMPTY);
             foreach ($lines as $line) {
                 $ar_buf = preg_split("/\\s+/", $line, 6);
                 if ($ar_buf[0] != 'Total') {
                     $dev = new DiskDevice();
                     $dev->setMountPoint($ar_buf[0]);
                     $dev->setName("SWAP");
                     $dev->setFsType('swap');
                     $dev->setTotal($ar_buf[1] * 1024);
                     $dev->setUsed($ar_buf[2] * 1024);
                     $dev->setFree($dev->getTotal() - $dev->getUsed());
                     $this->sys->setSwapDevices($dev);
                 }
             }
         }
     }
 }
 /**
  * Physical memory information and Swap Space information
  *
  * @link http://msdn2.microsoft.com/En-US/library/aa394239.aspx
  * @link http://msdn2.microsoft.com/en-us/library/aa394246.aspx
  * @return void
  */
 private function _memory()
 {
     $buffer = CommonFunctions::getWMI($this->_wmi, "Win32_OperatingSystem", array('TotalVisibleMemorySize', 'FreePhysicalMemory'));
     if ($buffer) {
         $this->sys->setMemTotal($buffer[0]['TotalVisibleMemorySize'] * 1024);
         $this->sys->setMemFree($buffer[0]['FreePhysicalMemory'] * 1024);
         $this->sys->setMemUsed($this->sys->getMemTotal() - $this->sys->getMemFree());
     }
     $buffer = CommonFunctions::getWMI($this->_wmi, 'Win32_PageFileUsage');
     foreach ($buffer as $swapdevice) {
         $dev = new DiskDevice();
         $dev->setName("SWAP");
         $dev->setMountPoint($swapdevice['Name']);
         $dev->setTotal($swapdevice['AllocatedBaseSize'] * 1024 * 1024);
         $dev->setUsed($swapdevice['CurrentUsage'] * 1024 * 1024);
         $dev->setFree($dev->getTotal() - $dev->getUsed());
         $dev->setFsType('swap');
         $this->sys->setSwapDevices($dev);
     }
 }
 /**
  * fill a xml element with atrributes from a disk device
  *
  * @param SimpleXmlExtended $mount Xml-Element
  * @param DiskDevice        $dev   DiskDevice
  * @param Integer           $i     counter
  *
  * @return Void
  */
 private function _fillDevice(SimpleXMLExtended $mount, DiskDevice $dev, $i)
 {
     $mount->addAttribute('MountPointID', $i);
     $mount->addAttribute('FSType', $dev->getFsType());
     $mount->addAttribute('Name', $dev->getName());
     $mount->addAttribute('Free', sprintf("%.0f", $dev->getFree()));
     $mount->addAttribute('Used', sprintf("%.0f", $dev->getUsed()));
     $mount->addAttribute('Total', sprintf("%.0f", $dev->getTotal()));
     $mount->addAttribute('Percent', $dev->getPercentUsed());
     if (PSI_SHOW_MOUNT_OPTION === true) {
         if ($dev->getOptions() !== null) {
             $mount->addAttribute('MountOptions', preg_replace("/,/", ", ", $dev->getOptions()));
         }
     }
     if ($dev->getPercentInodesUsed() !== null) {
         $mount->addAttribute('Inodes', $dev->getPercentInodesUsed());
     }
     if (PSI_SHOW_MOUNT_POINT === true) {
         $mount->addAttribute('MountPoint', $dev->getMountPoint());
     }
 }
 /**
  * Physical memory information and Swap Space information
  *
  * @return void
  */
 private function _memory()
 {
     if (CommonFunctions::rfts('/proc/meminfo', $bufr)) {
         $bufe = preg_split("/\n/", $bufr, -1, PREG_SPLIT_NO_EMPTY);
         foreach ($bufe as $buf) {
             if (preg_match('/^MemTotal:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) {
                 $this->sys->setMemTotal($ar_buf[1] * 1024);
             } elseif (preg_match('/^MemFree:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) {
                 $this->sys->setMemFree($ar_buf[1] * 1024);
             } elseif (preg_match('/^Cached:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) {
                 $this->sys->setMemCache($ar_buf[1] * 1024);
             } elseif (preg_match('/^Buffers:\\s+(.*)\\s*kB/i', $buf, $ar_buf)) {
                 $this->sys->setMemBuffer($ar_buf[1] * 1024);
             }
         }
         $this->sys->setMemUsed($this->sys->getMemTotal() - $this->sys->getMemFree());
         // values for splitting memory usage
         if ($this->sys->getMemCache() !== null && $this->sys->getMemBuffer() !== null) {
             $this->sys->setMemApplication($this->sys->getMemUsed() - $this->sys->getMemCache() - $this->sys->getMemBuffer());
         }
         if (CommonFunctions::rfts('/proc/swaps', $bufr)) {
             $swaps = preg_split("/\n/", $bufr, -1, PREG_SPLIT_NO_EMPTY);
             unset($swaps[0]);
             foreach ($swaps as $swap) {
                 $ar_buf = preg_split('/\\s+/', $swap, 5);
                 $dev = new DiskDevice();
                 $dev->setMountPoint($ar_buf[0]);
                 $dev->setName("SWAP");
                 $dev->setTotal($ar_buf[2] * 1024);
                 $dev->setUsed($ar_buf[3] * 1024);
                 $dev->setFree($dev->getTotal() - $dev->getUsed());
                 $this->sys->setSwapDevices($dev);
             }
         }
     }
 }
 /**
  * Physical memory information and Swap Space information
  *
  * @return void
  */
 private function _memory()
 {
     if (CommonFunctions::rfts('/proc/meminfo', $bufr)) {
         $bufe = preg_split("/\n/", $bufr, -1, PREG_SPLIT_NO_EMPTY);
         foreach ($bufe as $buf) {
             if (preg_match('/Mem:\\s+(.*)$/', $buf, $ar_buf)) {
                 $ar_buf = preg_split('/\\s+/', $ar_buf[1], 6);
                 $this->sys->setMemTotal($ar_buf[0]);
                 $this->sys->setMemUsed($ar_buf[1]);
                 $this->sys->setMemFree($ar_buf[2]);
                 $this->sys->setMemApplication($ar_buf[3]);
                 $this->sys->setMemBuffer($ar_buf[4]);
                 $this->sys->setMemCache($ar_buf[5]);
             }
             // Get info on individual swap files
             if (CommonFunctions::rfts('/proc/swaps', $swaps)) {
                 $swapdevs = preg_split("/\n/", $swaps, -1, PREG_SPLIT_NO_EMPTY);
                 for ($i = 1, $max = sizeof($swapdevs) - 1; $i < $max; $i++) {
                     $ar_buf = preg_split('/\\s+/', $swapdevs[$i], 6);
                     $dev = new DiskDevice();
                     $dev->setMountPoint($ar_buf[0]);
                     $dev->setName("SWAP");
                     $dev->setFsType('swap');
                     $dev->setTotal($ar_buf[2] * 1024);
                     $dev->setUsed($ar_buf[3] * 1024);
                     $dev->setFree($dev->getTotal() - $dev->getUsed());
                     $this->sys->setSwapDevices($dev);
                 }
             }
         }
     }
 }
 /**
  * filesystem information
  *
  * @return void
  */
 private function _filesystems()
 {
     $arrResult = array();
     if (CommonFunctions::executeProgram('df', '-b', $df, PSI_DEBUG)) {
         $df = preg_split("/\n/", $df, -1, PREG_SPLIT_NO_EMPTY);
         foreach ($df as $df_line) {
             $ar_buf = preg_split("/\\s+/", $df_line);
             if (substr($df_line, 0, 1) == "/" && count($ar_buf) == 6) {
                 $dev = new DiskDevice();
                 $dev->setMountPoint($ar_buf[0]);
                 $dev->setName($ar_buf[5]);
                 $dev->setFsType($ar_buf[1]);
                 $dev->setOptions($ar_buf[4]);
                 $dev->setTotal($ar_buf[2] * 1024);
                 $dev->setFree($ar_buf[3] * 1024);
                 $dev->setUsed($dev->getTotal() - $dev->getFree());
                 $this->sys->setDiskDevices($dev);
             }
         }
     }
 }
Beispiel #7
0
 /**
  * Physical memory information and Swap Space information
  * @return void
  */
 private function _memory()
 {
     $mems = "";
     $tswap = "";
     $pswap = "";
     foreach ($this->readaixdata() as $line) {
         if (preg_match("/^Good Memory Size:\\s+(\\d+)\\s+MB/", $line, $ar_buf)) {
             $mems = $ar_buf[1];
         }
         if (preg_match("/^\\s*Total Paging Space:\\s+(\\d+)MB/", $line, $ar_buf)) {
             $tswap = $ar_buf[1];
         }
         if (preg_match("/^\\s*Percent Used:\\s+(\\d+)%/", $line, $ar_buf)) {
             $pswap = $ar_buf[1];
         }
     }
     if (trim($mems) != "") {
         $mems = $mems * 1024 * 1024;
         $this->sys->setMemTotal($mems);
         $memu = 0;
         $memf = 0;
         if (CommonFunctions::executeProgram('svmon', '-G', $buf)) {
             if (preg_match("/^memory\\s+\\d+\\s+(\\d+)\\s+/", $buf, $ar_buf)) {
                 $memu = $ar_buf[1] * 1024 * 4;
                 $memf = $mems - $memu;
             }
         }
         $this->sys->setMemUsed($memu);
         $this->sys->setMemFree($memf);
         //            $this->sys->setMemApplication($mems);
         //            $this->sys->setMemBuffer($mems);
         //            $this->sys->setMemCache($mems);
     }
     if (trim($tswap) != "") {
         $dev = new DiskDevice();
         $dev->setName("SWAP");
         $dev->setFsType('swap');
         $dev->setTotal($tswap * 1024 * 1024);
         if (trim($pswap) != "") {
             $dev->setUsed($dev->getTotal() * $pswap / 100);
         }
         $dev->setFree($dev->getTotal() - $dev->getUsed());
         $this->sys->setSwapDevices($dev);
     }
 }
 /**
  * fill a xml element with atrributes from a disk device
  *
  * @param SimpleXmlExtended $mount Xml-Element
  * @param DiskDevice        $dev   DiskDevice
  * @param Integer           $i     counter
  *
  * @return Void
  */
 private function _fillDevice($mount, $dev, $i)
 {
     $mount->addAttribute('MountPointID', $i);
     $mount->addAttribute('FSType', $dev->getFsType());
     $mount->addAttribute('Name', $dev->getName());
     $mount->addAttribute('Free', $dev->getFree());
     $mount->addAttribute('Used', $dev->getUsed());
     $mount->addAttribute('Total', $dev->getTotal());
     $mount->addAttribute('Percent', $dev->getPercentUsed());
     if ($dev->getOptions() !== null) {
         $mount->addAttribute('MountOptions', $dev->getOptions());
     }
     if ($dev->getPercentInodesUsed() !== null) {
         $mount->addAttribute('Inodes', $dev->getPercentInodesUsed());
     }
     if (PSI_SHOW_MOUNT_POINT === true) {
         $mount->addAttribute('MountPoint', $dev->getMountPoint());
     }
 }
 /**
  * fill a xml element with atrributes from a disk device
  *
  * @param DiskDevice $dev DiskDevice
  * @param Integer    $i   counter
  *
  * @return Void
  */
 private function _fillDevice(DiskDevice $dev, $i)
 {
     $mount = array('MountPointID' => $i, 'FSType' => $dev->getFsType(), 'Name' => $dev->getName(), 'Free' => sprintf("%.0f", $dev->getFree()), 'Used' => sprintf("%.0f", $dev->getUsed()), 'Total' => sprintf("%.0f", $dev->getTotal()), 'Percent' => $dev->getPercentUsed());
     if (PSI_SHOW_MOUNT_OPTION === true && $dev->getOptions() !== null) {
         $mount['MountOptions'] = preg_replace("/,/", ", ", $dev->getOptions());
     }
     if ($dev->getPercentInodesUsed() !== null) {
         $mount['Inodes'] = $dev->getPercentInodesUsed();
     }
     if (PSI_SHOW_MOUNT_POINT === true) {
         $mount['MountPoint'] = $dev->getMountPoint();
     }
     return $mount;
 }