本文关注的就是如何发现这些问题, 以及发现问题的思路.
我们首先找到系统中一个合适的API或函数, 用来放大问题.
这个 api 设计之初是给 nginx 负载均衡做健康检查的....我们知道 Laravel 的性能是出了名的不好, 但是也不至于到这个程度, 从 api 的编写来看不应该这么低....redis 连接没有, redis 用的 predis, 这个是一个纯 PHP 实现, 性能不高, 换成了 phpredis:
打开 laravel 的 config/database.php 文件,...达到了喜人的 286qps, 虽然和其他主打高性能的框架或者原生 php 比, 还有很高的提升空间(比如 Swoole), 但是最终达到了 104% 的提升, 还是很有意义的
总结
我们通过 top,...通过安装 redis 扩展, 以及使用 phpredis 来驱动 Laravel的 redis 缓存, 提升性能, 达到了又一次近 50% 的性能提升.
最终我们完成了我们的性能提升 104% 的目标