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

Crq
Crq
管理员
1870
文章
0
粉丝
Linux教程评论54字数 294阅读0分58秒阅读模式
摘要问题:本地的web站需要用到elasticsearch服务。当php使用本地服务器搭建的elasticsearch时,本地的负载都是正常。 当我使用aws 的elasticsear...

本地环境: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占用系统资源过高的问题-图片1

strace 调试过程

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

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

strace -T -e access -p 1379

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

weinxin
我的微信
微信号已复制
我的微信
这是我的微信扫一扫
 
Crq
  • 本文由 Crq 发表于2024年9月23日 14:04:53
  • 转载请注明:https://www.cncrq.com/10858.html
最牛X的GCC 内联汇编 Linux教程

最牛X的GCC 内联汇编

正如大家知道的,在C语言中插入汇编语言,其是Linux中使用的基本汇编程序语法。本文将讲解 GCC 提供的内联汇编特性的用途和用法。对于阅读这篇文章,这里只有两个前提要求,很明显,...
10款优秀Vim插件帮你打造完美IDE Linux教程

10款优秀Vim插件帮你打造完美IDE

如果你稍微写过一点代码,就能知道“集成开发环境”(IDE)是多么的便利。不管是Java、C还是Python,当IDE会帮你检查语法、后台编译,或者自动导入你需要的库时,写代码就变得...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证