阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

记录一次用strace诊断php占用系统资源过高的问题

28次阅读
没有评论

共计 717 个字符,预计需要花费 2 分钟才能阅读完成。

导读 问题:本地的 web 站需要用到 elasticsearch 服务。当 php 使用本地服务器搭建的 elasticsearch 时,本地的负载都是正常。当我使用 aws 的 elasticsearch service 服务时,本地服务器出现负载经常过高的情况。查看 nginx 和 php 日志,发现没有异常。系统的并发连接数也不高。这时候想到我们老大给我讲的一个 strace 诊断工具。

本地环境:redhat6.7 系统。nginx1.12.1,php7.1.0,代码使用 yii2 框架

问题:本地的 web 站需要用到 elasticsearch 服务。当 php 使用本地服务器搭建的 elasticsearch 时,本地的负载都是正常。当我使用 aws 的 elasticsearch service 服务时,本地服务器出现负载经常过高的情况。查看 nginx 和 php 日志,发现没有异常。系统的并发连接数也不高。这时候想到我们老大给我讲的一个 strace 诊断工具。

调试过程:

  • 查找一个 php 的子进程 id
  • strace -cp pid 跟踪进程的调用

系统当时的负载:

记录一次用 strace 诊断 php 占用系统资源过高的问题

strace 调试过程

记录一次用 strace 诊断 php 占用系统资源过高的问题

这边就发现 php 调用 elasticsearch 的时候,会去本地找一个文件,这个文件是不存在的。从而导致服务器负载偏高。通过对比 aws elasticsearch 和本地 es 集群的区别。发现只有调用的方法不一样。代码里面是用 https 的方法调用的,所以他会去本地找这个证书库文件。我立即联系开发,把调用方式改成 http 之后,观察一段时间,服务器负载恢复正常了。

strace -T -e access -p 1379

记录一次用 strace 诊断 php 占用系统资源过高的问题

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计717字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中