海神与明月 https://blog.satri.cn/ 全站:2.33 万字
技术

如何提高 PHP 程序的运行效率?

2024-05-27 字数:409

传统组合 nginx + fpm的方式

  1. 持续保持PHP版本更新, 一直使用最新最稳定的PHP版本.
  2. 框架不要标新立异, 选择性能口碑和开发效率平衡的比较好的, 要妥善使用框架, 注意其开发模式配置和生产模式配置的区别.
  3. 完善性能监控, 开源的用Tideways, 商业收费可以考虑oneapm, 总之, 要能及时发现程序中的性能killer
  4. nginx和php-fpm的通信配置要好好配置
  5. php-fpm最好根据自己机器的情况, 采用静态方式把所用worker进程预先启动.
  6. 动静分离, 静态资源全部上CDN, 减少在服务器上无用I/O操作, 服务器只运行自己的PHP程序, 如果有其它程序要跑, 最好单独起一个服务器/容器来做, 做到专项专用, 这样才能减少互相干扰产生的性能和debug排查等问题.
  7. 对下游所有的网络请求都要设置超时时间, 防止下游卡死拖垮整个服务.
  8. 对前端的所有请求都要设置超时时间, 同时建立防刷机制, 防止前端刷爆服务.
  9. 能用NoSql的就不要用mysql, 数据库永远是性能水桶中的最短板.
  10. 调优你能调优到的下游依赖, 如数据库调优, Redis调优等等....

非传统方案

上Swoole完全替代传统PHP框架, 或者使用Swoole或openresty替代nginx来做接入层, 在接入层就把简单的逻辑处理了 或者 清洗流量, 只把真正需要业务处理的流量放到PHP那边.

主流性能提升方案

转Golang

本文著作权归作者 [ 海神与明月 ]享有,未经作者书面授权,禁止以任何目的、任何形式转载,本声明具有法律效力,作者保留法律范围内的一切权利。