PHP实时监控服务器性能与资源使用情况

<?php

class ServerPerformanceMonitor {
    // 获取CPU使用率
    public function getCpuUsage() {
        $load = sys_getloadavg();
        return $load[0]; // 返回1分钟平均负载
    }

    // 获取内存使用情况
    public function getMemoryUsage() {
        $memInfo = file_get_contents("/proc/meminfo");
        $memInfo = explode("\n", $memInfo);

        $memTotal = (int) filter_var($memInfo[0], FILTER_SANITIZE_NUMBER_INT);
        $memFree = (int) filter_var($memInfo[1], FILTER_SANITIZE_NUMBER_INT);

        $memUsed = $memTotal - $memFree;
        $memUsagePercentage = ($memUsed / $memTotal) * 100;

        return round($memUsagePercentage, 2); // 返回内存使用百分比
    }

    // 获取磁盘使用情况
    public function getDiskUsage($path = '/') {
        $diskTotal = disk_total_space($path);
        $diskFree = disk_free_space($path);

        $diskUsed = $diskTotal - $diskFree;
        $diskUsagePercentage = ($diskUsed / $diskTotal) * 100;

        return round($diskUsagePercentage, 2); // 返回磁盘使用百分比
    }

    // 获取网络流量数据
    public function getNetworkTraffic($interface = 'eth0') {
        $netFile = "/proc/net/dev";
        $netData = file($netFile);
        
        foreach ($netData as $line) {
            if (strpos($line, $interface) !== false) {
                $lineData = preg_split('/\s+/', trim($line));
                $receivedBytes = $lineData[1];
                $transmittedBytes = $lineData[9];
                return [
                    'received_bytes' => $receivedBytes,
                    'transmitted_bytes' => $transmittedBytes
                ];
            }
        }
        return null;
    }
}

// 示例使用
$monitor = new ServerPerformanceMonitor();

echo "CPU Usage: " . $monitor->getCpuUsage() . "%\n";
echo "Memory Usage: " . $monitor->getMemoryUsage() . "%\n";
echo "Disk Usage: " . $monitor->getDiskUsage() . "%\n";

$networkTraffic = $monitor->getNetworkTraffic();
echo "Network Traffic - Received: " . $networkTraffic['received_bytes'] . " bytes, Transmitted: " . $networkTraffic['transmitted_bytes'] . " bytes\n";

这个PHP代码片段实现了一个简单的服务器性能与资源使用情况的实时监控工具。它可以帮助开发者在开发和运维过程中监控服务器的健康状态,确保系统的高效运行。具体功能如下:

  1. CPU使用率监控:通过读取系统负载平均值来获取CPU的使用率,便于了解服务器的处理器负载情况。
  2. 内存使用情况监控:读取系统内存信息,计算出内存的使用百分比,帮助识别是否存在内存瓶颈。
  3. 磁盘使用情况监控:获取指定路径的磁盘使用情况,包括磁盘的总空间、可用空间以及使用百分比。
  4. 网络流量监控:通过读取网络接口的信息,获取接收和发送的数据字节数,可以帮助了解服务器的网络流量。

该工具适用于需要实时了解服务器性能的场景,帮助开发者或系统管理员及时发现潜在问题并进行调整。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值