\response(null, 500);
}
return \response(null, 204);
}
问题表现以及排查思路
# top
top 命令发现系统 CPU 占用 100% 其中用户态占..., 我们知道, 当使用系统调用的时候, 系统陷入内核态, 这个过程是会产生软中断的, 通过查看 php-fpm 的系统调用, 验证我们的猜想
?...我们怀疑两种情况
与 mysql, redis 重复大量的建立 TCP 连接, 消耗资源
大量请求带来的 tcp 连接
先说第一个, 经过检查, 发现数据库连接使用了 php-fpm 的连接池, 但是...redis 连接没有, redis 用的 predis, 这个是一个纯 PHP 实现, 性能不高, 换成了 phpredis:
打开 laravel 的 config/database.php 文件,...strace 查看具体的系统调用, 发现大量的系统调用来自于 stat, 猜测可能是opcache 频繁的检查时间戳, 判断文件修改.