zoukankan      html  css  js  c++  java
  • 当php服务器cpu使用过高如何查找原因

    php服务器cpu使用过高如何查找原因

    场景描述:web服务器cpu报警了,我使用top命令发现cpu占用比较高的是php的进程

    单个php进程占用的多,而且使用命令 ps aux|grep -c php 发现php进程数也非常多

    这时我们能确定的是,肯定有接口响应速度过慢,一直占用php进程,新的请求过来后php会新起进程导致的

     

    如何查找慢接口:

    1.首先我们需要为nginx日志配置请求响应时长的选项,默认情况下是没有的

      在http作用域下增加

    log_format weblog '$remote_addr ##$request_time## - $remote_user [$time_local] "$request" '

                        '$status $body_bytes_sent "$http_referer" '

                          '"$http_user_agent" "$http_x_forwarded_for”’;

     在server作用域下增加

    access_log  /var/log/access.log weblog;

     通过以上设置,在我们日志中就会出现( $request_time )响应时长了

    2.接下来我们要通过对日志进行分析后得到执行比较慢的请求

      脚本代码如下

    #!/bin/sh

    num=1000

    top=50

    logpath= /var/log/access.log 

    tail -n $num $logpath|

    awk '{print $2,$8}'|

    awk -F'##' '{print $2,$3}'|

    awk -F'?' '{print $1}'|

    tr 'A-Z' 'a-z'|

    sort -nrk 1|head -n $top

     

    这样我们就可以通过endnum和top来调节查看最近的num个请求中请求时长最大的top个请求

     

     

  • 相关阅读:
    HDU 6182 A Math Problem 水题
    HDU 6186 CS Course 位运算 思维
    HDU 6188 Duizi and Shunzi 贪心 思维
    HDU 2824 The Euler function 欧拉函数
    HDU 3037 Saving Beans 多重集合的结合 lucas定理
    HDU 3923 Invoker Polya定理
    FZU 2282 Wand 组合数学 错排公式
    HDU 1452 Happy 2004 数论
    HDU 5778 abs 数论
    欧拉回路【判断连通+度数为偶】
  • 原文地址:https://www.cnblogs.com/zhangyanhe/p/10457010.html
Copyright © 2011-2022 走看看