您的位置:首页 >ThinkPHP Linux性能监控怎么做
发布于2026-05-03 阅读(0)
扫一扫,手机访问
面向ThinkPHP在Linux环境下的性能监控,一个行之有效的策略是构建“三层联动”的观测体系:
这一层的关键在于从代码内部获取第一手数据。
app/middleware/PerformanceLogger.php:
namespace app\middleware;
use think\facade\Request;
use think\facade\Log;
class PerformanceLogger
{
public function handle($request, \Closure $next)
{
$start = microtime(true);
$response = $next($request);
$duration = (microtime(true) - $start) * 1000; // 转换为毫秒
Log::info('perf', [
'method' => $request->method(),
'url' => $request->url(true),
'ip' => $request->ip(),
'ms' => round($duration, 2),
'mem' => memory_get_peak_usage(true),
]);
return $response;
}
}
在全局或模块中间件中注册后即可生效。这里有个小建议:日志最好按天切割,并配置为异步写入,这样可以最大程度避免对请求响应时间造成影响。
composer require datadog/php-datadogstatsd。
// config/datadog.php
return [
'host' => '127.0.0.1',
'port' => 8125,
'namespace' => 'my_tp_app',
'tags' => ['env:production', 'app:tp'],
];
// 在控制器或服务中
$statsd = new \DataDog\DogStatsd(config('datadog'));
$statsd->timing('tp.request', $durationMs, ['route'=>$route]);
$statsd->increment('tp.request.count', 1, ['method'=>$method]);
需要确保服务器本机或内网能够访问到Datadog Agent(默认UDP端口8125),或者在代码中将其地址修改为你自己的Agent地址。
app_debug后,页面底部会显示调试面板,其中包含了SQL语句、加载时间等信息,对于快速定位问题非常方便。$GLOBALS[‘_beginTime’],然后在页面或公共函数中输出“耗时:x.x s”,用于快速验证性能。当然,生产环境务必关闭调试面板。当应用出现性能瓶颈时,系统层面的指标往往是问题的根源所在。
top, htop, mpstat -P ALL 1, free -hdf -h, iostat -x 1 3, dstat, iotopss -tulnp, iftop, nload, netstat -s, tcpdump -i eth0 port 80sar -u 1 3(CPU)、sar -r 1 3(内存)、sar -b 1 3(I/O)查看历史统计,这需要安装sysstat包。atop(按日记录进程活动,高亮资源消耗)、slabtop(查看内核slab缓存)、lsof(列出打开的文件和连接)、sysdig(强大的系统调用与事件追踪工具,例如sysdig proc.name=php-fpm)。将零散的数据汇聚到统一的平台,是实现自动化运维和智能告警的关键一步。
理论再好,也需要清晰的执行路径。以下是分步实施的建议:
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9