top
是系统自带的实时进程监控工具,输入命令后可按P
(CPU使用率)、M
(内存使用率)排序,快速定位ThinkPHP进程(通常包含php
或php-fpm
关键字);htop
是增强版(需安装:sudo apt install htop
),提供更直观的界面和颜色标识,支持鼠标操作。ps aux | grep php
过滤出所有PHP相关进程,查看其CPU、内存占用及运行状态(如D
表示不可中断睡眠,Z
表示僵尸进程)。systemctl status php-fpm
查看PHP-FPM服务状态(是否active、running);systemd-cgtop
则可查看PHP-FPM进程组的资源使用情况(如CPU、内存占比)。/var/log/nginx/access.log
(记录用户请求的URL、HTTP状态码、响应时间),错误日志位于/var/log/nginx/error.log
(记录PHP解析错误、连接超时等);/var/log/apache2/access.log
,错误日志位于/var/log/apache2/error.log
。tail -f /var/log/nginx/error.log
实时查看错误日志,快速定位ThinkPHP运行中的问题(如数据库连接失败、代码语法错误)。composer require newrelic/php-agent
),在代码中初始化(require_once 'vendor/autoload.php'; NewRelic\Agent\initialize('your_license_key')
),即可获取请求响应时间、数据库查询耗时、错误率等指标,并支持实时报警。composer require datadog/php-dogstatsd
安装PHP SDK,配置datadog.yaml
文件,监控应用性能并提供可视化 dashboard。sudo apt install supervisor
;/etc/supervisor/conf.d/thinkphp.conf
),内容如下:[program:thinkphp]
command=php /path/to/your/thinkphp project/artisan serve --host=0.0.0.0 --port=8000
directory=/path/to/your/thinkphp project
autostart=true
autorestart=true
user=www-data
stderr_logfile=/var/log/thinkphp.err.log
stdout_logfile=/var/log/thinkphp.out.log
sudo service supervisor restart
。app/middleware/Monitor.php
),记录每个请求的执行时间与内存使用:namespace app\middleware;
use Closure;
class Monitor
{
public function handle($request, Closure $next)
{
$start = microtime(true);
$response = $next($request);
$end = microtime(true);
$executionTime = ($end - $start) * 1000; // 转换为毫秒
$memoryUsage = memory_get_usage(true) / 1024 / 1024; // 转换为MB
\think\facade\Log::write("Request: {$request->path()} | Time: {$executionTime}ms | Memory: {$memoryUsage}MB");
return $response;
}
}
注册中间件(在app/middleware.php
中添加Monitor::class
),即可通过日志分析请求性能瓶颈。以上方法覆盖了从基础到高级的ThinkPHP运行状态监控需求,可根据实际场景选择组合使用(如生产环境用New Relic+Supervisor,开发环境用htop+日志分析)。