运维配置优化
php优化
php进程数优化
-
问题描述
-
s-api 接口访问不稳定 通过postman 访问接口出现一下情况
- 返回502错误
- 访问需要十多秒才能返回
- 访问不稳定

-
服务端监控:
- 发现接口响应正常 很快就返回了

-
查看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): - 配置相关介绍
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 信息
- 减少desc table操作次数,
