记一次PHP并发性能调优实战 -- 性能提升104%

本文记录了一次针对PHP应用的并发性能调优过程,通过排查CPU占用、系统中断、系统调用等问题,优化了opcache配置并更换了redis驱动,最终实现了性能的显著提升,从140 QPS提高到286 QPS。
摘要由CSDN通过智能技术生成

适合阅读人群

文中的调优思路无论是php, java, 还是其他任何语言都是用. 如果你有php使用经验, 那肯定就更好了 业务背景 框架及相应环境

  1. laravel5.7, mysql5.7, redis5, nginx1.15

  2. centos 7.5 bbr

  3. docker, docker-compose

  4. 阿里云 4C和8G

问题背景

php已经开启opcache, laravel也运行了optimize命令进行优化, composer也进行过dump-autoload命令. 首先需要声明的是, 系统的环境中是一定有小问题的(没有问题也不可能能够提升如此大的性能), 但是这些问题, 如果不通过使用合适的工具, 可能一辈子也发现不出来. 本文关注的就是如何发现这些问题, 以及发现问题的思路. 我们首先找到系统中一个合适的API或函数, 用来放大问题. 这个api设计之初是给nginx负载均衡做健康检查的. 使用ab -n 100000 -c 1000 进行压测, 发现qps只能到140个每秒. 我们知道Laravel的性能是出了名的不好, 但是也不至于到这个程度, 从api的编写来看不应该这么低. 所以决定一探究竟.

public function getActivateStatus()


{


try {


$result = \DB::select('select 1');


$key = 1;


if ($result[0]->$key !== 1) {


throw new \Exception("mysql 检查失败");


}


} catch (\Exception $exception) {


\Log::critical("数据库连接失败: {$exception->getMessage()}", $exception->getTrace());


return \response(nul
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值