/** * 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); } } } }
/** * 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; }