Skip to main content

运维配置优化

php优化

php进程数优化

  • 问题描述

    • s-api 接口访问不稳定 通过postman 访问接口出现一下情况

      • 返回502错误
      • 访问需要十多秒才能返回
      • 访问不稳定
      • image-20200501115150105
    • 服务端监控:

      • 发现接口响应正常 很快就返回了
      • image-20200501115217782
    • 查看php进程数发现php进程很少

    • 查看nginx 错误日志显示:

      • connect() to unix:/run/php/php7.3-fpm.sock failed
      r@sg-2c8g-10:/var/log/nginx# cat s-api.error.log  | grep "47.56.216.25" 
      2020/04/28 21:26:00 [error] 32102#32102: *28320213 connect() to unix:/run/php/php7.3-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 47.56.216.25, server: api.s.com, request: "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.3-fpm.sock:", host: "api.s.com"
      2020/04/28 21:26:11 [error] 32102#32102: *28320750 connect() to unix:/run/php/php7.3-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 47.56.216.25, server: api.s.com, request: "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.3-fpm.sock:", host: "api.s.com"
      2020/04/28 21:26:14 [error] 32102#32102: *28320883 connect() to unix:/run/php/php7.3-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 47.56.216.25, server: api.s.com, request: "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.3-fpm.sock:", host: "api.s.com"
      2020/04/28 21:26:16 [error] 32102#32102: *28321053 connect() to unix:/run/php/php7.3-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 47.56.216.25, server: api.s.com, request: "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.3-fpm.sock:", host: "api.s.com"
      2020/04/28 21:36:51 [error] 32102#32102: *28352887 connect() to unix:/run/php/php7.3-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 47.56.216.25, server: api.s.com, request: "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.3-fpm.sock:", host: "api.s.com"
      47.56.216.25 - - [28/Apr/2020:21:26:00 +0800] "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1" 502 157 "-" "Android/5.1.0 s/1.1.34"
      47.56.216.25 - - [28/Apr/2020:21:26:11 +0800] "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1" 502 157 "-" "Android/5.1.0 s/1.1.34"
      47.56.216.25 - - [28/Apr/2020:21:26:14 +0800] "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1" 502 157 "-" "Android/5.1.0 s/1.1.34"
      47.56.216.25 - - [28/Apr/2020:21:26:16 +0800] "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1" 502 157 "-" "Android/5.1.0 s/1.1.34"
      47.56.216.25 - - [28/Apr/2020:21:26:49 +0800] "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1" 200 343 "-" "Android/5.1.0 s/1.1.34"
      47.56.216.25 - - [28/Apr/2020:21:34:08 +0800] "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1" 200 343 "-" "Android/5.1.0 s/1.1.34"
      47.56.216.25 - - [28/Apr/2020:21:36:51 +0800] "POST /dev_login?XDEBUG_SESSION_START=16757 HTTP/1.1" 502 157 "-" "Android/5.1.0 s/1.1.34"
  • 优化方案

    • 应是php进程数限制了 导致访问无法及时启动php进程来处理
    • 增大php 进程数
      • 相关配置文件:php-fpm.conf、conf.d、pool.d
      • 配置内容(/etc/php/7.3/fpm/pool.d/www.conf):
        • image-20200507123655717
      • 配置相关介绍

php缓存支持

  • opcache可以增强php加载速度

    opcache.validate_timestamps 默认是OFF

    OPcache 会每隔 opcache.revalidate_freq 设定的秒数 检查脚本是否更新。 如果禁用此选项,你必须使用 opcache_reset() 或者 opcache_invalidate() 函数来手动重置 OPcache,也可以 通过重启 Web 服务器来使文件系统更改生效。

    opcache.revalidate_freq 单位 秒 默认为 2

    检查脚本时间戳是否有更新的周期,以秒为单位。 设置为 0 会导致针对每个请求, OPcache 都会检查脚本更新。

  • ddd

desc tables 慎用

  • 问题描述:
    • cpanel每次初始化Model会通过desc table query 来获取表结构,日志监控发现获取表结构比较耗时 拖慢了每个php请求
  • 优化方案:
    • 减少desc table操作次数,
      • 每次读取到desc table信息后 放入redis缓存中
      • 优先从redis缓存中读取table 信息