如果你有 php 使用经验, 那肯定就更好了
业务背景
框架及相应环境
laravel5.7, mysql5.7, redis5, nginx1.15
centos 7.5 bbr
docker, docker-compose...首先需要声明的是, 系统的环境中是一定有小问题的(没有问题也不可能能够提升如此大的性能), 但是这些问题, 如果不通过使用合适的工具, 可能一辈子也发现不出来....本文关注的就是如何发现这些问题, 以及发现问题的思路.
我们首先找到系统中一个合适的API或函数, 用来放大问题.
这个 api 设计之初是给 nginx 负载均衡做健康检查的....我们怀疑两种情况
与 mysql, redis 重复大量的建立 TCP 连接, 消耗资源
大量请求带来的 tcp 连接
先说第一个, 经过检查, 发现数据库连接使用了 php-fpm 的连接池, 但是...通过安装 redis 扩展, 以及使用 phpredis 来驱动 Laravel的 redis 缓存, 提升性能, 达到了又一次近 50% 的性能提升.
最终我们完成了我们的性能提升 104% 的目标