m939594960
V2EX  ›  问与答

PHP 程序,负载均衡到两台服务器, CPU、内存等等参数都非常好,就是程序执行时间突然特别长

  •  1
     
  •   m939594960 · Feb 8, 2018 · 2355 views
    This topic created in 3107 days ago, the information mentioned may be changed or developed.

    PHP 程序,负载均衡到两台服务器,CPU、内存等等参数都非常好,就是程序执行时间突然特别长。

    平时的时候程序执行的时间也就在 200ms~1s 之间,今天下午突然访问量有点大,很多程序的执行时间都到了 3s~5s 但是查看了一下服务器的状态,CPU、内存都十分正常,不超过 30%。 redis 和 mysql 都是用的阿里云的,负载也十分正常。 请问下这种情况一般是什么造成的,应该具体怎么去排查?

    Supplement 1  ·  Feb 9, 2018
    谢谢大家,问题已经 解决了,非常弱智的问题。是 mysql 查询的问题,我在接口的部分 foreach 循环查了 20 几次表。 然后每次都并不算慢,但是并发量一大稍微慢点之后就会被 foreach 放大 拖慢整个接口。
    10 replies    2018-02-09 11:14:30 +08:00
    vibbow
        1
    vibbow  
       Feb 8, 2018
    看看 io wait 呢?
    defunct9
        2
    defunct9  
       Feb 8, 2018 via iPhone
    无法判断
    woscaizi
        3
    woscaizi  
       Feb 8, 2018 via iPhone
    非常可能是 mysql 的锅,可以查一下是否存在慢查询。
    cxbig
        4
    cxbig  
       Feb 8, 2018 via iPhone
    分析 profile 看看慢在哪
    akira
        5
    akira  
       Feb 8, 2018
    看下 redis 和 mysql 的 慢日志记录,应该会有收获。
    比较通用的做法肯定是上性能分析了,分小部分流量去一台做了性能分析的机器,然后看到底是哪个地方耗时了。这样的话,分析起来就比较有针对性和目的性了
    em70
        6
    em70  
       Feb 9, 2018
    ping 一下 ECS 和 RDS 之间的延迟有多少,是否用了内部地址
    edsion996
        7
    edsion996  
       Feb 9, 2018 via iPhone
    会不会是网络问题,比如丢包
    m939594960
        8
    m939594960  
    OP
       Feb 9, 2018
    @woscaizi
    @akira 第一件事就是看慢查询,发现都很健康,没有慢查
    cxh116
        9
    cxh116  
       Feb 9, 2018
    php 进程有多少个? 按照你给的一个请求至少 200ms.

    (1000ms / 200ms) * 进程数,就是你最大的并发数.多了就会阻塞等待上个请求完成.
    John60676
        10
    John60676  
       Feb 9, 2018
    我也觉得是 mysql 的锅
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1454 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 16:59 · PVG 00:59 · LAX 09:59 · JFK 12:59
    ♥ Do have faith in what you're doing.