排查PHP服务器CPU占用率高的问题

news2024/11/30 2:46:56

排查PHP服务器CPU占用率高的问题通常可以通过以下步骤进行:

使用top或htop命令:这些命令可以实时显示服务器上各个进程的CPU和内存使用情况。找到CPU使用率高的进程。

查看进程日志:如果PHP-FPM或Apache等服务器进程的日志记录了具体的请求信息,可以通过查看这些日志来确定是哪个脚本或请求导致了高CPU使用。

分析慢查询:如果你的PHP应用记录了请求的执行时间,可以找到执行时间最长的查询或代码段,这可能是导致CPU高的原因。

使用xdebug和valgrind:如果你的PHP环境支持这些工具,可以使用它们来分析代码的执行情况,找出占用CPU高的原因。

优化代码:一旦确定是特定的脚本或代码段导致CPU高,需要对代码进行优化,比如减少循环次数、优化数据库查询、使用缓存等手段来提高性能。

监控PHP-FPM或Web服务器的性能指标:比如查看PHP-FPM的children数量是否足够,或者Apache的max_clients是否已满,这些都可能是导致CPU高的原因。

使用系统监控工具:可以使用第三方监控工具,比如New Relic或AppDynamics,来帮助监控和分析应用性能。

分布式部署:如果流量非常大,可以考虑通过负载均衡将请求分散到多个服务器上,减少单一服务器的负载。

升级硬件:如果经过排查后发现硬件性能已到达瓶颈,可能需要考虑升级服务器的CPU或其他硬件资源。

查看外部依赖:比如数据库或其他API服务的响应时间,也可能影响到应用服务器的CPU使用率。

这些步骤可以帮助你定位PHP服务器CPU占用高的问题,并采取相应措施进行解决。

之前碰到过php-fpmCPU高达80%-90%,特此记录下

1. 查看是否是硬件问题

  方式:top  命令

  主要查看:load average(平均负载),这是一个4核8G内存的服务器

  1分钟平均负载:2.32;

  5分钟平均负载:2.18;

  15分钟平均负载:3.95;

  load average  中3个数的含义,如果是1核cpu,那么不能超过1,4核那么就不能超过4,15分钟可以代表长期,5分钟代表中期,1分钟代表短期,所以先看15分钟

  大神详解load average

  可以说它现在的平均负载接近了它的cpu总核数:4;需要考虑服务器配置升级!


2.查看是否是PHP-fpm的进程数过多

  首先使用 free -m 指令查看当前服务器执行状况:

  

  可以看到我的内存消耗不多,也能看到我是2G内存

  然后再用  top  命令 m 参数  查看内存情况

  再使用:ps auxw|head -1;ps auxw|sort -rn -k4|head -40      查看消耗内存最多的前40个进程

  查看通过命令查看服务器上一共开了多少的 php-cgi 进程:ps -fe |grep "php-fpm"|grep "pool"|wc -l

  查看已经有多少个php-cgi进程用来处理tcp请求:netstat -anp|grep "php-fpm"|grep "tcp"|grep "pool"|wc -l

  设置PHP-FPM的进程数:vi /etc/php-fpm.d/www.conf(根据实际情况变化)找到 pm.max_children 字段,设置一个合理的值,比之前的小

  pm.max_spare_servers : 该值表示保证空闲进程数最大值,如果空闲进程大于此值,此进行清理 pm.min_spare_servers : 保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程;

  这两个值均不能不能大于 pm.max_children 值,通常设置 pm.max_spare_servers 值为 pm.max_children 值的60%-80%。

  正常情况下,一个php--fpm占用内存20~30M

3.进程跟踪

  1.使用  top   找出CPU最高的进程pid

   2.strace -p PID(进程数)   来跟踪进程

  3. ll /proc/PID/fd   来查看该进程在处理哪些文件

  最后修改对应代码

记得重启

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2227019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django入门教程——用户管理实现

第六章 用户管理实现 教学目的 复习数据的增删改查的实现。了解数据MD5加密算法以及实现模型表单中,自定义控件的使用中间件的原理和使用 需求分析 系统问题 员工档案涉及到员工的秘密,不能让任何人都可以看到,主要是人事部门进行数据的…

su user更换用户后无法打开图形屏幕Cannot open your terminal ‘/dev/pts/0‘ 解决办法

我在docker内使用了su john更换了用户,执行petalinux-config -c kernel时打不开图形屏幕窗口,需要执行命令script /dev/null 进入docker和配置状态的所有命令行命令如下: johnjohn-hp:~/zynq$ ./docker_ubuntu16.sh rootjohn-hp:/home/john/…

2024最新版鸿蒙纯血原生应用开发教程文档丨HarmonyOS 开发准备-成为华为开发者

1. 成为华为开发者 在开始应用开发前,需要先完成以下准备工作。在华为开发者联盟网站上,注册成为开发者,并完成实名认证,从而享受联盟开放的各类能力和服务。 1.1. 注册账号 如果您已经有华为开发者联盟帐号,点击右…

记录如何在RK3588板子上跑通paddle的OCR模型

官网文档地址 rknn_zoo RKNPU2_SDK RKNN Model Zoo 一、PC电脑是Ubuntu22.04系统中完成环境搭建(板子是20.04) 安装模型转换环境 ​conda create -n rknn2 python3.10 conda activate rknn2 安装Ubuntu依赖包 su…

CloudStack云平台搭建:XenServer服务器系统安装

1.打开VMware虚拟机,点击“创建新的虚拟机” 2. 点击“自定义(高级)” → “下一步” 3. 点击“下一步” 4. 点击“稍后安装操作系统” → “下一步” 5. 选择“其他” → “其他64位” → “下一步” 6. 修改“虚拟机名称” 、“位置”&…

记录运维大屏监控平台的开发、springboot实现服务器性能监测分析系统

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7…

h5小游戏5--杀死国王(附源码)

源代码如下 1.游戏基本操作 用空格键攻击,kill the king。 css样式源码 charset "UTF-8";font-face {font-family: "AddLGBitmap09";src: url("https://assets.codepen.io/217233/AddLGBitmap09.woff2") format("woff2"…

Canvas简历编辑器-选中绘制与拖拽多选交互设计

Canvas简历编辑器-选中绘制与拖拽多选交互设计 在之前我们聊了聊如何基于Canvas与基本事件组合实现了轻量级DOM,并且在此基础上实现了如何进行管理事件以及多层级渲染的能力设计。那么此时我们就依然在轻量级DOM的基础上,关注于实现选中绘制与拖拽多选交…

系统安全隐患设计面面观

如果只是靠程序员去设计系统的话,估计会有很多安全问题,所以才需要有架构师、设计师,来面面俱到的设计系统安全模块,来应对外部的威胁。 功能开发在系统设计中往往优先考虑,但忽视安全问题可能导致重大隐患。为了解决…

在线竞赛资源共享和交流:如何利用平台高效备战信息学竞赛

在备战信息学竞赛的过程中,资源共享和交流已经成为不可或缺的一部分。如今,在线平台提供了丰富的学习资源、讨论机会和备考支持,考生可以通过真题解析、考点讨论群、备赛社区等方式,与其他考生互动,提升学习效果。本文…

中国五矿集团采购信息

打开https://ec.minmetals.com.cn/open/home/purchase-info点击第二页可以看到参数被加密了 要使用js的hook脚本为 (function() { var stringify_ JSON.stringify; JSON.stringify function(arg) { console.log("您猜怎么着?断住了! ——> …

不到 30 元的 AX1800 路由器!捷稀 JCG Q20 免拆机刷 Padavan / OpenWRT

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 上次把移动送的 JCG Q30 Pro 刷机之后,又从家里翻出个之前电信送的伊拉克战损 AX1800 路由器,意外的发现品牌也是 JCG,型号是 Q20,想着能不能也给它刷了。目…

企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门

本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统…

遗传算法与深度学习实战(20)——使用进化策略自动超参数优化

遗传算法与深度学习实战(20)——使用进化策略自动超参数优化 0. 前言1. 将进化策略应用于超参数优化2. 使用主成分分析扩展维度小结系列链接 0. 前言 我们已经学习了遗传算法 (Genetic Algorithms, GA) 的工作原理,并使用进化策略 (Evolutio…

进入 Masteria:第三周游戏指南

Alpha 第四季在 The Sandbox 中继续展开,这次为大家带来一个全新的星球!踏上 Masteria——一个专注于追求完美的星球。在这个星球的严酷环境中训练、竞争,并磨练你的技能。无论是通过「The Voice: 教练对决」细致打磨你的声乐技巧&#xff0c…

java-web-day5

1.spring-boot-web入门 目标: 开始最基本的web应用的构建 使用浏览器访问后端, 后端给浏览器返回HelloController 流程: 1.创建springboot工程, 填写模块信息, 并勾选web开发的相关依赖 注意: 在新版idea中模块创建时java下拉框只能选17, 21, 23 这里选17, maven版本是3.6.3, 很…

【数据结构】二叉树——堆

一、二叉树的概念与结构 二叉树的概念 二叉树是树的一种,二叉树的特殊之处在于,每个根节点都可以有两个子节点,可以两个子节点都为空,或者一个为空,一个不为空,或者两个都有数,在构建二叉树的…

scala 权限

一.访问权限 idea实例 关于protected:

开源AI助力医疗革新:OCR系统与知识图谱构建

在医疗健康领域,数据的整合和分析对于提升临床决策、优化患者护理和加速科研发现至关重要。思通数科AI平台通过构建医疗知识图谱,从海量医疗文本中提取关键信息,助力医疗服务智能化。我们的平台体验地址是:https://nlp.stonedt.co…

ELK之路第二步——可视化界面Kibana

Kibana 1.安装2.解压3.修改配置4.启动 这部分内容就比较简单了,水一片文章。 1.安装 需要梯子 官网下载链接:https://www.elastic.co/cn/downloads/past-releases/kibana-7-3-0 如果你去官网下载页面,点击下载是404报错,记得切换…