<?php
// 获取服务器性能信息
function getServerPerformance() {
// 获取 CPU 使用情况
$cpuLoad = sys_getloadavg();
// 获取内存使用情况
$memoryUsage = memory_get_usage(true);
$memoryTotal = memory_get_usage(false);
$memoryUsed = $memoryTotal - $memoryUsage;
// 获取磁盘使用情况
$diskFree = disk_free_space('/');
$diskTotal = disk_total_space('/');
$diskUsed = $diskTotal - $diskFree;
// 获取服务器时间
$serverTime = date('Y-m-d H:i:s');
// 返回性能信息
return [
'server_time' => $serverTime,
'cpu_load' => $cpuLoad[0], // 获取最近 1 分钟的 CPU 平均负载
'memory_used' => $memoryUsed,
'memory_total' => $memoryTotal,
'disk_used' => $diskUsed,
'disk_total' => $diskTotal,
];
}
// 输出服务器性能信息
header('Content-Type: application/json');
echo json_encode(getServerPerformance(), JSON_PRETTY_PRINT);
?>
介绍:
这个 PHP 代码示例实现了一个简单的服务器性能监测系统,可以用来获取和显示服务器的关键性能指标,包括 CPU 使用情况、内存使用情况和磁盘使用情况。功能如下:
-
CPU 使用情况:
- 使用
sys_getloadavg()
函数获取服务器的 CPU 平均负载。这函数返回一个包含最近 1 分钟、5 分钟和 15 分钟平均负载的数组,这里只提取了最近 1 分钟的值。
- 使用
-
内存使用情况:
- 使用
memory_get_usage(true)
获取当前 PHP 脚本的内存使用情况,并通过memory_get_usage(false)
获取总的内存使用情况。计算当前使用的内存量并进行报告。
- 使用
-
磁盘使用情况:
- 使用
disk_free_space()
和disk_total_space()
函数分别获取磁盘的剩余空间和总空间。计算磁盘使用量并进行报告。
- 使用
-
服务器时间:
- 获取当前服务器时间,帮助记录性能数据的时间戳。
-
输出格式:
- 将性能信息以 JSON 格式输出,使用
json_encode()
函数生成格式化的 JSON 数据。这使得数据易于在前端或其他系统中进行处理和分析。
- 将性能信息以 JSON 格式输出,使用
使用说明:
- 将该代码保存为
performance_monitor.php
。 - 通过浏览器访问
performance_monitor.php
,页面将以 JSON 格式显示服务器的性能信息。 - 该系统适用于开发过程中监测服务器性能,帮助识别潜在的性能瓶颈,并进行优化。