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

Crq
Crq
Crq
553
文章
0
评论
2024年9月23日14:04:53
评论
11 479字阅读1分35秒
摘要

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

strace -T -e access -p 1379

weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2024年9月23日14:04:53
  • 转载请注明:https://www.cncrq.com/10858.html
运维稳定性问题的关键–可用性 Linux教程

运维稳定性问题的关键–可用性

复盘更多的是基于事后的总结与提升。那么我们如何发现、测量稳定性问题呢?那么我们就需要请出今天的主角了——可用性。 什么是可用性? 可用性作为评价业务稳定性的一个重要指标,它可以通过数据量化、建立基线的...
如何在Linux系统上添加新的磁盘 Linux教程

如何在Linux系统上添加新的磁盘

作为一个系统管理员,我们会有这样的一些需求:作为升级服务器容量的一部分,或者有时出现磁盘故障时更换磁盘,我们需要将新的硬盘配置到现有服务器。 在这篇文章中,我会向你逐步介绍添加新硬...
Ubuntu终端常用快捷键 Linux教程

Ubuntu终端常用快捷键

Ubuntu是一个非常好用的linux开发版系统,本文收集整理了一些Ubuntu常用的一些快捷键,Ubuntu中的许多操作在终端(Terminal)中十分的快捷,记住一些快捷键的操...
详解命令-GCC Linux教程

详解命令-GCC

gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: